lhj-tools 0.1.75 → 0.1.77
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/lib/lhj/command/code/code_template.rb +2 -2
- data/lib/lhj/command/yapi.rb +66 -35
- data/lib/lhj/tools/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d672d1cf1227b28c98ba5103e9ee855726948df87cd020304dcfd6e8a6ceee63
|
|
4
|
+
data.tar.gz: 2be43594360da9049569d7c5e1d2f60e68b4a837dce9d4c743f5d326dc2d0a15
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: '039225bc897b4c4173d42291bd5a008ba0e4d7804d1fe3607357d28d9b10f030cbf9fdbbb60f12734b09c1ead843ed00481fb3e3e3dc3f52d64d7031e7f91cb1'
|
|
7
|
+
data.tar.gz: e39146285cceb19741b7bafead5d63dd422d05f0371838aef011ecf4417c12aee3041d6cd42f1317223b2a2c28ed42ac6232559c70662014c1bd59e71c7ad2aa
|
|
@@ -25,8 +25,8 @@ module Lhj
|
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def render_template(template_name)
|
|
28
|
-
|
|
29
|
-
Lhj::
|
|
28
|
+
temp = File.read(File.join(File.dirname(__FILE__), 'template', template_name))
|
|
29
|
+
Lhj::ErbTemplateHelper.render(temp, nil, nil)
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
end
|
data/lib/lhj/command/yapi.rb
CHANGED
|
@@ -21,7 +21,9 @@ module Lhj
|
|
|
21
21
|
%w[--id api的id],
|
|
22
22
|
%w[--model-pre 模型的前缀],
|
|
23
23
|
%w[--model-name 模型的名称],
|
|
24
|
-
%w[--save 保存生成文件]
|
|
24
|
+
%w[--save 保存生成文件],
|
|
25
|
+
%w[--sync 同步到github],
|
|
26
|
+
%w[--notify 通知到钉钉]
|
|
25
27
|
]
|
|
26
28
|
end
|
|
27
29
|
|
|
@@ -40,9 +42,8 @@ module Lhj
|
|
|
40
42
|
@config_id = ''
|
|
41
43
|
@config_model_pre = 'ML'
|
|
42
44
|
@config_model_name = 'Result'
|
|
43
|
-
@
|
|
45
|
+
@config_base_url = 'http://yapi.xx.com'
|
|
44
46
|
@type_trans = {}
|
|
45
|
-
@base_url = 'http://yapi.xx.com'
|
|
46
47
|
super
|
|
47
48
|
end
|
|
48
49
|
|
|
@@ -63,13 +64,13 @@ module Lhj
|
|
|
63
64
|
project_id = res_body['data']['project_id']
|
|
64
65
|
project_info = get_project_info(project_id)
|
|
65
66
|
# 1.print request result
|
|
66
|
-
|
|
67
|
+
print_res_body_model(res_body)
|
|
67
68
|
# 2.print request json body
|
|
68
|
-
|
|
69
|
+
print_req_body_model(res_body) if res_body['data']['req_body_is_json_schema']
|
|
69
70
|
# 3.print request param
|
|
70
|
-
print_req_query(res_body['data'])
|
|
71
|
+
print_req_query(res_body['data']) unless res_body['data']['req_body_is_json_schema']
|
|
71
72
|
# 4.print request method
|
|
72
|
-
service_code = print_http_method(res_body['data'], project_info
|
|
73
|
+
service_code = print_http_method(res_body['data'], project_info)
|
|
73
74
|
# 5.save to file
|
|
74
75
|
file_map = save_to_file(service_code) if @save
|
|
75
76
|
# 6.push to git
|
|
@@ -107,17 +108,19 @@ module Lhj
|
|
|
107
108
|
def save_to_file(service_code)
|
|
108
109
|
name = model_name
|
|
109
110
|
file_name = gen_model_name
|
|
110
|
-
unless File.exist?(File.expand_path(sub_folder_name, '.'))
|
|
111
|
-
FileUtils.mkdir_p(File.expand_path(sub_folder_name, '.'))
|
|
112
|
-
end
|
|
111
|
+
FileUtils.mkdir_p(File.expand_path(sub_folder_name, '.')) unless File.exist?(File.expand_path(sub_folder_name, '.'))
|
|
113
112
|
h_file = File.join('.', sub_folder_name, "#{file_name}.h")
|
|
114
113
|
m_file = File.join('.', sub_folder_name, "#{file_name}.m")
|
|
115
114
|
service_file = File.join('.', sub_folder_name, "#{model_pre}#{name}Service.m")
|
|
116
115
|
File.write(h_file, @h_file_array.join("\n")) if @h_file_array.count.positive?
|
|
117
116
|
File.write(m_file, @m_file_array.join("\n")) if @m_file_array.count.positive?
|
|
118
117
|
File.write(service_file, service_code) if service_code
|
|
119
|
-
puts "\n\n生成文件成功!所在路径:\n#{File.expand_path(h_file)} \n#{File.expand_path(m_file)}".green
|
|
120
|
-
{
|
|
118
|
+
puts "\n\n生成文件成功!所在路径:\n#{File.expand_path(h_file)} \n#{File.expand_path(m_file)}".green if @save && !@notify
|
|
119
|
+
{
|
|
120
|
+
h_file: "#{sub_folder_name}/#{file_name}.h",
|
|
121
|
+
m_file: "#{sub_folder_name}/#{file_name}.m",
|
|
122
|
+
s_file: "#{sub_folder_name}/#{model_pre}#{name}Service.m"
|
|
123
|
+
}
|
|
121
124
|
end
|
|
122
125
|
|
|
123
126
|
def push_to_git
|
|
@@ -127,23 +130,34 @@ module Lhj
|
|
|
127
130
|
Actions.sh('git push')
|
|
128
131
|
end
|
|
129
132
|
|
|
130
|
-
def notify_robot(
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
133
|
+
def notify_robot(upload_info, interface_info, project_info)
|
|
134
|
+
i_url = "#{project_info['data']['basepath']}#{interface_info['data']['path']}"
|
|
135
|
+
username = interface_info['data']['username']
|
|
136
|
+
title = interface_info['data']['title']
|
|
137
|
+
p_id = project_info['data']['_id']
|
|
138
|
+
api_url = api_original_url(p_id)
|
|
139
|
+
temp_vars = upload_info.merge({
|
|
140
|
+
api_id: api_id,
|
|
141
|
+
title: title,
|
|
142
|
+
username: username,
|
|
143
|
+
interface_url: i_url,
|
|
144
|
+
api_url: api_url
|
|
145
|
+
})
|
|
136
146
|
template = Lhj::ErbTemplateHelper.load('oc_code_notify')
|
|
137
147
|
output = Lhj::ErbTemplateHelper.render(template, temp_vars, '-')
|
|
138
|
-
Lhj::Dingtalk.post_message_robot(robot_url, '
|
|
148
|
+
Lhj::Dingtalk.post_message_robot(robot_url, 'yapi generate', output)
|
|
139
149
|
end
|
|
140
150
|
|
|
141
151
|
def interface_url_str
|
|
142
|
-
"#{@
|
|
152
|
+
"#{@config_base_url}/#{API_INTERFACE_URL}#{api_id}"
|
|
143
153
|
end
|
|
144
154
|
|
|
145
155
|
def project_url_str(project_id)
|
|
146
|
-
"#{@
|
|
156
|
+
"#{@config_base_url}/#{API_PROJECT_URL}#{project_id}"
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
def api_original_url(project_id)
|
|
160
|
+
"#{@config_base_url}/project/#{project_id}/interface/api/#{api_id}"
|
|
147
161
|
end
|
|
148
162
|
|
|
149
163
|
def yml_file
|
|
@@ -155,11 +169,12 @@ module Lhj
|
|
|
155
169
|
config.each do |k, v|
|
|
156
170
|
@http_headers << "#{k}=#{v}" if k.eql?('__wpkreporterwid_') || k.eql?('_yapi_token') || k.eql?('_yapi_uid')
|
|
157
171
|
end
|
|
158
|
-
@
|
|
172
|
+
@config_base_url = config['base_url']
|
|
159
173
|
@config_id = config['id']
|
|
160
174
|
@config_model_pre = config['model_pre']
|
|
161
175
|
@config_model_suffix = config['model_suffix']
|
|
162
176
|
@config_model_name = config['model_name']
|
|
177
|
+
@config_robot_url = config['dingtalk']
|
|
163
178
|
@type_trans = config['type_trans']
|
|
164
179
|
end
|
|
165
180
|
|
|
@@ -176,11 +191,15 @@ module Lhj
|
|
|
176
191
|
end
|
|
177
192
|
|
|
178
193
|
def req_model_name
|
|
179
|
-
'
|
|
194
|
+
'RequestParam'
|
|
180
195
|
end
|
|
181
196
|
|
|
182
197
|
def model_suffix
|
|
183
|
-
@config_model_suffix ||
|
|
198
|
+
@config_model_suffix || 'Model'
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
def robot_url
|
|
202
|
+
@config_robot_url || 'https://oapi.dingtalk.com/robot/send?access_token=fe879fd3e7a3b5e59d5719b2384845b7884901919be5a78fe443cbf777869807'
|
|
184
203
|
end
|
|
185
204
|
|
|
186
205
|
def get_interface_api_model
|
|
@@ -224,7 +243,6 @@ module Lhj
|
|
|
224
243
|
print_models_for_java(models)
|
|
225
244
|
end
|
|
226
245
|
puts "\n<===============打印返回数据模型-End=====================>\n".green
|
|
227
|
-
models.last[:name]
|
|
228
246
|
end
|
|
229
247
|
|
|
230
248
|
def print_req_body_model(res_json)
|
|
@@ -244,16 +262,16 @@ module Lhj
|
|
|
244
262
|
print_models_for_java(models)
|
|
245
263
|
end
|
|
246
264
|
puts "\n<===============打印请求模型-End=====================>\n".green
|
|
247
|
-
models.last[:name]
|
|
248
265
|
end
|
|
249
266
|
|
|
250
267
|
def fetch_res_boy(res_json)
|
|
251
268
|
return if !res_json || !res_json['data'] || !res_json['data']['res_body']
|
|
252
269
|
|
|
253
270
|
res_body = JSON.parse(res_json['data']['res_body'])
|
|
254
|
-
return if !res_body['properties'] || !res_body['properties']['detailMsg']
|
|
255
271
|
|
|
256
|
-
result = res_body
|
|
272
|
+
result = res_body
|
|
273
|
+
result = res_body['properties']['detailMsg'] if res_body['properties'] && res_body['properties']['detailMsg']
|
|
274
|
+
|
|
257
275
|
return unless result['type'] == 'object' || result['type'] == 'array'
|
|
258
276
|
|
|
259
277
|
result['name'] = gen_model_name
|
|
@@ -270,12 +288,15 @@ module Lhj
|
|
|
270
288
|
|
|
271
289
|
def gen_model_name(property_name = nil, type = :res)
|
|
272
290
|
name = model_name
|
|
273
|
-
name = req_model_name if type == :req
|
|
274
291
|
unless property_name.nil?
|
|
275
292
|
name = property_name.gsub(/vo|model|list/i, '').gsub(/(.*)s$/, '\1').gsub(/^\w/) { Regexp.last_match(0).upcase }
|
|
276
293
|
name = property_name.gsub(/^\w/) { Regexp.last_match(0).upcase } if name.length <= 0
|
|
277
294
|
end
|
|
278
|
-
|
|
295
|
+
if type == :req
|
|
296
|
+
"#{model_pre}#{name}#{req_model_name}"
|
|
297
|
+
else
|
|
298
|
+
"#{model_pre}#{name}#{model_suffix}"
|
|
299
|
+
end
|
|
279
300
|
end
|
|
280
301
|
|
|
281
302
|
def handle_model(model, &block)
|
|
@@ -414,7 +435,8 @@ module Lhj
|
|
|
414
435
|
|
|
415
436
|
case @language
|
|
416
437
|
when 'oc'
|
|
417
|
-
|
|
438
|
+
param_model_name = gen_model_name(nil, :req)
|
|
439
|
+
puts_h "@interface #{param_model_name} : NSObject"
|
|
418
440
|
data['req_query'].each do |h|
|
|
419
441
|
des = h['desc']
|
|
420
442
|
puts_h "///#{des} #{h['example']}"
|
|
@@ -426,14 +448,23 @@ module Lhj
|
|
|
426
448
|
end
|
|
427
449
|
end
|
|
428
450
|
|
|
429
|
-
def print_http_method(data, project_info
|
|
451
|
+
def print_http_method(data, project_info)
|
|
430
452
|
return unless data
|
|
431
453
|
|
|
432
454
|
path = data['path']
|
|
433
455
|
if path
|
|
434
|
-
|
|
456
|
+
arr = path.split('/').map do |s|
|
|
457
|
+
re = s.gsub(/[^A-Za-z0-9](.)/) { Regexp.last_match(0).upcase }
|
|
458
|
+
re = re.gsub(/[^A-Za-z0-9]/, '')
|
|
459
|
+
re.gsub(/^\w/) { Regexp.last_match(0).upcase }
|
|
460
|
+
end
|
|
461
|
+
path_name = arr.join('')
|
|
435
462
|
end
|
|
436
463
|
path_key = "k#{path_name}URL"
|
|
464
|
+
display_path = "#{project_info['data']['basepath']}#{path}"
|
|
465
|
+
display_path = display_path[1..-1] if display_path.index('/') == 0
|
|
466
|
+
result_model_name = gen_model_name
|
|
467
|
+
param_model_name = gen_model_name(nil, :req)
|
|
437
468
|
mth = data['method']
|
|
438
469
|
mth = 'JSON' if data['req_body_is_json_schema']
|
|
439
470
|
case @language
|
|
@@ -446,11 +477,11 @@ module Lhj
|
|
|
446
477
|
yapi_vars = { title: data['title'],
|
|
447
478
|
desc: data['desc'],
|
|
448
479
|
username: data['username'],
|
|
449
|
-
path:
|
|
480
|
+
path: display_path,
|
|
450
481
|
path_key: path_key,
|
|
451
482
|
path_name: path_name,
|
|
452
483
|
result_model_name: result_model_name,
|
|
453
|
-
param_model_name: param_model_name
|
|
484
|
+
param_model_name: param_model_name,
|
|
454
485
|
mth: mth,
|
|
455
486
|
model_template: model_temp_result }
|
|
456
487
|
yapi_temp_result = Lhj::ErbTemplateHelper.render(yapi_temp, yapi_vars, '-')
|
data/lib/lhj/tools/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lhj-tools
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.77
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- lihaijian
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-12-
|
|
11
|
+
date: 2022-12-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: xcodeproj
|