lhj-tools 0.1.77 → 0.1.80
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/lhj/command/yapi.rb +58 -8
- 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: 1ec339600a7bccdf6e71366bf4c0d153544ddeae42cdf867d197d4320129492c
|
4
|
+
data.tar.gz: 2914782da786e0dcd1e6ecb71e0088669b15e8d7e64bb5deb9a478faa563785d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 846675816476a4f97aeb78818d5ccb6ec1173e8654fea452f31af652b17ddcdb87650cd3192b732908a4e2993a760959e077973ce38fdb8c3b0ded745b5d29c9
|
7
|
+
data.tar.gz: e745f2ce809027cf10f461a385089de93f60e8245cb1f960eb8b519245e42a73e72103c99037bcb0a09255135b0c4eda804173d221ac26b4283ede005a31c527
|
data/lib/lhj/command/yapi.rb
CHANGED
@@ -64,13 +64,15 @@ module Lhj
|
|
64
64
|
project_id = res_body['data']['project_id']
|
65
65
|
project_info = get_project_info(project_id)
|
66
66
|
# 1.print request result
|
67
|
-
print_res_body_model(res_body)
|
67
|
+
res_models = print_res_body_model(res_body)
|
68
68
|
# 2.print request json body
|
69
|
-
print_req_body_model(res_body) if res_body['data']['req_body_is_json_schema']
|
69
|
+
req_models = print_req_body_model(res_body) if res_body['data']['req_body_is_json_schema']
|
70
70
|
# 3.print request param
|
71
71
|
print_req_query(res_body['data']) unless res_body['data']['req_body_is_json_schema']
|
72
72
|
# 4.print request method
|
73
73
|
service_code = print_http_method(res_body['data'], project_info)
|
74
|
+
# print request mock data
|
75
|
+
print_mock_request_data(req_models) unless req_models.empty?
|
74
76
|
# 5.save to file
|
75
77
|
file_map = save_to_file(service_code) if @save
|
76
78
|
# 6.push to git
|
@@ -176,6 +178,7 @@ module Lhj
|
|
176
178
|
@config_model_name = config['model_name']
|
177
179
|
@config_robot_url = config['dingtalk']
|
178
180
|
@type_trans = config['type_trans']
|
181
|
+
@config_property_mapper = config['property_mapper']
|
179
182
|
end
|
180
183
|
|
181
184
|
def api_id
|
@@ -202,6 +205,10 @@ module Lhj
|
|
202
205
|
@config_robot_url || 'https://oapi.dingtalk.com/robot/send?access_token=fe879fd3e7a3b5e59d5719b2384845b7884901919be5a78fe443cbf777869807'
|
203
206
|
end
|
204
207
|
|
208
|
+
def property_mapper
|
209
|
+
@config_property_mapper || { 'id' => 'gid' }
|
210
|
+
end
|
211
|
+
|
205
212
|
def get_interface_api_model
|
206
213
|
uri = URI.parse(interface_url_str)
|
207
214
|
req = Net::HTTP::Get.new(uri)
|
@@ -232,7 +239,7 @@ module Lhj
|
|
232
239
|
|
233
240
|
puts "\n<===============打印返回数据模型-Begin=====================>\n".green
|
234
241
|
models = []
|
235
|
-
handle_model(res_body) do |model|
|
242
|
+
handle_model(res_body, :res) do |model|
|
236
243
|
models << model
|
237
244
|
end
|
238
245
|
case @language
|
@@ -243,6 +250,7 @@ module Lhj
|
|
243
250
|
print_models_for_java(models)
|
244
251
|
end
|
245
252
|
puts "\n<===============打印返回数据模型-End=====================>\n".green
|
253
|
+
models
|
246
254
|
end
|
247
255
|
|
248
256
|
def print_req_body_model(res_json)
|
@@ -251,7 +259,7 @@ module Lhj
|
|
251
259
|
|
252
260
|
puts "\n<===============打印请求模型-Begin=====================>\n".green
|
253
261
|
models = []
|
254
|
-
handle_model(req_body) do |model|
|
262
|
+
handle_model(req_body, :req) do |model|
|
255
263
|
models << model
|
256
264
|
end
|
257
265
|
case @language
|
@@ -262,6 +270,7 @@ module Lhj
|
|
262
270
|
print_models_for_java(models)
|
263
271
|
end
|
264
272
|
puts "\n<===============打印请求模型-End=====================>\n".green
|
273
|
+
models
|
265
274
|
end
|
266
275
|
|
267
276
|
def fetch_res_boy(res_json)
|
@@ -299,7 +308,7 @@ module Lhj
|
|
299
308
|
end
|
300
309
|
end
|
301
310
|
|
302
|
-
def handle_model(model, &block)
|
311
|
+
def handle_model(model, type, &block)
|
303
312
|
p_type = model['type']
|
304
313
|
p_name = model['name']
|
305
314
|
p_properties = model['properties']
|
@@ -313,12 +322,12 @@ module Lhj
|
|
313
322
|
c_model = { key: k, type: c_type, description: v['description'], default: '' }
|
314
323
|
if v['type'].eql?('object') || v['type'].eql?('array')
|
315
324
|
o = v['items'] || v
|
316
|
-
o['name'] = gen_model_name(k)
|
325
|
+
o['name'] = gen_model_name(k, type)
|
317
326
|
if v['type'].eql?('array') && v['items']['type'].eql?('string')
|
318
327
|
c_model[:type_name] = 'NSString'
|
319
328
|
else
|
320
329
|
c_model[:type_name] = o['name']
|
321
|
-
handle_model(o, &block)
|
330
|
+
handle_model(o, type, &block)
|
322
331
|
end
|
323
332
|
end
|
324
333
|
properties << c_model
|
@@ -328,7 +337,7 @@ module Lhj
|
|
328
337
|
when 'array'
|
329
338
|
t = model['items']
|
330
339
|
t['name'] = p_name
|
331
|
-
handle_model(t, &block)
|
340
|
+
handle_model(t, type, &block)
|
332
341
|
end
|
333
342
|
end
|
334
343
|
|
@@ -365,6 +374,15 @@ module Lhj
|
|
365
374
|
puts_m " return @{#{str}};"
|
366
375
|
puts_m '}'
|
367
376
|
end
|
377
|
+
properties = model[:properties].filter { |p| property_mapper.keys.include?(p[:key]) }.map do |p|
|
378
|
+
"@\"#{property_mapper[p[:key]]}\": @\"#{p[:key]}\""
|
379
|
+
end
|
380
|
+
property_mapper_str = properties.join(', ') if properties.count.positive?
|
381
|
+
if property_mapper_str&.length&.positive?
|
382
|
+
puts_m '+ (NSDictionary<NSString *, id> *)modelCustomPropertyMapper {'
|
383
|
+
puts_m " return @{#{property_mapper_str}};"
|
384
|
+
puts_m '}'
|
385
|
+
end
|
368
386
|
puts_m "@end\n"
|
369
387
|
puts "\n\n"
|
370
388
|
end
|
@@ -372,6 +390,7 @@ module Lhj
|
|
372
390
|
|
373
391
|
def print_model(m)
|
374
392
|
key = m[:key]
|
393
|
+
key = property_mapper[key] if property_mapper.keys.include?(key)
|
375
394
|
type_name = m[:type_name]
|
376
395
|
type = m[:type]
|
377
396
|
des = m[:description] || ''
|
@@ -491,6 +510,37 @@ module Lhj
|
|
491
510
|
end
|
492
511
|
|
493
512
|
end
|
513
|
+
|
514
|
+
def print_mock_request_data(req_models)
|
515
|
+
puts "\n<===============打印Mock Data-Begin=====================>\n".green
|
516
|
+
req_models.each do |model|
|
517
|
+
model_name = model[:name] || ''
|
518
|
+
model_properties = model[:properties]
|
519
|
+
puts "#{model_name} *mock = [[#{model_name} alloc] init];"
|
520
|
+
model_properties.each do |m|
|
521
|
+
puts "/// #{m[:description]}"
|
522
|
+
type = m[:type]
|
523
|
+
case type
|
524
|
+
when 'integer'
|
525
|
+
puts "mock.#{m[:key]} = 0;"
|
526
|
+
when 'number'
|
527
|
+
puts "mock.#{m[:key]} = 0;"
|
528
|
+
when 'float'
|
529
|
+
puts "mock.#{m[:key]} = 0;"
|
530
|
+
when 'double'
|
531
|
+
puts "mock.#{m[:key]} = 0;"
|
532
|
+
when 'object'
|
533
|
+
puts "mock.#{m[:key]} = @{};"
|
534
|
+
when 'array'
|
535
|
+
puts "mock.#{m[:key]} = @[];"
|
536
|
+
else
|
537
|
+
puts "mock.#{m[:key]} = @\"\";"
|
538
|
+
end
|
539
|
+
end
|
540
|
+
puts "\n\n"
|
541
|
+
end
|
542
|
+
puts "\n<===============打印Mock Data-End=====================>\n".green
|
543
|
+
end
|
494
544
|
end
|
495
545
|
end
|
496
546
|
end
|
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.80
|
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-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: xcodeproj
|