amocrm 0.1.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0868d231f31c616122c77b9729183ccb25578c30feeb37aaf2eb89f0d2dfb2ab'
4
- data.tar.gz: '09b00b9d5ea30f36660b7a3d7edece52d786a29158f80023faa9b521e54c783b'
3
+ metadata.gz: 953688e737dbd47ad20302d617670f8e6e719896ebc97174d0d1e90388008fcd
4
+ data.tar.gz: 858c425ffcc05c3c2f61b75f4d0481fb0f3daa27461eb9b47ebccca47338a0d0
5
5
  SHA512:
6
- metadata.gz: 2d3195bdce0a6fbecc42c2aaae5650be0d0745d17384054906f1e25384bb1432e246adaef1371b477d8e1e4783987b6d533096a890919643baf894ba188f65ab
7
- data.tar.gz: f72512cd8056814d16264da2b25dae821b3e2127e82df5bf6db0a74221861e3a0a2f235fcd66db953dbb41a5a127965839b864f98d78e57423991e9f338242dd
6
+ metadata.gz: 9ade2d543faf32eef73ff10de52644776f4a01fff2ab270d2d8587dc38edc0421e5b9a48cae999b0ce340e0119272a448ef5b4298d22f873311162265a49476e
7
+ data.tar.gz: 751aed99a3da0659b98129161b649d5a76ec158a766b0a2e9eaed33a0242f6a72707c530683201c2d90b38382fcbe0aa5447033a177502db97ae3ce6ac9ad0b5
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.0 (2026-02-06)
4
+
5
+ Full Changelog: [v0.2.0...v0.3.0](https://github.com/Hexlet/amocrm-ruby/compare/v0.2.0...v0.3.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([63b728e](https://github.com/Hexlet/amocrm-ruby/commit/63b728e195a95b6116d954797cd4224626c3fd28))
10
+
11
+ ## 0.2.0 (2026-02-06)
12
+
13
+ Full Changelog: [v0.1.2...v0.2.0](https://github.com/Hexlet/amocrm-ruby/compare/v0.1.2...v0.2.0)
14
+
15
+ ### Features
16
+
17
+ * **api:** api update ([c47313c](https://github.com/Hexlet/amocrm-ruby/commit/c47313c8d4d72d7fa64f8ae3492f1474287132e6))
18
+
3
19
  ## 0.1.2 (2026-02-04)
4
20
 
5
21
  Full Changelog: [v0.1.1...v0.1.2](https://github.com/Hexlet/amocrm-ruby/compare/v0.1.1...v0.1.2)
data/README.md CHANGED
@@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application
15
15
  <!-- x-release-please-start-version -->
16
16
 
17
17
  ```ruby
18
- gem "amocrm", "~> 0.1.2"
18
+ gem "amocrm", "~> 0.3.0"
19
19
  ```
20
20
 
21
21
  <!-- x-release-please-end -->
@@ -26,7 +26,10 @@ gem "amocrm", "~> 0.1.2"
26
26
  require "bundler/setup"
27
27
  require "amocrm"
28
28
 
29
- amocrm = Amocrm::Client.new(api_key: "My API Key")
29
+ amocrm = Amocrm::Client.new(
30
+ token: ENV["AMOCRM_AUTH_TOKEN"], # This is the default and can be omitted
31
+ subdomain: "My-Subdomain"
32
+ )
30
33
 
31
34
  response = amocrm.v4.leads.unsorted.create_forms(
32
35
  body: [{metadata: {}, source_name: "source_name", source_uid: "source_uid"}]
@@ -83,7 +86,7 @@ You can use the `max_retries` option to configure or disable this:
83
86
  # Configure the default for all requests:
84
87
  amocrm = Amocrm::Client.new(
85
88
  max_retries: 0, # default is 2
86
- api_key: "My API Key"
89
+ subdomain: "My-Subdomain"
87
90
  )
88
91
 
89
92
  # Or, configure per-request:
@@ -101,7 +104,7 @@ By default, requests will time out after 60 seconds. You can use the timeout opt
101
104
  # Configure the default for all requests:
102
105
  amocrm = Amocrm::Client.new(
103
106
  timeout: nil, # default is 60
104
- api_key: "My API Key"
107
+ subdomain: "My-Subdomain"
105
108
  )
106
109
 
107
110
  # Or, configure per-request:
data/lib/amocrm/client.rb CHANGED
@@ -16,14 +16,28 @@ module Amocrm
16
16
  DEFAULT_MAX_RETRY_DELAY = 8.0
17
17
 
18
18
  # @return [String]
19
- attr_reader :api_key
19
+ attr_reader :token
20
+
21
+ # @return [String]
22
+ attr_reader :subdomain
20
23
 
21
24
  # @return [Amocrm::Resources::V4]
22
25
  attr_reader :v4
23
26
 
27
+ # @api private
28
+ #
29
+ # @return [Hash{String=>String}]
30
+ private def auth_headers
31
+ return {} if @token.nil?
32
+
33
+ {"authorization" => "Bearer #{@token}"}
34
+ end
35
+
24
36
  # Creates and returns a new client for interacting with the API.
25
37
  #
26
- # @param api_key [String, nil] Defaults to `ENV["AMOCRM_API_KEY"]`
38
+ # @param token [String, nil] Defaults to `ENV["AMOCRM_AUTH_TOKEN"]`
39
+ #
40
+ # @param subdomain [String, nil] Defaults to `ENV["AMOCRM_SUBDOMAIN"]`
27
41
  #
28
42
  # @param base_url [String, nil] Override the default base URL for the API, e.g.,
29
43
  # `"https://api.example.com/v2/"`. Defaults to `ENV["AMOCRM_BASE_URL"]`
@@ -36,20 +50,25 @@ module Amocrm
36
50
  #
37
51
  # @param max_retry_delay [Float]
38
52
  def initialize(
39
- api_key: ENV["AMOCRM_API_KEY"],
53
+ token: ENV["AMOCRM_AUTH_TOKEN"],
54
+ subdomain: ENV["AMOCRM_SUBDOMAIN"],
40
55
  base_url: ENV["AMOCRM_BASE_URL"],
41
56
  max_retries: self.class::DEFAULT_MAX_RETRIES,
42
57
  timeout: self.class::DEFAULT_TIMEOUT_IN_SECONDS,
43
58
  initial_retry_delay: self.class::DEFAULT_INITIAL_RETRY_DELAY,
44
59
  max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY
45
60
  )
46
- base_url ||= "https://{subdomain}.amocrm.ru"
61
+ base_url ||= "https://#{subdomain}.amocrm.ru"
47
62
 
48
- if api_key.nil?
49
- raise ArgumentError.new("api_key is required, and can be set via environ: \"AMOCRM_API_KEY\"")
63
+ if token.nil?
64
+ raise ArgumentError.new("token is required, and can be set via environ: \"AMOCRM_AUTH_TOKEN\"")
65
+ end
66
+ if subdomain.nil?
67
+ raise ArgumentError.new("subdomain is required, and can be set via environ: \"AMOCRM_SUBDOMAIN\"")
50
68
  end
51
69
 
52
- @api_key = api_key.to_s
70
+ @token = token.to_s
71
+ @subdomain = subdomain.to_s
53
72
 
54
73
  super(
55
74
  base_url: base_url,
@@ -215,6 +215,11 @@ module Amocrm
215
215
  @max_retry_delay = max_retry_delay
216
216
  end
217
217
 
218
+ # @api private
219
+ #
220
+ # @return [Hash{String=>String}]
221
+ private def auth_headers = {}
222
+
218
223
  # @api private
219
224
  #
220
225
  # @return [String]
@@ -271,6 +276,7 @@ module Amocrm
271
276
 
272
277
  headers = Amocrm::Internal::Util.normalized_headers(
273
278
  @headers,
279
+ auth_headers,
274
280
  req[:headers].to_h,
275
281
  opts[:extra_headers].to_h
276
282
  )
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Amocrm
4
- VERSION = "0.1.2"
4
+ VERSION = "0.3.0"
5
5
  end
@@ -11,15 +11,24 @@ module Amocrm
11
11
  DEFAULT_MAX_RETRY_DELAY = T.let(8.0, Float)
12
12
 
13
13
  sig { returns(String) }
14
- attr_reader :api_key
14
+ attr_reader :token
15
+
16
+ sig { returns(String) }
17
+ attr_reader :subdomain
15
18
 
16
19
  sig { returns(Amocrm::Resources::V4) }
17
20
  attr_reader :v4
18
21
 
22
+ # @api private
23
+ sig { override.returns(T::Hash[String, String]) }
24
+ private def auth_headers
25
+ end
26
+
19
27
  # Creates and returns a new client for interacting with the API.
20
28
  sig do
21
29
  params(
22
- api_key: T.nilable(String),
30
+ token: T.nilable(String),
31
+ subdomain: T.nilable(String),
23
32
  base_url: T.nilable(String),
24
33
  max_retries: Integer,
25
34
  timeout: Float,
@@ -28,8 +37,10 @@ module Amocrm
28
37
  ).returns(T.attached_class)
29
38
  end
30
39
  def self.new(
31
- # Defaults to `ENV["AMOCRM_API_KEY"]`
32
- api_key: ENV["AMOCRM_API_KEY"],
40
+ # Defaults to `ENV["AMOCRM_AUTH_TOKEN"]`
41
+ token: ENV["AMOCRM_AUTH_TOKEN"],
42
+ # Defaults to `ENV["AMOCRM_SUBDOMAIN"]`
43
+ subdomain: ENV["AMOCRM_SUBDOMAIN"],
33
44
  # Override the default base URL for the API, e.g.,
34
45
  # `"https://api.example.com/v2/"`. Defaults to `ENV["AMOCRM_BASE_URL"]`
35
46
  base_url: ENV["AMOCRM_BASE_URL"],
@@ -171,6 +171,11 @@ module Amocrm
171
171
  )
172
172
  end
173
173
 
174
+ # @api private
175
+ sig { overridable.returns(T::Hash[String, String]) }
176
+ private def auth_headers
177
+ end
178
+
174
179
  # @api private
175
180
  sig { returns(String) }
176
181
  private def user_agent
@@ -8,12 +8,17 @@ module Amocrm
8
8
 
9
9
  DEFAULT_MAX_RETRY_DELAY: Float
10
10
 
11
- attr_reader api_key: String
11
+ attr_reader token: String
12
+
13
+ attr_reader subdomain: String
12
14
 
13
15
  attr_reader v4: Amocrm::Resources::V4
14
16
 
17
+ private def auth_headers: -> ::Hash[String, String]
18
+
15
19
  def initialize: (
16
- ?api_key: String?,
20
+ ?token: String?,
21
+ ?subdomain: String?,
17
22
  ?base_url: String?,
18
23
  ?max_retries: Integer,
19
24
  ?timeout: Float,
@@ -85,6 +85,8 @@ module Amocrm
85
85
  ?idempotency_header: String?
86
86
  ) -> void
87
87
 
88
+ private def auth_headers: -> ::Hash[String, String]
89
+
88
90
  private def user_agent: -> String
89
91
 
90
92
  private def generate_idempotency_key: -> String
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amocrm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amocrm
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-02-05 00:00:00.000000000 Z
11
+ date: 2026-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi