pindo 4.6.9

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.
Files changed (120) hide show
  1. checksums.yaml +7 -0
  2. data/bin/pindo +35 -0
  3. data/lib/pindo/base/aeshelper.rb +31 -0
  4. data/lib/pindo/base/deviceinfo.rb +90 -0
  5. data/lib/pindo/base/executable.rb +224 -0
  6. data/lib/pindo/base/githelper.rb +489 -0
  7. data/lib/pindo/base/hashhelper.rb +134 -0
  8. data/lib/pindo/base/plaininformative.rb +15 -0
  9. data/lib/pindo/base/plistbuddyexecutable.rb +121 -0
  10. data/lib/pindo/base/standarderror.rb +14 -0
  11. data/lib/pindo/client/applovinclient.rb +156 -0
  12. data/lib/pindo/client/aws3sclient.rb +183 -0
  13. data/lib/pindo/client/bossclient.rb +229 -0
  14. data/lib/pindo/client/bossconfigclient.rb +175 -0
  15. data/lib/pindo/client/giteeclient.rb +65 -0
  16. data/lib/pindo/client/httpclient.rb +40 -0
  17. data/lib/pindo/client/pgyerclient.rb +439 -0
  18. data/lib/pindo/client/tgateclient.rb +103 -0
  19. data/lib/pindo/command.rb +101 -0
  20. data/lib/pindo/config/pindoconfig.rb +439 -0
  21. data/lib/pindo/config/pindouserlocalconfig.rb +81 -0
  22. data/lib/pindo/deploy/Fastfile +233 -0
  23. data/lib/pindo/deploy/build.rb +167 -0
  24. data/lib/pindo/deploy/bundleid.rb +245 -0
  25. data/lib/pindo/deploy/cert.rb +508 -0
  26. data/lib/pindo/deploy/check.rb +79 -0
  27. data/lib/pindo/deploy/configproj.rb +89 -0
  28. data/lib/pindo/deploy/confusecode.rb +248 -0
  29. data/lib/pindo/deploy/confuseproj.rb +112 -0
  30. data/lib/pindo/deploy/fabric.rb +58 -0
  31. data/lib/pindo/deploy/getitcinfo.rb +248 -0
  32. data/lib/pindo/deploy/iap.rb +796 -0
  33. data/lib/pindo/deploy/initconfig.rb +128 -0
  34. data/lib/pindo/deploy/itcapp.rb +147 -0
  35. data/lib/pindo/deploy/itcinfo.rb +369 -0
  36. data/lib/pindo/deploy/pem.rb +55 -0
  37. data/lib/pindo/deploy/pullconfig.rb +46 -0
  38. data/lib/pindo/deploy/pushconfig.rb +83 -0
  39. data/lib/pindo/deploy/quswark.rb +146 -0
  40. data/lib/pindo/deploy/quswauth.rb +67 -0
  41. data/lib/pindo/deploy/reportbug.rb +135 -0
  42. data/lib/pindo/deploy/resign.rb +338 -0
  43. data/lib/pindo/deploy/tag.rb +108 -0
  44. data/lib/pindo/deploy/updateconfig.rb +129 -0
  45. data/lib/pindo/deploy/uploadipa.rb +63 -0
  46. data/lib/pindo/deploy.rb +44 -0
  47. data/lib/pindo/dev/autobuild.rb +204 -0
  48. data/lib/pindo/dev/autoresign.rb +186 -0
  49. data/lib/pindo/dev/confusecode.rb +127 -0
  50. data/lib/pindo/dev/confuseproj.rb +111 -0
  51. data/lib/pindo/dev/createbuild.rb +159 -0
  52. data/lib/pindo/dev/debug.rb +141 -0
  53. data/lib/pindo/dev/pub.rb +171 -0
  54. data/lib/pindo/dev/renewcert.rb +142 -0
  55. data/lib/pindo/dev.rb +23 -0
  56. data/lib/pindo/env/dreamstudio.rb +53 -0
  57. data/lib/pindo/env/flutter.rb +59 -0
  58. data/lib/pindo/env/flutter.sh +116 -0
  59. data/lib/pindo/env/quarkenv.rb +58 -0
  60. data/lib/pindo/env/swarkenv.rb +62 -0
  61. data/lib/pindo/env/workhard.rb +56 -0
  62. data/lib/pindo/env.rb +17 -0
  63. data/lib/pindo/ipa/autoresign.rb +188 -0
  64. data/lib/pindo/ipa/import.rb +261 -0
  65. data/lib/pindo/ipa/output.rb +396 -0
  66. data/lib/pindo/ipa.rb +22 -0
  67. data/lib/pindo/lib/forcepush.rb +159 -0
  68. data/lib/pindo/lib/lint.rb +115 -0
  69. data/lib/pindo/lib/push.rb +143 -0
  70. data/lib/pindo/lib/update.rb +75 -0
  71. data/lib/pindo/lib.rb +18 -0
  72. data/lib/pindo/module/appselect.rb +200 -0
  73. data/lib/pindo/module/appstore_in_app_purchase.rb +1803 -0
  74. data/lib/pindo/module/appstore_metadata_connect_api_helper.rb +12 -0
  75. data/lib/pindo/module/appstore_metadata_fastlane_helper.rb +922 -0
  76. data/lib/pindo/module/buildconfighelper.rb +13 -0
  77. data/lib/pindo/module/buildhelper.rb +76 -0
  78. data/lib/pindo/module/commonconfuseproj.rb +271 -0
  79. data/lib/pindo/module/config_project.sh +143 -0
  80. data/lib/pindo/module/configprojhelper.rb +631 -0
  81. data/lib/pindo/module/iap_tier.json +813 -0
  82. data/lib/pindo/module/icon_contents.json +116 -0
  83. data/lib/pindo/module/imessage_icon.json +91 -0
  84. data/lib/pindo/module/imgset_contents.json +21 -0
  85. data/lib/pindo/module/launchimg_contents.json +21 -0
  86. data/lib/pindo/module/pemcreate.rb +63 -0
  87. data/lib/pindo/module/pgyerhelper.rb +339 -0
  88. data/lib/pindo/module/xcodebuildpre.rb +258 -0
  89. data/lib/pindo/module/xcodehelper.rb +521 -0
  90. data/lib/pindo/options/appconfigoptions.rb +23 -0
  91. data/lib/pindo/options/deployoptions.rb +363 -0
  92. data/lib/pindo/pgyer/apptest.rb +104 -0
  93. data/lib/pindo/pgyer/comment.rb +95 -0
  94. data/lib/pindo/pgyer/download.rb +105 -0
  95. data/lib/pindo/pgyer/login.rb +61 -0
  96. data/lib/pindo/pgyer/upload.rb +234 -0
  97. data/lib/pindo/pgyer.rb +17 -0
  98. data/lib/pindo/repo/clone.rb +78 -0
  99. data/lib/pindo/repo/create.rb +55 -0
  100. data/lib/pindo/repo/login.rb +64 -0
  101. data/lib/pindo/repo/search.rb +60 -0
  102. data/lib/pindo/repo.rb +16 -0
  103. data/lib/pindo/setup.rb +60 -0
  104. data/lib/pindo/upgrade.rb +56 -0
  105. data/lib/pindo/utils/applovin.rb +213 -0
  106. data/lib/pindo/utils/boss.rb +209 -0
  107. data/lib/pindo/utils/clearcert.rb +60 -0
  108. data/lib/pindo/utils/device.rb +279 -0
  109. data/lib/pindo/utils/icon.rb +91 -0
  110. data/lib/pindo/utils/icon.sh +133 -0
  111. data/lib/pindo/utils/podindex.rb +56 -0
  112. data/lib/pindo/utils/podindex.sh +30 -0
  113. data/lib/pindo/utils/renewproj.rb +146 -0
  114. data/lib/pindo/utils/tgate.rb +159 -0
  115. data/lib/pindo/utils/xcassets.rb +46 -0
  116. data/lib/pindo/utils/xcassets.sh +88 -0
  117. data/lib/pindo/utils.rb +29 -0
  118. data/lib/pindo/version.rb +110 -0
  119. data/lib/pindo.rb +34 -0
  120. metadata +364 -0
@@ -0,0 +1,175 @@
1
+
2
+ require 'uri'
3
+ require 'json'
4
+ require 'faraday'
5
+ require 'pindo/base/aeshelper'
6
+ require 'pindo/base/deviceinfo'
7
+ require 'faraday-cookie_jar'
8
+
9
+ module Pindo
10
+
11
+
12
+ class BossConfigClient
13
+
14
+
15
+ attr_accessor :requests_config
16
+ attr_accessor :app_type
17
+ attr_accessor :base_url
18
+
19
+
20
+ def initialize(app_type:"FunnyApp", is_dev:true)
21
+
22
+ #
23
+ @app_type = app_type
24
+ @is_dev = is_dev
25
+
26
+ begin
27
+
28
+ boss_config_file = File.join(File::expand_path(Pindoconfig.instance.pindo_common_configdir), "bossconfig_client_config.json")
29
+ @boss_config_json = JSON.parse(File.read(boss_config_file))
30
+
31
+ @base_url_config = @boss_config_json["base_url_config"]
32
+ @requests_config = @boss_config_json["boss_req_config"]
33
+
34
+ rescue => error
35
+ puts error
36
+ raise Informative, "加载bossconfig 配置文件失败, 需要执行 pindo setup 或者pindo env dreamstudio"
37
+ end
38
+
39
+
40
+
41
+ begin
42
+ @base_url = @base_url_config[@app_type]
43
+ puts "@base_url #{@base_url}"
44
+ rescue => error
45
+ raise Informative, "App Type #{@app_type} 错误!!! 没有配置该类型的Boss域名"
46
+ end
47
+
48
+ end
49
+
50
+ def do_login()
51
+
52
+ # username = ask('请输入Boss网站的用户名:')
53
+ # password = ask('请输入Boss网站的密码:')
54
+ username = "shuangquan"
55
+ password = "HIsdfUHfwdh"
56
+
57
+ do_login_req(username:username, password:password)
58
+ end
59
+
60
+ def parse_cookie(raw_cookie)
61
+
62
+ cookies = Hash.new([])
63
+ return cookies unless raw_cookie
64
+ raw_cookie.split(/[;]\s?/).each do |pairs|
65
+ key, values = pairs.split('=',2)
66
+ next unless key && values
67
+
68
+ if key.include?("httponly, ")
69
+ key = key.gsub(/httponly, /, '');
70
+ end
71
+ cookies[key] = values
72
+ end
73
+ cookies
74
+ end
75
+
76
+ def do_login_req(username:nil, password:nil)
77
+
78
+ login_path = @requests_config["do_login"]["path"]
79
+
80
+ login_url = @base_url + login_path
81
+ puts "login_url: #{login_url}"
82
+ body_params = {
83
+ username:username,
84
+ password:password,
85
+ phone_code:nil
86
+ }
87
+
88
+ # send_phone_code(username:username)
89
+
90
+
91
+ phone_code = ask('请输入Boss网站的手机验证码:') || nil
92
+ puts "Phone Code #{phone_code}"
93
+
94
+ body_params[:phone_code] = phone_code
95
+
96
+
97
+ # con = Faraday.new
98
+ # res = con.post do |req|
99
+ # req.url login_url
100
+ # req.headers['Content-Type'] = 'application/json'
101
+ # req.body = body_params.to_json
102
+ # end
103
+
104
+ conn = Faraday.new(:url => @base_url) do |builder|
105
+ builder.use :cookie_jar
106
+ builder.adapter Faraday.default_adapter
107
+ end
108
+
109
+ res = conn.post do |req|
110
+ req.url login_path
111
+ req.headers['Content-Type'] = 'application/json'
112
+ req.body = body_params.to_json
113
+ end
114
+
115
+
116
+ result_data = nil
117
+
118
+ if !res.body.nil?
119
+ result_data = JSON.parse(res.body)
120
+
121
+
122
+ if result_data["err"].nil
123
+
124
+
125
+ end
126
+ end
127
+
128
+ if !res.body.nil?
129
+ result_data = JSON.parse(res.body)
130
+ end
131
+ puts JSON.pretty_generate(result_data)
132
+
133
+
134
+ # all_cookies = res['set-cookie']
135
+ all_cookies = File.read("/Users/wade/Desktop/cookie.txt")
136
+ puts "111"
137
+ puts all_cookies
138
+ cookies_array = parse_cookie(all_cookies)
139
+ puts JSON.pretty_generate(cookies_array)
140
+
141
+
142
+ end
143
+
144
+
145
+ def send_phone_code(username:nil)
146
+
147
+ boss_url = @base_url + @requests_config["send_phone_code"]["path"]
148
+
149
+ body_params = {
150
+ username:username
151
+ }
152
+ # puts JSON.pretty_generate(body_params)
153
+
154
+ con = Faraday.new
155
+ res = con.post do |req|
156
+ req.url boss_url
157
+ req.headers['Content-Type'] = 'application/json'
158
+ req.body = body_params.to_json
159
+ end
160
+
161
+ result_data = nil
162
+ if !res.body.nil?
163
+ result_data = JSON.parse(res.body)
164
+ end
165
+
166
+ puts JSON.pretty_generate(result_data)
167
+ return result_data
168
+
169
+ end
170
+
171
+
172
+
173
+ end
174
+ end
175
+
@@ -0,0 +1,65 @@
1
+ require 'fileutils'
2
+ require 'faraday'
3
+
4
+ module Pindo
5
+ class GiteeClient
6
+
7
+
8
+
9
+ attr_accessor :base_url
10
+ attr_accessor :access_token
11
+
12
+ def initialize(access_token:nil)
13
+ @base_url = "https://gitee.com"
14
+ @access_token = access_token
15
+ end
16
+
17
+
18
+
19
+ def gitee_create_repo(owner:nil, repo_name:nil, public_type:0)
20
+
21
+
22
+ body_params = {
23
+ access_token:access_token,
24
+ name:repo_name,
25
+ path:repo_name,
26
+ org:owner,
27
+ public:public_type,
28
+ # private:true,
29
+ has_issues:true,
30
+ has_wiki:true,
31
+ auto_init:false,
32
+ gitignore_template:"C",
33
+ license_template:"AGPL-3.0"
34
+
35
+ }
36
+ puts body_params
37
+ # repao_name_str = %Q{"name": "#{repo_name}",}
38
+ # body_str = '{ "access_token": "' + access_token + '",' + repao_name_str + '"has_issues": true, "has_wiki": true, "private": "true", "auto_init":false, "gitignore_template":"C", "license_template":"AGPL-3.0"' + '}'
39
+ body_str = body_params.to_json
40
+ url = @base_url + "/api/v5/orgs/#{owner}/repos"
41
+
42
+ puts body_str
43
+
44
+ con = Faraday.new
45
+ res = con.post do |req|
46
+ req.url url
47
+ req.headers['Content-Type'] = 'application/json'
48
+ req.body = body_str
49
+ end
50
+
51
+ puts res.body
52
+
53
+ # puts res.body
54
+ if res.body['error'].nil?
55
+ puts "Create success !!!"
56
+ return true
57
+ else
58
+ puts res.body['error']
59
+ return false
60
+ end
61
+ end
62
+
63
+ end
64
+ end
65
+
@@ -0,0 +1,40 @@
1
+
2
+ require 'uri'
3
+ require 'json'
4
+ require 'faraday'
5
+ require 'pindo/base/aeshelper'
6
+
7
+ module Pindo
8
+
9
+
10
+ class HttpClient
11
+
12
+
13
+ attr_accessor :use_local_wechat_url
14
+ attr_accessor :token
15
+ attr_accessor :baseurl
16
+ attr_accessor :request_config
17
+
18
+ def self.create_instance_with_proxy()
19
+
20
+ # puts body_params.to_json
21
+ proxy_options = {
22
+ uri: ENV['http_proxy'] || ENV['https_proxy'],
23
+ user: ENV['HTTP_PROXY_USER'],
24
+ password: ENV['HTTP_PROXY_PASSWORD']
25
+ }
26
+
27
+ con = Faraday.new
28
+ con.proxy = proxy_options.compact if proxy_options[:uri]
29
+ con
30
+ end
31
+
32
+ def self.create_instance()
33
+
34
+ con = Faraday.new
35
+ con
36
+ end
37
+
38
+ end
39
+ end
40
+
@@ -0,0 +1,439 @@
1
+
2
+ require 'uri'
3
+ require 'pindo/base/aeshelper'
4
+ require 'pindo/config/pindouserlocalconfig'
5
+ require 'pindo/client/httpclient'
6
+
7
+
8
+ module Pindo
9
+
10
+
11
+ class PgyerClient
12
+
13
+
14
+ attr_accessor :use_local_wechat_url
15
+ attr_accessor :token
16
+ attr_accessor :baseurl
17
+ attr_accessor :request_config
18
+
19
+ def initialize()
20
+
21
+ begin
22
+
23
+ @pgyer_token_file = File.join(File::expand_path(Pindoconfig.instance.pindo_dir), ".pgyer_token")
24
+ config_file = File.join(File::expand_path(Pindoconfig.instance.pindo_common_configdir), "pgyer_client_config.json")
25
+ config_json = JSON.parse(File.read(config_file))
26
+
27
+ @use_local_wechat_url = config_json["use_local_wechat_url"]
28
+ @baseurl = config_json["pgyerapps_base_url"]
29
+ @request_config = config_json["pgyerapps_req_config"]
30
+ @pgyer_aes_key = config_json["pgyerapps_aes_key"]
31
+
32
+ rescue => error
33
+ raise Informative, "加载pgyer配置文件失败, 需要执行 pindo setup 或者pindo env dreamstudio"
34
+ end
35
+
36
+ end
37
+
38
+ def get_faraday_instance
39
+
40
+ end
41
+
42
+
43
+ def do_login(force_login:false)
44
+
45
+ login_success = false
46
+
47
+ @token = load_token()
48
+ if !@token.nil? && !@token["token"].nil? && !force_login
49
+ login_success = true
50
+
51
+ puts "用户#{@token["username"]}登录pgyer成功!!!"
52
+ puts
53
+
54
+ else
55
+ username = nil
56
+ if !@token.nil? && !@token["username"].nil?
57
+ username = @token["username"]
58
+ checksum_password = nil
59
+ if !@token["password"].nil?
60
+ checksum_password = @token["password"]
61
+ end
62
+ end
63
+ token = do_login_req(username:username, checksum_password:checksum_password)
64
+ if !token.nil? && !token["token"].nil?
65
+ @token = token
66
+ login_success = true
67
+ end
68
+ end
69
+ return login_success
70
+ end
71
+
72
+ def do_login_req(username:nil, checksum_password:nil)
73
+ puts "do logn pgyer --- "
74
+
75
+
76
+ login_name = username
77
+ if login_name.nil?
78
+ login_name = ask('请输入pgger网站的usernmae:') || nil
79
+ end
80
+
81
+ puts "usernmae: #{login_name} "
82
+
83
+ result_data = do_send_code(username:login_name)
84
+
85
+ puts "验证码: #{result_data["msg"]}"
86
+
87
+
88
+ checksum_pass = checksum_password
89
+ if checksum_pass.nil?
90
+ login_passwork = ask('请输入pgger网站的密码:') || nil
91
+ checksum_pass = Digest::MD5.hexdigest(login_passwork)
92
+ end
93
+
94
+ # puts "passwork: #{checksum_pass}"
95
+
96
+ boss_url = @baseurl + @request_config["do_login"]
97
+ body_params = {
98
+ username:login_name,
99
+ phoneCode:result_data["msg"],
100
+ password:checksum_pass
101
+ }
102
+
103
+ # puts JSON.pretty_generate(body_params)
104
+
105
+ login_response_data = nil
106
+
107
+ begin
108
+
109
+ con = HttpClient.create_instance_with_proxy
110
+ res = con.post do |req|
111
+ req.url boss_url
112
+ req.headers['Content-Type'] = 'application/json'
113
+ req.body = body_params.to_json
114
+ end
115
+
116
+
117
+ if !res.body.nil?
118
+ login_response_data = JSON.parse(res.body)
119
+ end
120
+
121
+ rescue => error
122
+ puts "登录失败,请重试!!!"
123
+ end
124
+
125
+
126
+
127
+ # puts JSON.pretty_generate(login_response_data)
128
+
129
+ if !login_response_data.nil? && !login_response_data["code"].nil? && login_response_data["code"].to_s.eql?("200")
130
+ puts "登录成功!!!"
131
+
132
+ token = {}
133
+ token= login_response_data["data"]
134
+ token["password"] = checksum_pass
135
+ # puts JSON.pretty_generate(token)
136
+ store_token(token:token)
137
+ else
138
+ if File.exist?(@pgyer_token_file)
139
+ FileUtils.rm_rf(@pgyer_token_file)
140
+ end
141
+ puts "登录失败,请重试!!!"
142
+ end
143
+
144
+ return token
145
+
146
+ end
147
+
148
+ def load_token()
149
+
150
+ @token = nil
151
+ if File.exist?(@pgyer_token_file)
152
+ begin
153
+ data = File.read(@pgyer_token_file)
154
+
155
+ data_string = AESHelper::aes_128_ecb_decrypt(@pgyer_aes_key, data)
156
+ temp_token = data_string
157
+ temp_token = JSON.parse(data_string)
158
+ if !temp_token.nil? && !temp_token["token"].nil? && !temp_token["username"].nil?
159
+ @token = temp_token
160
+ # puts "加载pgyer token 成功!!! "
161
+ end
162
+ rescue => error
163
+ puts error
164
+ # puts "加载pgyer token 失败!!! "
165
+ if File.exist?(@pgyer_token_file)
166
+ FileUtils.rm_rf(@pgyer_token_file)
167
+ end
168
+ @token = nil
169
+ end
170
+ else
171
+ # puts "load pgyer token ---- fail !!! "
172
+ end
173
+
174
+ return @token
175
+ end
176
+
177
+ def store_token(token:nil)
178
+
179
+ begin
180
+ @token = token
181
+
182
+ data_string = AESHelper::aes_128_ecb_encrypt(@pgyer_aes_key, @token.to_json)
183
+ File.open(@pgyer_token_file, "w") do |f|
184
+ f.write(data_string)
185
+ end
186
+ puts "store pgyer token---- sucess !!!"
187
+ rescue => error
188
+ puts
189
+ puts "store pgyer token---- sucess !!!"
190
+ puts error
191
+ end
192
+ end
193
+
194
+ def do_send_code(username:nil)
195
+
196
+
197
+ boss_url = @baseurl + @request_config["do_send_code"]
198
+
199
+ body_params = {
200
+ username:username
201
+ }
202
+ # puts JSON.pretty_generate(body_params)
203
+
204
+ con = HttpClient.create_instance_with_proxy
205
+ res = con.post do |req|
206
+ req.url boss_url
207
+ req.headers['Content-Type'] = 'application/json'
208
+ req.body = body_params.to_json
209
+ end
210
+
211
+ result_date = nil
212
+ if !res.body.nil?
213
+ result_date = JSON.parse(res.body)
214
+ end
215
+
216
+ # puts JSON.pretty_generate(result_date)
217
+
218
+ if !result_date.nil? && !result_date["code"].nil? && result_date["code"].to_s.eql?("200")
219
+
220
+
221
+ res = con.post do |req|
222
+ req.url boss_url
223
+ req.headers['Content-Type'] = 'application/json'
224
+ req.body = body_params.to_json
225
+ end
226
+
227
+ if !res.body.nil?
228
+ result_date = JSON.parse(res.body)
229
+ end
230
+
231
+ end
232
+
233
+
234
+ # puts JSON.pretty_generate(result_date)
235
+
236
+ return result_date
237
+
238
+ end
239
+
240
+
241
+
242
+ def get_app_list_req(params:nil)
243
+
244
+
245
+ boss_url = @baseurl + @request_config["get_app_list"]
246
+
247
+ # puts boss_url
248
+ get_params = {
249
+ orderByColumn:"app_name",
250
+ sort:"ASC",
251
+ pageNo:1,
252
+ pageSize:1000,
253
+ }
254
+
255
+ params.each { |key,value| get_params[key] = value }
256
+
257
+
258
+ con = HttpClient.create_instance_with_proxy
259
+ res = con.get do |req|
260
+ req.url boss_url
261
+ req.headers['Content-Type'] = 'application/json'
262
+ req.headers['token'] = @token["token"]
263
+ req.params = get_params
264
+ end
265
+
266
+ result_date = nil
267
+ if !res.body.nil?
268
+ result_date = JSON.parse(res.body)
269
+
270
+ if !result_date["code"].nil? && result_date["code"].to_s.eql?("401")
271
+ do_login(force_login:true)
272
+ end
273
+ end
274
+
275
+
276
+ # puts JSON.pretty_generate(result_date)
277
+
278
+ return result_date
279
+
280
+ end
281
+
282
+ def do_request(method, params)
283
+
284
+
285
+ end
286
+
287
+ def update_app_info_req(params:nil)
288
+
289
+ boss_url = @baseurl + @request_config["update_app_info"]
290
+ # puts boss_url
291
+ body_params = {
292
+
293
+ }
294
+
295
+ if params.nil?
296
+ return
297
+ end
298
+ params.each { |key,value| body_params[key] = value }
299
+
300
+
301
+ con = HttpClient.create_instance_with_proxy
302
+ res = con.post do |req|
303
+ req.url boss_url
304
+ req.headers['Content-Type'] = 'application/json'
305
+ req.headers['token'] = @token["token"]
306
+ req.body = body_params.to_json
307
+ end
308
+ # puts JSON.pretty_generate(body_params)
309
+
310
+ result_date = nil
311
+ if !res.body.nil?
312
+ result_date = JSON.parse(res.body)
313
+ end
314
+
315
+
316
+ # puts JSON.pretty_generate(result_date)
317
+
318
+ return result_date
319
+
320
+ end
321
+
322
+
323
+
324
+ # def post_app_update_binary(appId:nil, key_id:nil, description:nil)
325
+ def post_app_update_binary(appId:nil, params:nil)
326
+
327
+
328
+ boss_url = @baseurl + @request_config["upload_app_binary"]
329
+
330
+ # puts boss_url
331
+ body_params = {
332
+ appId:appId,
333
+ description:"",
334
+ s3Url:"",
335
+ attachFileUrls:[],
336
+ }
337
+
338
+ # puts body_params.to_json
339
+ #
340
+
341
+ params.each { |key,value| body_params[key] = value }
342
+ # puts body_params.to_json
343
+
344
+ # puts JSON.pretty_generate(body_params)
345
+ # puts "111"
346
+ con = HttpClient.create_instance_with_proxy
347
+ res = con.post do |req|
348
+ req.url boss_url
349
+ req.headers['Content-Type'] = 'application/json'
350
+ req.headers['token'] = @token["token"]
351
+ req.body = body_params.to_json
352
+ end
353
+
354
+
355
+ result_date = nil
356
+ if !res.body.nil?
357
+ result_date = JSON.parse(res.body)
358
+ end
359
+
360
+
361
+ # puts JSON.pretty_generate(result_date)
362
+
363
+ return result_date
364
+
365
+ end
366
+
367
+ def get_app_version_list_req(appId:nil, params:nil)
368
+
369
+ params = {} if params.nil?
370
+ boss_url = @baseurl + @request_config["get_app_version_list"]
371
+
372
+ get_params = {
373
+ appId:appId,
374
+ pageNo:1,
375
+ pageSize:20,
376
+ }
377
+
378
+ params.each { |key,value| get_params[key] = value }
379
+
380
+
381
+ con = HttpClient.create_instance_with_proxy
382
+ res = con.get do |req|
383
+ req.url boss_url
384
+ req.headers['Content-Type'] = 'application/json'
385
+ req.headers['token'] = @token["token"]
386
+ req.params = get_params
387
+ end
388
+
389
+ result_date = nil
390
+ if !res.body.nil?
391
+ result_date = JSON.parse(res.body)
392
+ end
393
+
394
+
395
+ # puts JSON.pretty_generate(result_date)
396
+
397
+ return result_date
398
+
399
+ end
400
+
401
+
402
+ def post_update_upload_comment(appId:nil, id:nil, comment:nil)
403
+
404
+
405
+ boss_url = @baseurl + @request_config["update_upload_comment"]
406
+
407
+ # puts boss_url
408
+ body_params = {
409
+ appId:appId,
410
+ id:id,
411
+ description:comment || ""
412
+ }
413
+
414
+
415
+ con = HttpClient.create_instance_with_proxy
416
+
417
+ res = con.post do |req|
418
+ req.url boss_url
419
+ req.headers['Content-Type'] = 'application/json'
420
+ req.headers['token'] = @token["token"]
421
+ req.body = body_params.to_json
422
+ end
423
+
424
+
425
+ result_date = nil
426
+ if !res.body.nil?
427
+ result_date = JSON.parse(res.body)
428
+ end
429
+
430
+
431
+ # puts JSON.pretty_generate(result_date)
432
+
433
+ return result_date
434
+
435
+ end
436
+
437
+ end
438
+ end
439
+