k3cloud-sdk 0.4.7 → 0.6.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 +4 -4
- data/.rubocop.yml +46 -1
- data/CHANGELOG.md +118 -2
- data/Gemfile +5 -1
- data/Gemfile.lock +50 -1
- data/README.md +245 -51
- data/k3cloud.gemspec +8 -2
- data/lib/k3cloud/configuration.rb +48 -5
- data/lib/k3cloud/errors/configuration_error.rb +6 -0
- data/lib/k3cloud/errors/k3cloud_error.rb +9 -4
- data/lib/k3cloud/http.rb +85 -20
- data/lib/k3cloud/k3cloud_api.rb +45 -6
- data/lib/k3cloud/utils/base64_utils.rb +10 -12
- data/lib/k3cloud/utils/const_define.rb +23 -21
- data/lib/k3cloud/utils/md5_utils.rb +16 -23
- data/lib/k3cloud/version.rb +1 -1
- data/lib/k3cloud/web_api_client.rb +45 -17
- data/lib/k3cloud.rb +65 -8
- metadata +10 -8
data/lib/k3cloud.rb
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require_relative "k3cloud/version"
|
|
4
4
|
require "logger"
|
|
5
|
+
require "json"
|
|
5
6
|
require "k3cloud/configuration"
|
|
6
7
|
require "k3cloud/k3cloud_api"
|
|
7
8
|
require "forwardable"
|
|
@@ -19,20 +20,76 @@ module K3cloud
|
|
|
19
20
|
end
|
|
20
21
|
|
|
21
22
|
def logger
|
|
22
|
-
@logger ||=
|
|
23
|
+
@logger ||= build_logger
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# 注入自定义 logger(例如 Rails.logger)。设为 nil 可触发下次重建。
|
|
27
|
+
attr_writer :logger
|
|
28
|
+
|
|
29
|
+
# 重建默认 logger(切换 log_format 后调用)
|
|
30
|
+
def reset_logger!
|
|
31
|
+
@logger = nil
|
|
23
32
|
end
|
|
24
33
|
|
|
25
34
|
def new_api(config = nil)
|
|
26
|
-
|
|
27
|
-
|
|
35
|
+
config ? K3cloud::K3cloudApi.new(config) : default_api
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# 默认账号客户端(带缓存;传入新 config 不会污染此处)
|
|
39
|
+
def default_api
|
|
40
|
+
@default_api ||= K3cloud::K3cloudApi.new
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# 测试/重新配置时重置默认客户端
|
|
44
|
+
def reset_default_api!
|
|
45
|
+
@default_api = nil
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
API_METHODS = %i[
|
|
49
|
+
execute_bill_query execute_bill_query_all view
|
|
50
|
+
draft save batch_save submit delete
|
|
51
|
+
audit un_audit
|
|
52
|
+
cancel_assign push execute_operation
|
|
53
|
+
allocate cancel_allocate
|
|
54
|
+
group_save query_group_info group_delete
|
|
55
|
+
attachment_upload attachment_download
|
|
56
|
+
query_business_info get_sys_report_data
|
|
57
|
+
flex_save send_msg disassembly workflow_audit
|
|
58
|
+
switch_org
|
|
59
|
+
].freeze
|
|
60
|
+
|
|
61
|
+
def_delegators :default_api, *API_METHODS
|
|
62
|
+
|
|
63
|
+
private
|
|
64
|
+
|
|
65
|
+
def build_logger
|
|
66
|
+
logger = ::Logger.new($stderr)
|
|
67
|
+
logger.formatter = method(:format_log)
|
|
68
|
+
logger
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# 根据 Configuration.default.log_format 决定输出::text(默认)或 :json
|
|
72
|
+
def format_log(severity, datetime, _progname, msg)
|
|
73
|
+
if Configuration.default.log_format == :json
|
|
74
|
+
format_log_json(severity, datetime, msg)
|
|
28
75
|
else
|
|
29
|
-
|
|
76
|
+
format_log_text(severity, datetime, msg)
|
|
30
77
|
end
|
|
31
78
|
end
|
|
32
79
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
80
|
+
def format_log_json(severity, datetime, msg)
|
|
81
|
+
"#{{ msg: msg.to_s, level: severity, time: datetime.strftime("%Y-%m-%dT%H:%M:%S.%L") }.to_json}\n"
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def format_log_text(severity, datetime, msg)
|
|
85
|
+
format(
|
|
86
|
+
"%s, [%s#%d] %5s -- %s\n",
|
|
87
|
+
severity[0..0],
|
|
88
|
+
datetime.strftime("%Y-%m-%dT%H:%M:%S.%L"),
|
|
89
|
+
Process.pid,
|
|
90
|
+
severity,
|
|
91
|
+
msg.to_s
|
|
92
|
+
)
|
|
93
|
+
end
|
|
37
94
|
end
|
|
38
95
|
end
|
metadata
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: k3cloud-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.6.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- zevinto
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies: []
|
|
13
|
-
description: Ruby Gem for K3cloud OpenApi
|
|
12
|
+
description: Ruby Gem for K3cloud OpenApi. Uses cryptographic signature technology
|
|
14
13
|
to avoid plaintext transmission of keys and enables automatic login.
|
|
15
14
|
email:
|
|
16
15
|
- zevinto@163.com
|
|
@@ -35,6 +34,7 @@ files:
|
|
|
35
34
|
- lib/k3cloud-sdk.rb
|
|
36
35
|
- lib/k3cloud.rb
|
|
37
36
|
- lib/k3cloud/configuration.rb
|
|
37
|
+
- lib/k3cloud/errors/configuration_error.rb
|
|
38
38
|
- lib/k3cloud/errors/k3cloud_error.rb
|
|
39
39
|
- lib/k3cloud/errors/response_error.rb
|
|
40
40
|
- lib/k3cloud/http.rb
|
|
@@ -49,7 +49,10 @@ licenses:
|
|
|
49
49
|
- MIT
|
|
50
50
|
metadata:
|
|
51
51
|
homepage_uri: https://github.com/zevinto/k3cloud-sdk
|
|
52
|
-
|
|
52
|
+
source_code_uri: https://github.com/zevinto/k3cloud-sdk
|
|
53
|
+
changelog_uri: https://github.com/zevinto/k3cloud-sdk/blob/main/CHANGELOG.md
|
|
54
|
+
bug_tracker_uri: https://github.com/zevinto/k3cloud-sdk/issues
|
|
55
|
+
rubygems_mfa_required: 'true'
|
|
53
56
|
rdoc_options: []
|
|
54
57
|
require_paths:
|
|
55
58
|
- lib
|
|
@@ -57,15 +60,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
57
60
|
requirements:
|
|
58
61
|
- - ">="
|
|
59
62
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: 2.
|
|
63
|
+
version: 2.5.0
|
|
61
64
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
62
65
|
requirements:
|
|
63
66
|
- - ">="
|
|
64
67
|
- !ruby/object:Gem::Version
|
|
65
68
|
version: '0'
|
|
66
69
|
requirements: []
|
|
67
|
-
rubygems_version: 3.
|
|
68
|
-
signing_key:
|
|
70
|
+
rubygems_version: 3.6.9
|
|
69
71
|
specification_version: 4
|
|
70
72
|
summary: Ruby Gem for K3cloud API.
|
|
71
73
|
test_files: []
|