jpsclient 0.2.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.
Files changed (88) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/bin/jpsclient +28 -0
  4. data/lib/jpsclient/api/app_level.rb +138 -0
  5. data/lib/jpsclient/api/app_resource.rb +164 -0
  6. data/lib/jpsclient/api/app_resource_version.rb +52 -0
  7. data/lib/jpsclient/api/apple_account.rb +140 -0
  8. data/lib/jpsclient/api/application.rb +268 -0
  9. data/lib/jpsclient/api/application_category.rb +120 -0
  10. data/lib/jpsclient/api/application_design.rb +118 -0
  11. data/lib/jpsclient/api/application_income.rb +54 -0
  12. data/lib/jpsclient/api/application_sales.rb +52 -0
  13. data/lib/jpsclient/api/application_version.rb +77 -0
  14. data/lib/jpsclient/api/assets_category.rb +120 -0
  15. data/lib/jpsclient/api/bug.rb +140 -0
  16. data/lib/jpsclient/api/cert.rb +27 -0
  17. data/lib/jpsclient/api/client.rb +268 -0
  18. data/lib/jpsclient/api/collect.rb +52 -0
  19. data/lib/jpsclient/api/collection.rb +162 -0
  20. data/lib/jpsclient/api/commit_log.rb +104 -0
  21. data/lib/jpsclient/api/creative.rb +52 -0
  22. data/lib/jpsclient/api/custom_application.rb +230 -0
  23. data/lib/jpsclient/api/custom_application_web.rb +52 -0
  24. data/lib/jpsclient/api/document_text.rb +30 -0
  25. data/lib/jpsclient/api/experience.rb +143 -0
  26. data/lib/jpsclient/api/experience_category.rb +97 -0
  27. data/lib/jpsclient/api/fgui_export.rb +52 -0
  28. data/lib/jpsclient/api/file.rb +84 -0
  29. data/lib/jpsclient/api/game_assets.rb +140 -0
  30. data/lib/jpsclient/api/healthy.rb +30 -0
  31. data/lib/jpsclient/api/icon_and_snapshot.rb +54 -0
  32. data/lib/jpsclient/api/idea.rb +121 -0
  33. data/lib/jpsclient/api/jssdk.rb +30 -0
  34. data/lib/jpsclient/api/lark_bitable.rb +30 -0
  35. data/lib/jpsclient/api/lark_chat_group.rb +30 -0
  36. data/lib/jpsclient/api/lark_comment.rb +118 -0
  37. data/lib/jpsclient/api/lark_task.rb +140 -0
  38. data/lib/jpsclient/api/lark_task_list.rb +118 -0
  39. data/lib/jpsclient/api/lark_task_section.rb +74 -0
  40. data/lib/jpsclient/api/lark_user.rb +30 -0
  41. data/lib/jpsclient/api/lark_wiki_node.rb +30 -0
  42. data/lib/jpsclient/api/lark_wiki_space.rb +30 -0
  43. data/lib/jpsclient/api/lazy_client.rb +290 -0
  44. data/lib/jpsclient/api/login.rb +96 -0
  45. data/lib/jpsclient/api/m3u8.rb +30 -0
  46. data/lib/jpsclient/api/menu.rb +143 -0
  47. data/lib/jpsclient/api/modular_client.rb +228 -0
  48. data/lib/jpsclient/api/project.rb +46 -0
  49. data/lib/jpsclient/api/project_package.rb +249 -0
  50. data/lib/jpsclient/api/publisher.rb +165 -0
  51. data/lib/jpsclient/api/publisher_category.rb +142 -0
  52. data/lib/jpsclient/api/publisher_group.rb +118 -0
  53. data/lib/jpsclient/api/publisher_group_category.rb +120 -0
  54. data/lib/jpsclient/api/requirements.rb +143 -0
  55. data/lib/jpsclient/api/requirements_category.rb +97 -0
  56. data/lib/jpsclient/api/resource_category.rb +120 -0
  57. data/lib/jpsclient/api/role.rb +165 -0
  58. data/lib/jpsclient/api/simple_search.rb +162 -0
  59. data/lib/jpsclient/api/sketch.rb +74 -0
  60. data/lib/jpsclient/api/sketch_category.rb +97 -0
  61. data/lib/jpsclient/api/sov.rb +30 -0
  62. data/lib/jpsclient/api/statistics.rb +30 -0
  63. data/lib/jpsclient/api/store.rb +30 -0
  64. data/lib/jpsclient/api/survey.rb +143 -0
  65. data/lib/jpsclient/api/survey_category.rb +97 -0
  66. data/lib/jpsclient/api/tag.rb +142 -0
  67. data/lib/jpsclient/api/tool.rb +121 -0
  68. data/lib/jpsclient/api/tool_category.rb +120 -0
  69. data/lib/jpsclient/api/trending.rb +30 -0
  70. data/lib/jpsclient/api/ud_id.rb +118 -0
  71. data/lib/jpsclient/api/user.rb +99 -0
  72. data/lib/jpsclient/api/util.rb +30 -0
  73. data/lib/jpsclient/api/video_cover.rb +30 -0
  74. data/lib/jpsclient/api/webhook.rb +118 -0
  75. data/lib/jpsclient/api/workflow.rb +118 -0
  76. data/lib/jpsclient/auth/auth.rb +676 -0
  77. data/lib/jpsclient/auth/token.rb +209 -0
  78. data/lib/jpsclient/base/api_config.rb +225 -0
  79. data/lib/jpsclient/base/exception.rb +5 -0
  80. data/lib/jpsclient/http/http_client.rb +148 -0
  81. data/lib/jpsclient/upload/upload_client.rb +334 -0
  82. data/lib/jpsclient/upload/upload_config.rb +128 -0
  83. data/lib/jpsclient/upload/upload_progress.rb +73 -0
  84. data/lib/jpsclient/utils/aes.rb +49 -0
  85. data/lib/jpsclient/utils/logger.rb +38 -0
  86. data/lib/jpsclient/version.rb +3 -0
  87. data/lib/jpsclient.rb +34 -0
  88. metadata +269 -0
@@ -0,0 +1,143 @@
1
+ module JPSClient
2
+ module API
3
+ # Experience 相关 API
4
+ # 自动生成的模块,处理 experience 相关接口
5
+ module Experience
6
+
7
+ # Update Experience
8
+ #
9
+ # @param params [Hash] 请求参数
10
+ # @return [Hash] API响应
11
+ def update_experience(experienceId:, params: {})
12
+ config = @request_config && @request_config["experience_experience"]
13
+ raise JPSClient::ExceptionError, "Missing config for experience_experience" unless config && config["url"]
14
+
15
+ path = config["url"]
16
+ path = path.gsub("{experienceId}", experienceId.to_s)
17
+
18
+ response = @http_client.put(path, body: params)
19
+ result = JPSClient::Response.new(response)
20
+
21
+ if result.need_login?
22
+ do_login(force_login: true)
23
+ response = @http_client.put(path, body: params)
24
+ result = JPSClient::Response.new(response)
25
+ end
26
+
27
+ return result.to_h
28
+ end
29
+
30
+ # Delete Experience
31
+ #
32
+ # @param params [Hash] 请求参数
33
+ # @return [Hash] API响应
34
+ def delete_experience(experienceId:, params: {})
35
+ config = @request_config && @request_config["experience_experience"]
36
+ raise JPSClient::ExceptionError, "Missing config for experience_experience" unless config && config["url"]
37
+
38
+ path = config["url"]
39
+ path = path.gsub("{experienceId}", experienceId.to_s)
40
+
41
+ response = @http_client.delete(path)
42
+ result = JPSClient::Response.new(response)
43
+
44
+ if result.need_login?
45
+ do_login(force_login: true)
46
+ response = @http_client.delete(path)
47
+ result = JPSClient::Response.new(response)
48
+ end
49
+
50
+ return result.to_h
51
+ end
52
+
53
+ # Update Experience
54
+ #
55
+ # @param params [Hash] 请求参数
56
+ # @return [Hash] API响应
57
+ def update_experience(experienceId:, params: {})
58
+ config = @request_config && @request_config["experience_experience"]
59
+ raise JPSClient::ExceptionError, "Missing config for experience_experience" unless config && config["url"]
60
+
61
+ path = config["url"]
62
+ path = path.gsub("{experienceId}", experienceId.to_s)
63
+
64
+ response = @http_client.put(path, body: params)
65
+ result = JPSClient::Response.new(response)
66
+
67
+ if result.need_login?
68
+ do_login(force_login: true)
69
+ response = @http_client.put(path, body: params)
70
+ result = JPSClient::Response.new(response)
71
+ end
72
+
73
+ return result.to_h
74
+ end
75
+
76
+ # Create Experience
77
+ #
78
+ # @param params [Hash] 请求参数
79
+ # @return [Hash] API响应
80
+ def create_experience(params: {})
81
+ config = @request_config && @request_config["experience_experience"]
82
+ raise JPSClient::ExceptionError, "Missing config for experience_experience" unless config && config["url"]
83
+
84
+ path = config["url"]
85
+
86
+ response = @http_client.post(path, body: params)
87
+ result = JPSClient::Response.new(response)
88
+
89
+ if result.need_login?
90
+ do_login(force_login: true)
91
+ response = @http_client.post(path, body: params)
92
+ result = JPSClient::Response.new(response)
93
+ end
94
+
95
+ return result.to_h
96
+ end
97
+
98
+ # Get List
99
+ #
100
+ # @param params [Hash] 请求参数
101
+ # @return [Hash] API响应
102
+ def get_list(params: {})
103
+ config = @request_config && @request_config["experience_list"]
104
+ raise JPSClient::ExceptionError, "Missing config for experience_list" unless config && config["url"]
105
+
106
+ path = config["url"]
107
+
108
+ response = @http_client.post(path, body: params)
109
+ result = JPSClient::Response.new(response)
110
+
111
+ if result.need_login?
112
+ do_login(force_login: true)
113
+ response = @http_client.post(path, body: params)
114
+ result = JPSClient::Response.new(response)
115
+ end
116
+
117
+ return result.to_h
118
+ end
119
+
120
+ # Get List
121
+ #
122
+ # @param params [Hash] 请求参数
123
+ # @return [Hash] API响应
124
+ def get_list(params: {})
125
+ config = @request_config && @request_config["experience_list"]
126
+ raise JPSClient::ExceptionError, "Missing config for experience_list" unless config && config["url"]
127
+
128
+ path = config["url"]
129
+
130
+ response = @http_client.post(path, body: params)
131
+ result = JPSClient::Response.new(response)
132
+
133
+ if result.need_login?
134
+ do_login(force_login: true)
135
+ response = @http_client.post(path, body: params)
136
+ result = JPSClient::Response.new(response)
137
+ end
138
+
139
+ return result.to_h
140
+ end
141
+ end
142
+ end
143
+ end
@@ -0,0 +1,97 @@
1
+ module JPSClient
2
+ module API
3
+ # ExperienceCategory 相关 API
4
+ # 自动生成的模块,处理 experience_category 相关接口
5
+ module ExperienceCategory
6
+
7
+ # Update Experience Category
8
+ #
9
+ # @param params [Hash] 请求参数
10
+ # @return [Hash] API响应
11
+ def update_experience_category(categoryId:, params: {})
12
+ config = @request_config && @request_config["experience_category_experience_category"]
13
+ raise JPSClient::ExceptionError, "Missing config for experience_category_experience_category" unless config && config["url"]
14
+
15
+ path = config["url"]
16
+ path = path.gsub("{categoryId}", categoryId.to_s)
17
+
18
+ response = @http_client.put(path, body: params)
19
+ result = JPSClient::Response.new(response)
20
+
21
+ if result.need_login?
22
+ do_login(force_login: true)
23
+ response = @http_client.put(path, body: params)
24
+ result = JPSClient::Response.new(response)
25
+ end
26
+
27
+ return result.to_h
28
+ end
29
+
30
+ # Create Experience Category
31
+ #
32
+ # @param params [Hash] 请求参数
33
+ # @return [Hash] API响应
34
+ def create_experience_category(params: {})
35
+ config = @request_config && @request_config["experience_category_experience_category"]
36
+ raise JPSClient::ExceptionError, "Missing config for experience_category_experience_category" unless config && config["url"]
37
+
38
+ path = config["url"]
39
+
40
+ response = @http_client.post(path, body: params)
41
+ result = JPSClient::Response.new(response)
42
+
43
+ if result.need_login?
44
+ do_login(force_login: true)
45
+ response = @http_client.post(path, body: params)
46
+ result = JPSClient::Response.new(response)
47
+ end
48
+
49
+ return result.to_h
50
+ end
51
+
52
+ # Create Weights
53
+ #
54
+ # @param params [Hash] 请求参数
55
+ # @return [Hash] API响应
56
+ def create_weights(params: {})
57
+ config = @request_config && @request_config["experience_category_weights"]
58
+ raise JPSClient::ExceptionError, "Missing config for experience_category_weights" unless config && config["url"]
59
+
60
+ path = config["url"]
61
+
62
+ response = @http_client.post(path, body: params)
63
+ result = JPSClient::Response.new(response)
64
+
65
+ if result.need_login?
66
+ do_login(force_login: true)
67
+ response = @http_client.post(path, body: params)
68
+ result = JPSClient::Response.new(response)
69
+ end
70
+
71
+ return result.to_h
72
+ end
73
+
74
+ # Create Experience Categories
75
+ #
76
+ # @param params [Hash] 请求参数
77
+ # @return [Hash] API响应
78
+ def create_experience_categories(params: {})
79
+ config = @request_config && @request_config["experience_category_experience_categories"]
80
+ raise JPSClient::ExceptionError, "Missing config for experience_category_experience_categories" unless config && config["url"]
81
+
82
+ path = config["url"]
83
+
84
+ response = @http_client.post(path, body: params)
85
+ result = JPSClient::Response.new(response)
86
+
87
+ if result.need_login?
88
+ do_login(force_login: true)
89
+ response = @http_client.post(path, body: params)
90
+ result = JPSClient::Response.new(response)
91
+ end
92
+
93
+ return result.to_h
94
+ end
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,52 @@
1
+ module JPSClient
2
+ module API
3
+ # FguiExport 相关 API
4
+ # 自动生成的模块,处理 fgui_export 相关接口
5
+ module FguiExport
6
+
7
+ # Create Import
8
+ #
9
+ # @param params [Hash] 请求参数
10
+ # @return [Hash] API响应
11
+ def create_import(params: {})
12
+ config = @request_config && @request_config["fgui_export_import"]
13
+ raise JPSClient::ExceptionError, "Missing config for fgui_export_import" unless config && config["url"]
14
+
15
+ path = config["url"]
16
+
17
+ response = @http_client.post(path, body: params)
18
+ result = JPSClient::Response.new(response)
19
+
20
+ if result.need_login?
21
+ do_login(force_login: true)
22
+ response = @http_client.post(path, body: params)
23
+ result = JPSClient::Response.new(response)
24
+ end
25
+
26
+ return result.to_h
27
+ end
28
+
29
+ # Create Detail
30
+ #
31
+ # @param params [Hash] 请求参数
32
+ # @return [Hash] API响应
33
+ def create_detail(params: {})
34
+ config = @request_config && @request_config["fgui_export_detail"]
35
+ raise JPSClient::ExceptionError, "Missing config for fgui_export_detail" unless config && config["url"]
36
+
37
+ path = config["url"]
38
+
39
+ response = @http_client.post(path, body: params)
40
+ result = JPSClient::Response.new(response)
41
+
42
+ if result.need_login?
43
+ do_login(force_login: true)
44
+ response = @http_client.post(path, body: params)
45
+ result = JPSClient::Response.new(response)
46
+ end
47
+
48
+ return result.to_h
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,84 @@
1
+ module JPSClient
2
+ module API
3
+ # 文件上传相关 API
4
+ # 处理 /api/file/* 路径的所有接口
5
+ module File
6
+
7
+ # 初始化多部分上传
8
+ def init_file_multipart(s3_key:, content_type: "", upload_config:)
9
+ path = @request_config["file_init_multipart"]["url"]
10
+
11
+ body_params = {
12
+ s3Key: s3_key,
13
+ contentType: content_type,
14
+ uploadType: upload_config.upload_type,
15
+ bucketName: upload_config.bucket_name,
16
+ region: upload_config.region
17
+ }
18
+
19
+ response = @http_client.post(path, body: body_params, timeout: 60)
20
+ result = JPSClient::Response.new(response)
21
+
22
+ # 处理 401 错误,自动重新登录
23
+ if result.need_login?
24
+ do_login(force_login: true)
25
+ response = @http_client.post(path, body: body_params, timeout: 60)
26
+ result = JPSClient::Response.new(response)
27
+ end
28
+
29
+ return result.to_h
30
+ end
31
+
32
+ # 获取分片预签名URL
33
+ def get_file_sign_url(s3_key:, upload_id:, part_id:, upload_config:)
34
+ path = @request_config["file_sign_url"]["url"]
35
+
36
+ body_params = {
37
+ s3Key: s3_key,
38
+ uploadType: upload_config.upload_type,
39
+ uploadId: upload_id,
40
+ partId: part_id,
41
+ bucketName: upload_config.bucket_name,
42
+ region: upload_config.region
43
+ }
44
+
45
+ response = @http_client.post(path, body: body_params, timeout: 60)
46
+ result = JPSClient::Response.new(response)
47
+
48
+ if result.need_login?
49
+ do_login(force_login: true)
50
+ response = @http_client.post(path, body: body_params, timeout: 60)
51
+ result = JPSClient::Response.new(response)
52
+ end
53
+
54
+ return result.to_h
55
+ end
56
+
57
+ # 完成多部分上传
58
+ def complete_file_multipart(s3_key:, upload_id:, upload_config:)
59
+ path = @request_config["file_complete_multipart"]["url"]
60
+
61
+ body_params = {
62
+ s3Key: s3_key,
63
+ uploadId: upload_id,
64
+ uploadType: upload_config.upload_type,
65
+ bucketName: upload_config.bucket_name,
66
+ region: upload_config.region
67
+ }
68
+
69
+ # 完成上传可能需要更长时间
70
+ response = @http_client.post(path, body: body_params, timeout: 120)
71
+ result = JPSClient::Response.new(response)
72
+
73
+ if result.need_login?
74
+ do_login(force_login: true)
75
+ response = @http_client.post(path, body: body_params, timeout: 120)
76
+ result = JPSClient::Response.new(response)
77
+ end
78
+
79
+ return result.to_h
80
+ end
81
+
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,140 @@
1
+ module JPSClient
2
+ module API
3
+ # GameAssets 相关 API
4
+ # 自动生成的模块,处理 game_assets 相关接口
5
+ module GameAssets
6
+
7
+ # Create Game Assets
8
+ #
9
+ # @param params [Hash] 请求参数
10
+ # @return [Hash] API响应
11
+ def create_game_assets(params: {})
12
+ config = @request_config && @request_config["game_assets_game_assets"]
13
+ raise JPSClient::ExceptionError, "Missing config for game_assets_game_assets" unless config && config["url"]
14
+
15
+ path = config["url"]
16
+
17
+ response = @http_client.post(path, body: params)
18
+ result = JPSClient::Response.new(response)
19
+
20
+ if result.need_login?
21
+ do_login(force_login: true)
22
+ response = @http_client.post(path, body: params)
23
+ result = JPSClient::Response.new(response)
24
+ end
25
+
26
+ return result.to_h
27
+ end
28
+
29
+ # Create Game Asset
30
+ #
31
+ # @param params [Hash] 请求参数
32
+ # @return [Hash] API响应
33
+ def create_game_asset(params: {})
34
+ config = @request_config && @request_config["game_assets_game_asset"]
35
+ raise JPSClient::ExceptionError, "Missing config for game_assets_game_asset" unless config && config["url"]
36
+
37
+ path = config["url"]
38
+
39
+ response = @http_client.post(path, body: params)
40
+ result = JPSClient::Response.new(response)
41
+
42
+ if result.need_login?
43
+ do_login(force_login: true)
44
+ response = @http_client.post(path, body: params)
45
+ result = JPSClient::Response.new(response)
46
+ end
47
+
48
+ return result.to_h
49
+ end
50
+
51
+ # Create Update
52
+ #
53
+ # @param params [Hash] 请求参数
54
+ # @return [Hash] API响应
55
+ def create_update(params: {})
56
+ config = @request_config && @request_config["game_assets_update"]
57
+ raise JPSClient::ExceptionError, "Missing config for game_assets_update" unless config && config["url"]
58
+
59
+ path = config["url"]
60
+
61
+ response = @http_client.post(path, body: params)
62
+ result = JPSClient::Response.new(response)
63
+
64
+ if result.need_login?
65
+ do_login(force_login: true)
66
+ response = @http_client.post(path, body: params)
67
+ result = JPSClient::Response.new(response)
68
+ end
69
+
70
+ return result.to_h
71
+ end
72
+
73
+ # Create Detail
74
+ #
75
+ # @param params [Hash] 请求参数
76
+ # @return [Hash] API响应
77
+ def create_detail(params: {})
78
+ config = @request_config && @request_config["game_assets_detail"]
79
+ raise JPSClient::ExceptionError, "Missing config for game_assets_detail" unless config && config["url"]
80
+
81
+ path = config["url"]
82
+
83
+ response = @http_client.post(path, body: params)
84
+ result = JPSClient::Response.new(response)
85
+
86
+ if result.need_login?
87
+ do_login(force_login: true)
88
+ response = @http_client.post(path, body: params)
89
+ result = JPSClient::Response.new(response)
90
+ end
91
+
92
+ return result.to_h
93
+ end
94
+
95
+ # Create Delete
96
+ #
97
+ # @param params [Hash] 请求参数
98
+ # @return [Hash] API响应
99
+ def create_delete(params: {})
100
+ config = @request_config && @request_config["game_assets_delete"]
101
+ raise JPSClient::ExceptionError, "Missing config for game_assets_delete" unless config && config["url"]
102
+
103
+ path = config["url"]
104
+
105
+ response = @http_client.post(path, body: params)
106
+ result = JPSClient::Response.new(response)
107
+
108
+ if result.need_login?
109
+ do_login(force_login: true)
110
+ response = @http_client.post(path, body: params)
111
+ result = JPSClient::Response.new(response)
112
+ end
113
+
114
+ return result.to_h
115
+ end
116
+
117
+ # Create Game Assets
118
+ #
119
+ # @param params [Hash] 请求参数
120
+ # @return [Hash] API响应
121
+ def create_game_assets(params: {})
122
+ config = @request_config && @request_config["game_assets_game_assets"]
123
+ raise JPSClient::ExceptionError, "Missing config for game_assets_game_assets" unless config && config["url"]
124
+
125
+ path = config["url"]
126
+
127
+ response = @http_client.post(path, body: params)
128
+ result = JPSClient::Response.new(response)
129
+
130
+ if result.need_login?
131
+ do_login(force_login: true)
132
+ response = @http_client.post(path, body: params)
133
+ result = JPSClient::Response.new(response)
134
+ end
135
+
136
+ return result.to_h
137
+ end
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,30 @@
1
+ module JPSClient
2
+ module API
3
+ # Healthy 相关 API
4
+ # 自动生成的模块,处理 healthy 相关接口
5
+ module Healthy
6
+
7
+ # Get Healthy
8
+ #
9
+ # @param params [Hash] 请求参数
10
+ # @return [Hash] API响应
11
+ def get_healthy(params: {})
12
+ config = @request_config && @request_config["healthy_healthy"]
13
+ raise JPSClient::ExceptionError, "Missing config for healthy_healthy" unless config && config["url"]
14
+
15
+ path = config["url"]
16
+
17
+ response = @http_client.get(path, params: params)
18
+ result = JPSClient::Response.new(response)
19
+
20
+ if result.need_login?
21
+ do_login(force_login: true)
22
+ response = @http_client.get(path, params: params)
23
+ result = JPSClient::Response.new(response)
24
+ end
25
+
26
+ return result.to_h
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,54 @@
1
+ module JPSClient
2
+ module API
3
+ # IconAndSnapshot 相关 API
4
+ # 自动生成的模块,处理 icon_and_snapshot 相关接口
5
+ module IconAndSnapshot
6
+
7
+ # Create Snapshots
8
+ #
9
+ # @param params [Hash] 请求参数
10
+ # @return [Hash] API响应
11
+ def create_snapshots(categoryIdStr:, params: {})
12
+ config = @request_config && @request_config["icon_and_snapshot_snapshots"]
13
+ raise JPSClient::ExceptionError, "Missing config for icon_and_snapshot_snapshots" unless config && config["url"]
14
+
15
+ path = config["url"]
16
+ path = path.gsub("{categoryIdStr}", categoryIdStr.to_s)
17
+
18
+ response = @http_client.post(path, body: params)
19
+ result = JPSClient::Response.new(response)
20
+
21
+ if result.need_login?
22
+ do_login(force_login: true)
23
+ response = @http_client.post(path, body: params)
24
+ result = JPSClient::Response.new(response)
25
+ end
26
+
27
+ return result.to_h
28
+ end
29
+
30
+ # Create Icons
31
+ #
32
+ # @param params [Hash] 请求参数
33
+ # @return [Hash] API响应
34
+ def create_icons(categoryIdStr:, params: {})
35
+ config = @request_config && @request_config["icon_and_snapshot_icons"]
36
+ raise JPSClient::ExceptionError, "Missing config for icon_and_snapshot_icons" unless config && config["url"]
37
+
38
+ path = config["url"]
39
+ path = path.gsub("{categoryIdStr}", categoryIdStr.to_s)
40
+
41
+ response = @http_client.post(path, body: params)
42
+ result = JPSClient::Response.new(response)
43
+
44
+ if result.need_login?
45
+ do_login(force_login: true)
46
+ response = @http_client.post(path, body: params)
47
+ result = JPSClient::Response.new(response)
48
+ end
49
+
50
+ return result.to_h
51
+ end
52
+ end
53
+ end
54
+ end