pindo 4.6.9

Sign up to get free protection for your applications and to get access to all the features.
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
+