atol 0.2 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 17d4ad372d79d210e557557a3f6cc80f77068e75
4
- data.tar.gz: da90b555963964a89478f4d1d49c04a3b8555020
3
+ metadata.gz: 2b0571eec0780fb18eafe60b99e4c5786c8a3166
4
+ data.tar.gz: f1caad94cb03daed307d5c24f96665a157a5e82b
5
5
  SHA512:
6
- metadata.gz: 7ae186d1878efeaef1b3a7a91cac0a63b2b3ba064e41126d36d2ecbcca911975b9b8065f814a51c87935c9fa15c38857ff595ce2c28ac973413bf56f5bb43864
7
- data.tar.gz: 85d2b78aa0f1ece50c515231666490368521fd5614fe659670f393403a5b0b705e7fde0d7c6580a58ff1ba1d0703fae0cb5baeaabd77ca825b32c3b906164294
6
+ metadata.gz: fb3aaa2101bf30f554c8216b439c675c584e91ec6649010544ae450a62dd601abfd1c89009709e542f4220548a297c89416b2ca33a1203a318fdb688e66c15f9
7
+ data.tar.gz: 8ce89512fa8ffb53d36cd69d32ca1c558a38ae5b7c6fbd3ec04ed3e36a11b7382355adb30f799de549aefab271a2292380836739f4c226830f9a994f934f0b8d
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- atol (0.2)
4
+ atol (0.3)
5
5
  anyway_config (~> 1.0)
6
6
 
7
7
  GEM
@@ -80,4 +80,4 @@ DEPENDENCIES
80
80
  webmock (~> 3.0)
81
81
 
82
82
  BUNDLED WITH
83
- 1.15.1
83
+ 1.16.1
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  ![ruby-logo](https://www.ruby-lang.org/images/header-ruby-logo.png)
2
- ![atol-logo](http://www.atol.ru/site_styles/img/logo-red.png)
2
+ ![atol-logo](http://www.atol.ru/site_styles/img/logo-red.png)
3
3
 
4
4
  [![Gem Version](https://badge.fury.io/rb/atol.svg)](https://badge.fury.io/rb/atol) [![BuildStatus](https://travis-ci.org/GeorgeGorbanev/atol-rb.png)](https://travis-ci.org/GeorgeGorbanev/atol-rb) [![Maintainability](https://api.codeclimate.com/v1/badges/8c702db502a7a6abdcba/maintainability)](https://codeclimate.com/github/GeorgeGorbanev/atol-rb/maintainability) [![Coverage Status](https://coveralls.io/repos/github/GeorgeGorbanev/atol-rb/badge.svg?branch=master)](https://coveralls.io/github/GeorgeGorbanev/atol-rb?branch=master)
5
5
 
@@ -9,7 +9,7 @@
9
9
 
10
10
  ##### Совместимость
11
11
 
12
- Для корректной работы необходим интерпретатор Руби версии 2.2 и выше. Пакет работает с версией протокола v3.
12
+ Для корректной работы необходим интерпретатор Руби версии 2.2 и выше. Пакет работает с версией протокола v3.
13
13
 
14
14
 
15
15
  ## Использование
@@ -23,7 +23,7 @@ gem 'atol'
23
23
  ```
24
24
  И запустить команду:
25
25
 
26
- ```
26
+ ```
27
27
  $ bundle install
28
28
  ```
29
29
  ### Конфигурация
@@ -48,7 +48,7 @@ ATOL_GROUP_CODE=example-group-code
48
48
 
49
49
  ```ruby
50
50
  # config/initializers/atol.rb
51
-
51
+
52
52
  Rails.application.config.after_initialize do
53
53
  Atol.config.tap do |config|
54
54
  config.inn = '123456789010'
@@ -60,7 +60,17 @@ Rails.application.config.after_initialize do
60
60
  end
61
61
  ```
62
62
 
63
- Для класса конфигурации используется класс из гема [anyway-config](https://github.com/palkan/anyway_config). Другие способы задания конфигурации можно найти в его документации.
63
+ Для объектов конфигурации используется класс унаследованный от класса из гема [anyway-config](https://github.com/palkan/anyway_config). Другие способы задания конфигурации можно найти в его документации.
64
+
65
+ #### Прокси
66
+
67
+ Объект конфигурации позволяет задать прокси для http-запросов:
68
+
69
+ ``` ruby
70
+ uri = URI('http://example-proxy.com')
71
+ proxy = Net::HTTP.Proxy(uri.host, uri.port)
72
+ Atol.config.http_client = proxy
73
+ ```
64
74
 
65
75
  ### Получение токена
66
76
 
@@ -81,7 +91,7 @@ token = Atol::Transaction::GetToken.new.call
81
91
 
82
92
  Тело запроса должно соответствовать схеме. Для упрощения кода создан класс `Atol::Request::PostDocument::Sell::Body`.
83
93
 
84
- Конструктор в качестве обязательных аргументов принимает `external_id`, один из аргументов `phone` или `email` и `items`.
94
+ Конструктор в качестве обязательных аргументов принимает `external_id`, один из аргументов `phone` или `email` и `items`.
85
95
 
86
96
  ```ruby
87
97
  body = Atol::Request::PostDocument::Sell::Body.new(
@@ -90,7 +100,7 @@ body = Atol::Request::PostDocument::Sell::Body.new(
90
100
  items: [
91
101
  ...
92
102
  ]
93
- ).to_json
103
+ ).to_json
94
104
  ```
95
105
  Массив `items` должен включать в себя объекты, которые так же соответствуют схеме.
96
106
 
@@ -127,7 +137,7 @@ body = Atol::Request::PostDocument::Sell::Body.new(
127
137
  price: 60
128
138
  ).to_h
129
139
  ]
130
- ).to_json
140
+ ).to_json
131
141
 
132
142
  ```
133
143
  Результат:
@@ -224,7 +234,7 @@ Atol::Transaction::PostDocument.new(
224
234
  Rails.application.config.after_initialize do
225
235
  Atol.config.callback_url = Rails.application.routes.url_helpers.atol_callback_url
226
236
  end
227
-
237
+
228
238
  ```
229
239
 
230
240
  #### Запрос статуса документа
@@ -237,4 +247,4 @@ end
237
247
 
238
248
  response = Atol::Transaction::GetDocumentState.new(token: token, uuid: uuid).call
239
249
 
240
- ```
250
+ ```
data/lib/atol/config.rb CHANGED
@@ -1,10 +1,8 @@
1
1
  require 'anyway'
2
+ require 'net/http'
2
3
 
3
4
  module Atol
4
5
  class Config < Anyway::Config
5
- DEFAULT_REQ_TRIES_NUMBER = 3
6
- DEFAULT_PAYMENT_TYPE = 1
7
-
8
6
  attr_config :login,
9
7
  :password,
10
8
  :inn,
@@ -13,7 +11,8 @@ module Atol
13
11
  :default_sno,
14
12
  :default_tax,
15
13
  :callback_url,
16
- req_tries_number: DEFAULT_REQ_TRIES_NUMBER,
17
- default_payment_type: DEFAULT_PAYMENT_TYPE
14
+ req_tries_number: 3,
15
+ default_payment_type: 1,
16
+ http_client: Net::HTTP
18
17
  end
19
18
  end
@@ -11,12 +11,13 @@ module Atol
11
11
  raise(Atol::MissingConfigError, 'group_code missing') if @config.group_code.nil?
12
12
 
13
13
  @url = "#{Atol::URL}/#{@config.group_code}/report/#{uuid}?tokenid=#{token}"
14
+ @http_client = @config.http_client
14
15
  end
15
16
 
16
17
  def call
17
18
  uri = URI(url)
18
19
 
19
- http = Net::HTTP.new(uri.host, uri.port)
20
+ http = @http_client.new(uri.host, uri.port)
20
21
  http.use_ssl = true
21
22
  http.get(uri.request_uri)
22
23
  end
@@ -1,6 +1,5 @@
1
1
  require 'atol'
2
2
  require 'atol/errors'
3
- require 'net/http'
4
3
 
5
4
  module Atol
6
5
  module Request
@@ -22,13 +21,15 @@ module Atol
22
21
  else
23
22
  @password = @config.password
24
23
  end
24
+
25
+ @http_client = @config.http_client
25
26
  end
26
27
 
27
28
  def call
28
29
  uri = URI(Atol::URL + PATH)
29
30
  uri.query = URI.encode_www_form(login: login, pass: password)
30
31
 
31
- http = Net::HTTP.new(uri.host, uri.port)
32
+ http = @http_client.new(uri.host, uri.port)
32
33
  http.use_ssl = true
33
34
  http.get(uri.request_uri)
34
35
  end
@@ -1,6 +1,5 @@
1
1
  require 'atol'
2
2
  require 'atol/errors'
3
- require 'net/http'
4
3
  require 'atol/request/post_document/item/body'
5
4
  require 'atol/request/post_document/sell/body'
6
5
 
@@ -21,18 +20,19 @@ module Atol
21
20
  @body = body
22
21
  @req_logger = req_logger
23
22
  @res_logger = res_logger
23
+ @http_client = @config.http_client
24
24
  end
25
25
 
26
26
  def call
27
27
  uri = URI(url)
28
- req = Net::HTTP::Post.new(uri, HEADERS)
28
+ req = @http_client::Post.new(uri, HEADERS)
29
29
  req.body = body
30
30
 
31
31
  if req_logger.respond_to?(:call)
32
32
  req_logger.call(req)
33
33
  end
34
34
 
35
- res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
35
+ res = @http_client.start(uri.hostname, uri.port, use_ssl: true) do |http|
36
36
  http.request(req)
37
37
  end
38
38
 
@@ -1,3 +1,3 @@
1
1
  require 'atol/transaction/get_token'
2
2
  require 'atol/transaction/post_document'
3
- require 'atol/transaction/get_document_state'
3
+ require 'atol/transaction/get_document_state'
data/lib/atol/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Atol
2
2
  module Version
3
3
  API = 'v3'.freeze
4
- LIB = '0.2'.freeze
4
+ LIB = '0.3'.freeze
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atol
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: '0.3'
5
5
  platform: ruby
6
6
  authors:
7
7
  - GeorgeGorbanev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-21 00:00:00.000000000 Z
11
+ date: 2018-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: anyway_config
@@ -144,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
144
  version: '0'
145
145
  requirements: []
146
146
  rubyforge_project:
147
- rubygems_version: 2.6.10
147
+ rubygems_version: 2.6.14
148
148
  signing_key:
149
149
  specification_version: 4
150
150
  summary: ATOL KaaS client for Ruby