class Floodgate::Client
Public Class Methods
add_ip_address(ip_address)
click to toggle source
# File lib/floodgate/client.rb, line 7 def self.add_ip_address(ip_address) return if ip_address.nil? || ip_address.empty? params = { ip_address: { ip_address: ip_address } } post('ip_addresses', params) end
add_my_ip_address()
click to toggle source
# File lib/floodgate/client.rb, line 15 def self.add_my_ip_address add_ip_address(my_ip_address) end
allowed_ip_addresses()
click to toggle source
# File lib/floodgate/client.rb, line 23 def self.allowed_ip_addresses status.allowed_ip_addresses end
base_url()
click to toggle source
# File lib/floodgate/client.rb, line 112 def self.base_url "https://#{host_name}/apps/#{Config.app_id}" end
close()
click to toggle source
# File lib/floodgate/client.rb, line 27 def self.close params = { app: { filter_traffic: true } } put('', params) end
default_status()
click to toggle source
# File lib/floodgate/client.rb, line 60 def self.default_status Hashie::Mash.new( default_status: true, filter_traffic: false, allowed_ip_addresses: [], redirect_url: nil ) end
delete(path, params = {})
click to toggle source
# File lib/floodgate/client.rb, line 78 def self.delete(path, params = {}) verb_with_params_in_body(:delete, path, params) end
get(path, params = {})
click to toggle source
# File lib/floodgate/client.rb, line 82 def self.get(path, params = {}) params.merge!(api_token: Config.api_token) response = get_connection.get(path, params) response.body end
get_connection()
click to toggle source
# File lib/floodgate/client.rb, line 120 def self.get_connection conn = Faraday.new(url: base_url) do |builder| builder.use Faraday::Response::Mashify builder.use FaradayMiddleware::ParseJson, content_type: 'application/json' builder.use Faraday::Request::UrlEncoded builder.use Faraday::Response::RaiseError builder.use Faraday::Adapter::NetHttp end conn.headers[:accept] = 'application/vnd.floodgate-v1+json' conn.headers[:user_agent] = user_agent conn end
host_name()
click to toggle source
# File lib/floodgate/client.rb, line 108 def self.host_name Config.test? ? 'staging-api.floodgate.io' : 'api.floodgate.io' end
my_ip_address()
click to toggle source
# File lib/floodgate/client.rb, line 33 def self.my_ip_address conn = Faraday.new(url: 'http://ip.floodgate.io') response = conn.get('') value = response.body.strip IPAddr.new(value, Socket::AF_INET).to_s end
open()
click to toggle source
# File lib/floodgate/client.rb, line 40 def self.open params = { app: { filter_traffic: false } } put('', params) end
post(path, params = {})
click to toggle source
# File lib/floodgate/client.rb, line 90 def self.post(path, params = {}) verb_with_params_in_body(:post, path, params) end
put(path, params = {})
click to toggle source
# File lib/floodgate/client.rb, line 94 def self.put(path, params = {}) verb_with_params_in_body(:put, path, params) end
remove_ip_address(ip_address)
click to toggle source
# File lib/floodgate/client.rb, line 46 def self.remove_ip_address(ip_address) return if ip_address.nil? || ip_address.empty? params = { ip_address: { ip_address: ip_address } } delete('ip_addresses', params) end
remove_my_ip_address()
click to toggle source
# File lib/floodgate/client.rb, line 19 def self.remove_my_ip_address remove_ip_address(my_ip_address) end
set_redirect_url(redirect_url)
click to toggle source
# File lib/floodgate/client.rb, line 54 def self.set_redirect_url(redirect_url) params = { app: { redirect_url: redirect_url } } put('', params) end
status()
click to toggle source
# File lib/floodgate/client.rb, line 69 def self.status begin get('status') rescue Faraday::Error::ClientError => e # TODO: Log default_status end end
user_agent()
click to toggle source
# File lib/floodgate/client.rb, line 116 def self.user_agent 'FloodgateAgent' end
verb_with_params_in_body(verb, path, params = {})
click to toggle source
# File lib/floodgate/client.rb, line 98 def self.verb_with_params_in_body(verb, path, params = {}) params.merge!(api_token: Config.api_token) response = get_connection.public_send(verb, path) do |request| request.body = params end response.body end