class OnlineSim::Base

Constants

HTTP_OK_CODE

Public Class Methods

new(apikey: nil, lang: 'en', dev_id: nil) click to toggle source
# File lib/onlinesim/base.rb, line 17
def initialize(apikey: nil, lang: 'en', dev_id: nil)
  @apikey = apikey
  @lang = lang
  @dev_id = dev_id

  Faraday.ignore_env_proxy = true
  Faraday::Connection.prepend FaradayOverrides
end

Protected Instance Methods

_get(endpoint: '', params: {}) click to toggle source
# File lib/onlinesim/base.rb, line 36
def _get(endpoint: '', params: {})
  params['apikey'] = @apikey
  params['lang'] = @lang
  params['dev_id'] = @dev_id
  if @dev_id
    params['dev_id'] = @dev_id
  end
  resp = client.public_send("get", '/api/' + endpoint + '.php', params)

  parsed_response = Oj.load(resp.body)

  if resp.status == HTTP_OK_CODE
    def valid_json?(parsed_response)
      puts parsed_response['response']
      if parsed_response.key?('response') and parsed_response['response'].to_s != '1'
        raise ApiError, parsed_response['response']
      end
      if parsed_response.key?('response')
        parsed_response.delete('response')
      end
    rescue JSON::ParserError
    end
    return parsed_response
  end

  raise ApiError, "Code: #{resp.status}, response: #{resp.body}"
end
valid_json?(parsed_response) click to toggle source
# File lib/onlinesim/base.rb, line 48
def valid_json?(parsed_response)
  puts parsed_response['response']
  if parsed_response.key?('response') and parsed_response['response'].to_s != '1'
    raise ApiError, parsed_response['response']
  end
  if parsed_response.key?('response')
    parsed_response.delete('response')
  end
rescue JSON::ParserError
end

Private Instance Methods

client() click to toggle source
# File lib/onlinesim/base.rb, line 27
def client
  @_client ||= Faraday.new('https://onlinesim.ru') do |client|
    client.request :url_encoded
    client.adapter Faraday.default_adapter
    client.headers['User-agent'] = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"
  end
end