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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d672d1cf1227b28c98ba5103e9ee855726948df87cd020304dcfd6e8a6ceee63
4
- data.tar.gz: 2be43594360da9049569d7c5e1d2f60e68b4a837dce9d4c743f5d326dc2d0a15
3
+ metadata.gz: 1ec339600a7bccdf6e71366bf4c0d153544ddeae42cdf867d197d4320129492c
4
+ data.tar.gz: 2914782da786e0dcd1e6ecb71e0088669b15e8d7e64bb5deb9a478faa563785d
5
5
  SHA512:
6
- metadata.gz: '039225bc897b4c4173d42291bd5a008ba0e4d7804d1fe3607357d28d9b10f030cbf9fdbbb60f12734b09c1ead843ed00481fb3e3e3dc3f52d64d7031e7f91cb1'
7
- data.tar.gz: e39146285cceb19741b7bafead5d63dd422d05f0371838aef011ecf4417c12aee3041d6cd42f1317223b2a2c28ed42ac6232559c70662014c1bd59e71c7ad2aa
6
+ metadata.gz: 846675816476a4f97aeb78818d5ccb6ec1173e8654fea452f31af652b17ddcdb87650cd3192b732908a4e2993a760959e077973ce38fdb8c3b0ded745b5d29c9
7
+ data.tar.gz: e745f2ce809027cf10f461a385089de93f60e8245cb1f960eb8b519245e42a73e72103c99037bcb0a09255135b0c4eda804173d221ac26b4283ede005a31c527
@@ -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
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Lhj
4
4
  module Tools
5
- VERSION = "0.1.77"
5
+ VERSION = "0.1.80"
6
6
  end
7
7
  end
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.77
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-13 00:00:00.000000000 Z
11
+ date: 2022-12-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xcodeproj