Class: Emojidex::Service::Transactor
- Inherits:
-
Object
- Object
- Emojidex::Service::Transactor
- Defined in:
- lib/emojidex/service/transactor.rb
Overview
API transaction utility
Constant Summary collapse
- @@connection =
nil
- @@settings =
@@retries = 10
{ api: { host: 'www.emojidex.com', prefix: '/api/v1/', protocol: 'https' }, cdn: { host: 'cdn.emojidex.com', prefix: '/emoji/', protocol: 'https' }, closed_net: false }
Class Method Summary collapse
- .api_url ⇒ Object
- .cdn_url ⇒ Object
- .connect ⇒ Object
- .delete(endpoint, params = {}) ⇒ Object
- .download(file_subpath) ⇒ Object
- .get(endpoint, params = {}) ⇒ Object
- .post(endpoint, params = {}) ⇒ Object
Class Method Details
.api_url ⇒ Object
76 77 78 |
# File 'lib/emojidex/service/transactor.rb', line 76 def self.api_url() "#{@@settings[:api][:protocol]}://#{@@settings[:api][:host]}#{@@settings[:api][:prefix]}" end |
.cdn_url ⇒ Object
80 81 82 |
# File 'lib/emojidex/service/transactor.rb', line 80 def self.cdn_url() "#{@@settings[:cdn][:protocol]}://#{@@settings[:cdn][:host]}#{@@settings[:cdn][:prefix]}" end |
.connect ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/emojidex/service/transactor.rb', line 61 def self.connect return @@connection if @@connection @@connection = Faraday.new do |conn| conn.request :url_encoded #conn.request :retry, max: @@retries, interval: 0.05, interval_randomness: 0.5, # backoff_factor: 2 # conn.response :logger conn.headers['Accept'] = 'application/msgpack' conn.use FaradayMiddleware::FollowRedirects, limit: 5 conn.adapter :typhoeus #Faraday.default_adapter end _kludge_certs if Gem.win_platform? @@connection end |
.delete(endpoint, params = {}) ⇒ Object
46 47 48 49 50 51 52 |
# File 'lib/emojidex/service/transactor.rb', line 46 def self.delete(endpoint, params = {}) response = connect.delete( "#{api_url}#{endpoint}", params) _status_raiser(response) _datafy_json(response.body) end |
.download(file_subpath) ⇒ Object
54 55 56 57 58 59 |
# File 'lib/emojidex/service/transactor.rb', line 54 def self.download(file_subpath) connect.get(URI.escape("#{cdn_url}#{file_subpath.tr(' ', '_')}")) rescue Faraday::ConnectionFailed _kludge_certs connect.get(URI.escape("#{cdn_url}#{file_subpath.tr(' ', '_')}")) end |
.get(endpoint, params = {}) ⇒ Object
31 32 33 34 35 36 |
# File 'lib/emojidex/service/transactor.rb', line 31 def self.get(endpoint, params = {}) response = connect.get( "#{api_url}#{URI.encode(endpoint)}", params) _status_raiser(response) _datafy_json(response.body) end |
.post(endpoint, params = {}) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/emojidex/service/transactor.rb', line 38 def self.post(endpoint, params = {}) response = connect.post( "#{api_url}#{endpoint}", params) _status_raiser(response) _datafy_json(response.body) end |