Sha256: bdb03dedadc2dea71bdc1cb7436b8caf61da536dc20c80e98161cd32c5c7f2a7

Contents?: true

Size: 854 Bytes

Versions: 3

Compression:

Stored size: 854 Bytes

Contents

require 'faraday'

require_relative 'client/errors'

class Moysklad::Client

  URL = 'https://online.moysklad.ru'

  def initialize login: nil, password: nil
    @client = Faraday.new URL
    @client.basic_auth login, password
  end

  def get path, params={}
    logger.debug "Client: GET #{path} #{params}"
    validate client.get path, params
  end

  def put path, data
    logger.debug "Client: PUT #{path}"
    result = client.put do |req|
      req.url path
      req.headers['Content-Type'] = 'application/xml'
      req.headers['Accept'] = '*/*'
      req.body = data
    end
    validate result
  end

  def delete path
    validate client.delete path
  end

  private

  attr_reader :client

  def logger
    Moysklad.logger
  end

  def validate res
    return res.body if res.status == 200

    Moysklad::Client::Errors.build res
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
moysklad-0.2.1 lib/moysklad/client.rb
moysklad-0.2.0 lib/moysklad/client.rb
moysklad-0.1.5 lib/moysklad/client.rb