Class: Komtet::Transport
- Inherits:
-
Object
show all
- Defined in:
- lib/komtet/transport.rb
Defined Under Namespace
Classes: RequestSignatureMiddleware
Constant Summary
collapse
- DEFAULT_API_URL =
'https://kassa.komtet.ru/api/shop/v1/'
Instance Method Summary
collapse
Constructor Details
#initialize(api_url, credentials) ⇒ Transport
Returns a new instance of Transport.
27
28
29
30
|
# File 'lib/komtet/transport.rb', line 27
def initialize(api_url, credentials)
@api_url = api_url
@credentials = credentials
end
|
Instance Method Details
#post_task(content, queue_id = @credentials.queue_id) ⇒ Object
43
44
45
46
47
48
|
# File 'lib/komtet/transport.rb', line 43
def post_task(content, queue_id=@credentials.queue_id)
raise ArgumentError, "queue_id is not integer" unless queue_id.is_a?(Integer)
res = transport.post("queues/#{queue_id}/task", content)
raise "non success: #{res.status}: #{res.body}" unless res.success?
res.body
end
|
#queue_status(queue_id = @credentials.queue_id) ⇒ Object
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/komtet/transport.rb', line 56
def queue_status(queue_id=@credentials.queue_id)
res = transport.get("queues/#{ queue_id }")
if res.success?
return res.body["state"]
elsif res.status == 403
return 'access_denied'
else
raise "non success: #{res.status}: #{res.body}"
end
end
|
#task_result(task_id) ⇒ Object
50
51
52
53
54
|
# File 'lib/komtet/transport.rb', line 50
def task_result(task_id)
res = transport.get("tasks/#{task_id}")
raise "non success: #{res.status}: #{res.body}" unless res.success?
res.body
end
|
#transport ⇒ Object
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/komtet/transport.rb', line 32
def transport
@transport ||= Faraday.new(url: @api_url) do |conn|
conn.['User-Agent'] = "KomtetRuby/#{Komtet::VERSION}"
conn.['Accept'] = "application/json"
conn.request(:json)
conn.use(RequestSignatureMiddleware, @credentials)
conn.response :json, content_type: /\bjson$/
conn.adapter(Faraday.default_adapter)
end
end
|