module Nordvpn::Api::Endpoints::Servers
Public Instance Methods
country_servers()
click to toggle source
# File lib/nordvpn/api/endpoints/servers.rb, line 17 def country_servers get("/v1/servers/countries")&.body end
ikev2_servers(servers: nil, memoize: true)
click to toggle source
# File lib/nordvpn/api/endpoints/servers.rb, line 21 def ikev2_servers(servers: nil, memoize: true) servers_by_features(features: ["ikev2"], servers: servers, memoize: memoize) end
l2tp_servers(servers: nil, memoize: true)
click to toggle source
# File lib/nordvpn/api/endpoints/servers.rb, line 45 def l2tp_servers(servers: nil, memoize: true) servers_by_features(features: ["l2tp"], servers: servers, memoize: memoize) end
openvpn_tcp_servers(servers: nil, memoize: true)
click to toggle source
# File lib/nordvpn/api/endpoints/servers.rb, line 25 def openvpn_tcp_servers(servers: nil, memoize: true) servers_by_features(features: ["openvpn_tcp"], servers: servers, memoize: memoize) end
openvpn_udp_servers(servers: nil, memoize: true)
click to toggle source
# File lib/nordvpn/api/endpoints/servers.rb, line 29 def openvpn_udp_servers(servers: nil, memoize: true) servers_by_features(features: ["openvpn_udp"], servers: servers, memoize: memoize) end
pptp_servers(servers: nil, memoize: true)
click to toggle source
# File lib/nordvpn/api/endpoints/servers.rb, line 41 def pptp_servers(servers: nil, memoize: true) servers_by_features(features: ["pptp"], servers: servers, memoize: memoize) end
proxy_servers(servers: nil, memoize: true)
click to toggle source
# File lib/nordvpn/api/endpoints/servers.rb, line 37 def proxy_servers(servers: nil, memoize: true) servers_by_features(features: ["proxy", "proxy_ssl"], servers: servers, memoize: memoize) end
retrieve_servers(memoize: true)
click to toggle source
# File lib/nordvpn/api/endpoints/servers.rb, line 6 def retrieve_servers(memoize: true) servers = memoize ? self.cache.fetch("servers", nil) : nil if servers.nil? servers = get("/server")&.body self.cache["servers"] = servers if memoize end return servers end
servers_by_country(country, servers: nil, memoize: true)
click to toggle source
# File lib/nordvpn/api/endpoints/servers.rb, line 68 def servers_by_country(country, servers: nil, memoize: true) servers = servers.nil? ? retrieve_servers(memoize: memoize) : servers filtered = servers&.select { |server| server["flag"].downcase.eql?(country.downcase) } end
servers_by_features(features: [], servers: nil, memoize: true)
click to toggle source
# File lib/nordvpn/api/endpoints/servers.rb, line 49 def servers_by_features(features: [], servers: nil, memoize: true) filtered = [] servers = servers.nil? ? retrieve_servers(memoize: memoize) : servers servers&.each do |server| matching_all = true features.each do |feature| matching_all = matching_all && server.dig("features", feature).eql?(true) break if !matching_all end filtered << server if matching_all end return filtered end
servers_by_type_and_country(type, country, servers: nil, memoize: true)
click to toggle source
# File lib/nordvpn/api/endpoints/servers.rb, line 73 def servers_by_type_and_country(type, country, servers: nil, memoize: true) result = send("#{type}_servers", servers: servers, memoize: memoize) result = servers_by_country(country, servers: result, memoize: memoize) end
socks_servers(servers: nil, memoize: true)
click to toggle source
# File lib/nordvpn/api/endpoints/servers.rb, line 33 def socks_servers(servers: nil, memoize: true) servers_by_features(features: ["socks"], servers: servers, memoize: memoize) end