Sha256: 5a20394b3b6f76c585937e1d716a81b6fbdb843e5d3135b3946fef23f030a759
Contents?: true
Size: 1.83 KB
Versions: 1
Compression:
Stored size: 1.83 KB
Contents
require 'faraday' require_relative 'client/errors' class Moysklad::Client # URL = 'https://online.moysklad.ru' URL ='https://online.moysklad.ru/api/remap/1.1/' def initialize login: nil, password: nil @client = Faraday.new URL do |conn| conn.options.timeout = ENV.fetch('MOYSKLAD_HTTP_TIMEOUT', 120) if Faraday::VERSION.split('.').first.to_i < 2 conn.request(:basic_auth, login, password) else conn.request(:authorization, :basic, login, password) end end end def download(path, filename) response = client.get path File.open(filename, 'wb') { |fp| fp.write(response.body) } end def get path, params={} logger.debug "Client: GET #{path} #{params}" parse_response client.get path, params end def post path, data logger.debug "Client: POST #{path}" result = client.post do |req| req.url path req.headers['Content-Type'] = 'application/json' req.headers['Accept'] = '*/*' req.body = data end parse_response result end def put path, data logger.debug "Client: PUT #{path}" result = client.put do |req| req.url path req.headers['Content-Type'] = 'application/json' req.headers['Accept'] = '*/*' req.body = data end parse_response result end def delete path logger.debug "Client: DELETE #{path}" result = client.delete do |req| req.url path req.headers['Content-Type'] = 'application/json' req.headers['Accept'] = '*/*' end parse_response result end private attr_reader :client def logger Moysklad.logger end def parse_response res Moysklad.logger.debug "Response [#{res.status}]: #{res.body}" if res.status == 200 return if res.body.blank? JSON.parse res.body else Moysklad::Client::Errors.build res end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
moysklad-0.3.4 | lib/moysklad/client.rb |