k3cloud-sdk 0.3.0 → 0.4.1

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
  SHA256:
3
- metadata.gz: c9f13e7dae26d950dec804b2dcfc315d6f8a5ed08e23b69c9443d17f8a0bde77
4
- data.tar.gz: 43c42ac730bf506a61b5ea51a33036579096c34fa06345fb598e27b7011622c3
3
+ metadata.gz: e3d5427f36e12e1e388da43eccf61e2663c52603d480eb6fef15c3ea3891ea60
4
+ data.tar.gz: 8ff167a6fe22be81d5949ebe59c0b3ab8b95dff4fa33ee266922af94e01d4460
5
5
  SHA512:
6
- metadata.gz: 033b860f4d85d5ce6e4b8599e8cd8ba9f95c065c470b4618a39205fb28852bf4dedd701a06f8ee2b6a357d33d910efb9ecc249baa2e353e932ddc1d4f3c458dc
7
- data.tar.gz: '082ff58a369c49835fe6c71f7abaebf580401d9f3ee3bef41e0451511b72ee32daffa5d4c90a5c5966cc9ca18506cd535618b51ae9e22c00a9869838729c23b2'
6
+ metadata.gz: 24e064b03a1e76e2bc604a3c441e8132877110296895b99498a37535383fd1d0bd8f5e9a4c542e29e4076bb2f2a9e18682e00842c50ac12e151acd83e0b11476
7
+ data.tar.gz: 1f808f707ff27c324763c4aa56f08285fa6b684a31a696bc496e55cdaacbc4cdad6aabd87b3b3616e4f5a60318b3eed57d4a6fc63e3209d7a8ad2de539e0db98
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- k3cloud-sdk (0.3.0)
4
+ k3cloud-sdk (0.4.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -14,7 +14,7 @@ class K3cloudError < StandardError
14
14
 
15
15
  def self.parse(json)
16
16
  index = json.index("{")
17
- json = json[index..] if index >= 0
17
+ json = json[index..-1] if index >= 0
18
18
 
19
19
  parsed_json = JSON.parse(json)
20
20
  kd_error = K3cloudError.new
data/lib/k3cloud/http.rb CHANGED
@@ -29,10 +29,10 @@ module K3cloud
29
29
  request["User-Agent"] = "Kingdee/Ruby WebApi SDK"
30
30
  request.body = @body.to_json
31
31
  response = http.request(request)
32
+ if response.code != 200 && response.code != 206
33
+ raise StandardError, "status: #{response.code}, desc: #{response.body}"
34
+ end
32
35
  response.body
33
- rescue StandardError => e
34
- K3cloud.logger.warn "#{e.message} => K3cloud::HTTP.post('#{@url}')"
35
- nil
36
36
  end
37
37
  end
38
38
  end
@@ -11,7 +11,7 @@ module MD5Utils
11
11
  result = ""
12
12
 
13
13
  s.each_byte do |byte|
14
- result += (byte & 0xFF | -256).to_s(16)[6..]
14
+ result += (byte & 0xFF | -256).to_s(16)[6..-1]
15
15
  end
16
16
 
17
17
  result
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module K3cloud
4
- VERSION = "0.3.0"
4
+ VERSION = "0.4.1"
5
5
  end
@@ -16,38 +16,22 @@ module K3cloud
16
16
  end
17
17
 
18
18
  def execute(service_name, parameters)
19
- url = @config.server_url
20
- if url.nil? || url.empty?
21
- url = "https://api.kingdee.com/galaxyapi/"
22
- else
23
- url = url.to_s.strip.chomp("/")
24
- url = "#{url}/#{service_name}.common.kdsvc"
25
- end
26
-
27
- header = build_header(get_url_path(url))
28
- body = {
29
- "format" => 1,
30
- "useragent" => "ApiClient",
31
- "parameters" => parameters,
32
- "v" => "1.0"
33
- }
34
- request = Http.new(url, header, body, @config.connect_timeout, @config.request_timeout)
35
- result = request.post
36
-
37
- if result&.start_with?("response_error:")
19
+ result = execute_json(service_name, parameters)
20
+ if result.start_with?("response_error:")
38
21
  error = K3cloudError.parse(result)
39
- raise StandardError, result if error.nil?
40
-
41
- message = error.inner_ex_wrapper.nil? ? error.message : "#{error.message} --> #{error.inner_ex_wrapper.message}"
42
- raise StandardError, message
22
+ if error.nil?
23
+ raise StandardError, result
24
+ else
25
+ message = error.inner_ex_wrapper.nil? ? error.message : "#{error.message} --> #{error.inner_ex_wrapper&.message}"
26
+ raise StandardError, message
27
+ end
43
28
  else
44
29
  begin
45
- if result.include?(',"IsSuccess":false,')
46
- raise StandardError, result
47
- else
48
- JSON.parse(result)
49
- end
50
- rescue JSON::ParserError => e
30
+ json = JSON.parse(result)
31
+ raise StandardError, json if result.include?(',"IsSuccess":false,')
32
+
33
+ json
34
+ rescue StandardError => e
51
35
  raise StandardError, "JSON parse error, response: [#{result}]", e
52
36
  end
53
37
  end
@@ -55,10 +39,26 @@ module K3cloud
55
39
 
56
40
  private
57
41
 
58
- def get_url_path(url)
42
+ def execute_json(service_name, parameters)
43
+ url = @config.server_url
44
+ if url.nil? || url.empty?
45
+ url = "https://api.kingdee.com/galaxyapi/"
46
+ else
47
+ url = url.to_s.strip.chomp("/")
48
+ end
49
+ url = "#{url}/#{service_name}.common.kdsvc"
50
+ K3cloud.logger.info("request_url: #{url}")
51
+
52
+ header = build_header(url_path(url))
53
+ body = { parameters: parameters }
54
+ request = Http.new(url, header, body, @config.connect_timeout, @config.request_timeout)
55
+ request.post
56
+ end
57
+
58
+ def url_path(url)
59
59
  if url.start_with?("http")
60
60
  index = url.index("/", 10)
61
- index.nil? ? url : url[index..]
61
+ index > -1 ? url[index..-1] : url
62
62
  else
63
63
  url
64
64
  end
@@ -94,6 +94,9 @@ module K3cloud
94
94
  header[ConstDefine::X_KD_SIGNATURE] = kd_signature
95
95
  end
96
96
  header
97
+ rescue StandardError => e
98
+ K3cloud.logger.info("#{e.backtrace}")
99
+ {}
97
100
  end
98
101
 
99
102
  def decode_sec(sec)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: k3cloud-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - zevinto
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-11-14 00:00:00.000000000 Z
11
+ date: 2023-11-28 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Ruby Gem for K3cloud API.
14
14
  email: