rongcloud-server-sdk 1.0.1 → 1.1.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: 59cfd97613387ba8f0d9935ee385ea2cd22b63ec3af3cbf9eb0d20621e163607
4
- data.tar.gz: 9ad92c2b7ee3326c6785899d5f576d3e1f6a58d436e03e37e90832acc64b11e8
3
+ metadata.gz: '0898c0d2461a0ecc981eba721cc87642bb26100b9a5af85f0a157d96cdcf9b41'
4
+ data.tar.gz: 1245cc5bf1ffeefad59cb70076a5ebcbc12726bdecb0cf9e63788155dbfa8a4b
5
5
  SHA512:
6
- metadata.gz: 519d20363f451a358dba1bd6a01c3a446d82e3bd548f0d61e2d901411092c5e60e29a34f603773ff4d159a2d9b3db91736cef67e553c22ab9cd333c99fe33532
7
- data.tar.gz: f233475c85c2d2a1aee92253d6a0661a569fe10ea4b55b3ccad16f2a8b3c17a2b1be72dbccbda89383c3d9bd342c6b9bf1aa5dab21376e7ec3c4331f05594eef
6
+ metadata.gz: ada95eaf38153ee31309295c2fce303efd8236ba2d3f04599541a0bad90deb7eb8fb32dab8daf1c7a85b676ec69086d954c1dc5fa1f9197dcf55ef9985135622
7
+ data.tar.gz: 34ee47d12ead0fd583f655a2f1a5b341745e3c9eb92f637e9e34a79b83743cbacf6673c1f7dcc1a83c08289e10ca1ff4597440fa62b4b9c9cfe77e9f515e515c
data/.env.defaults ADDED
@@ -0,0 +1,2 @@
1
+ RONGCLOUD_APP_KEY=""
2
+ RONGCLOUD_APP_SECRET=""
data/.overcommit.yml CHANGED
@@ -15,6 +15,10 @@
15
15
  #
16
16
  # Uncomment the following lines to make the configuration take effect.
17
17
 
18
+ CommitMsg:
19
+ CapitalizedSubject:
20
+ enabled: false
21
+
18
22
  PreCommit:
19
23
  RuboCop:
20
24
  enabled: true
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rongcloud-server-sdk (1.0.1)
4
+ rongcloud-server-sdk (1.1.0)
5
5
  http (~> 5.0)
6
6
 
7
7
  GEM
@@ -17,12 +17,12 @@ GEM
17
17
  domain_name (0.5.20190701)
18
18
  unf (>= 0.0.5, < 1.0.0)
19
19
  dotenv (2.8.1)
20
- ffi (1.15.5)
20
+ ffi (1.16.3)
21
21
  ffi-compiler (1.0.1)
22
22
  ffi (>= 1.0.0)
23
23
  rake
24
24
  hashdiff (1.0.1)
25
- http (5.1.0)
25
+ http (5.1.1)
26
26
  addressable (~> 2.8)
27
27
  http-cookie (~> 1.0)
28
28
  http-form_data (~> 2.2)
data/README.md CHANGED
@@ -23,7 +23,9 @@ Or install it yourself as:
23
23
  ## Usage
24
24
 
25
25
  ```ruby
26
- rongcloud = RongCloud::Client::new(
26
+ require "rongcloud"
27
+
28
+ rongcloud = RongCloud::Client.new(
27
29
  app_key: ENV["RONGCLOUD_APP_KEY"],
28
30
  app_secret: ENV["RONGCLOUD_APP_SECRET"],
29
31
  host: "api-cn.ronghub.com"
@@ -49,21 +51,34 @@ The API name is converted from the corresponding URI, E.g.
49
51
  ### Timeout
50
52
 
51
53
  ```ruby
52
- rongcloud = RongCloud::Client::new(
54
+ rongcloud = RongCloud::Client.new(
53
55
  app_key: ENV["RONGCLOUD_APP_KEY"],
54
56
  app_secret: ENV["RONGCLOUD_APP_SECRET"],
55
57
  host: "api-cn.ronghub.com",
56
58
  http: {
57
59
  timeout_class: HTTP::Timeout::Global,
58
- timeout_options: {global_timeout: 2}
60
+ timeout_options: {global_timeout: 5}
59
61
  }
60
62
  )
63
+
64
+ # Use the global HTTP timeout options.
65
+ rongcloud.api.user.gettoken({
66
+ userId: "nutzer", name: "John Doe"
67
+ })
68
+
69
+ # Override global HTTP timeout options in a specific HTTP request.
70
+ rongcloud.api.user.gettoken({
71
+ userId: "nutzer", name: "John Doe"
72
+ }, {
73
+ timeout_class: HTTP::Timeout::Global,
74
+ timeout_options: {global_timeout: 10}
75
+ })
61
76
  ```
62
77
 
63
78
  ### Logging
64
79
 
65
80
  ```ruby
66
- rongcloud = RongCloud::Client::new(
81
+ rongcloud = RongCloud::Client.new(
67
82
  app_key: ENV["RONGCLOUD_APP_KEY"],
68
83
  app_secret: ENV["RONGCLOUD_APP_SECRET"],
69
84
  host: "api-cn.ronghub.com",
@@ -75,6 +90,45 @@ rongcloud = RongCloud::Client::new(
75
90
  )
76
91
  ```
77
92
 
93
+ ### Request ID
94
+
95
+ ```ruby
96
+ class RequestID < HTTP::Feature
97
+ def wrap_request(req)
98
+ req.headers["X-Request-ID"] = make_request_id
99
+ req
100
+ end
101
+
102
+ private
103
+
104
+ def make_request_id
105
+ Thread.current[:request_id] || SecureRandom.uuid
106
+ end
107
+ end
108
+
109
+ rongcloud = RongCloud::Client.new(
110
+ app_key: ENV["RONGCLOUD_APP_KEY"],
111
+ app_secret: ENV["RONGCLOUD_APP_SECRET"],
112
+ host: "api-cn.ronghub.com",
113
+ http: {
114
+ features: {
115
+ request_id: RequestID.new
116
+ }
117
+ }
118
+ )
119
+ ```
120
+
121
+ ### Signature Verify
122
+
123
+ ```ruby
124
+ verified = RongCloud::Signer.verify?(
125
+ app_secret: ENV["RONGCLOUD_APP_SECRET"],
126
+ nonce: params["nonce"],
127
+ timestamp: params["timestamp"],
128
+ signature: params["signature"]
129
+ )
130
+ ```
131
+
78
132
 
79
133
  ## Development
80
134
 
@@ -7,6 +7,9 @@ module RongCloud
7
7
  member "/user/token/expire.json"
8
8
  member "/user/info.json"
9
9
  member "/user/refresh.json"
10
+ member "/user/tag/set.json", format: :json
11
+ member "/user/tag/batch/set.json", format: :json
12
+ member "/user/tags/get.json"
10
13
 
11
14
  member "/user/block.json"
12
15
  member "/user/block/query.json"
data/lib/rongcloud/api.rb CHANGED
@@ -32,8 +32,8 @@ module RongCloud
32
32
  end
33
33
 
34
34
  format = options[:format] || :form
35
- define_method(meth) do |payload|
36
- client.post(url, format => payload)
35
+ define_method(meth) do |payload, opts = {}|
36
+ client.post(url, opts.merge(format => payload))
37
37
  end
38
38
  end
39
39
  end
@@ -17,7 +17,7 @@ module RongCloud
17
17
 
18
18
  nonce = random_str(16)
19
19
  timestamp = (Time.now.to_f * 1000).to_i.to_s
20
- options[:headers] = {
20
+ options[:headers] = (options[:headers] || {}).merge({
21
21
  "RC-App-Key" => @client.app_key,
22
22
  "RC-Nonce" => nonce,
23
23
  "RC-Timestamp" => timestamp,
@@ -26,7 +26,7 @@ module RongCloud
26
26
  nonce: nonce,
27
27
  timestamp: timestamp
28
28
  })
29
- }
29
+ })
30
30
 
31
31
  begin
32
32
  response = http(@options).request(verb, uri, options)
@@ -1,3 +1,3 @@
1
1
  module RongCloud
2
- VERSION = "1.0.1"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/rongcloud/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "rongcloud-server-sdk"
7
+ spec.version = RongCloud::VERSION
8
+ spec.authors = ["John Doe"]
9
+ spec.email = ["johndoe@example.com"]
10
+
11
+ spec.summary = "RongCloud Server SDK in Ruby."
12
+ spec.description = "RongCloud Server SDK in Ruby."
13
+ spec.homepage = "https://github.com/souk4711/rongcloud-server-sdk-ruby"
14
+ spec.license = "MIT"
15
+ spec.required_ruby_version = ">= 2.7.0"
16
+
17
+ spec.metadata["homepage_uri"] = spec.homepage
18
+ spec.metadata["source_code_uri"] = "https://github.com/souk4711/rongcloud-server-sdk-ruby"
19
+ spec.metadata["changelog_uri"] = "https://github.com/souk4711/rongcloud-server-sdk-ruby"
20
+
21
+ # Specify which files should be added to the gem when it is released.
22
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
23
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
24
+ `git ls-files -z`.split("\x0").reject do |f|
25
+ (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
26
+ end
27
+ end
28
+ spec.bindir = "exe"
29
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
30
+ spec.require_paths = ["lib"]
31
+
32
+ # Uncomment to register a new dependency of your gem
33
+ spec.add_dependency "http", "~> 5.0"
34
+
35
+ # For more information and examples about making a new gem, check out our
36
+ # guide at: https://bundler.io/guides/creating_gem.html
37
+ spec.metadata["rubygems_mfa_required"] = "true"
38
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rongcloud-server-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Doe
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-10-13 00:00:00.000000000 Z
11
+ date: 2023-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -32,9 +32,9 @@ extensions: []
32
32
  extra_rdoc_files: []
33
33
  files:
34
34
  - ".editorconfig"
35
+ - ".env.defaults"
35
36
  - ".overcommit.yml"
36
37
  - ".rspec"
37
- - ".rubocop"
38
38
  - ".rubocop.yml"
39
39
  - ".ruby-version"
40
40
  - ".yardopts"
@@ -62,6 +62,7 @@ files:
62
62
  - lib/rongcloud/http.rb
63
63
  - lib/rongcloud/signer.rb
64
64
  - lib/rongcloud/version.rb
65
+ - rongcloud-server-sdk.gemspec
65
66
  homepage: https://github.com/souk4711/rongcloud-server-sdk-ruby
66
67
  licenses:
67
68
  - MIT
data/.rubocop DELETED
File without changes