lhj-tools 0.1.77 → 0.1.80

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 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