imperituroard 1.0.2 → 1.0.8

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
  SHA1:
3
- metadata.gz: e940fef724694620f92446e776b76f186aefb9f2
4
- data.tar.gz: 7684c9da421ec5e068e1992aa69d9908d8617398
3
+ metadata.gz: 5e7e99efd1a73f476d513d802842f3f0433cd5be
4
+ data.tar.gz: 760abd30d5d6ea6419c0f4195c08b9dca3d73537
5
5
  SHA512:
6
- metadata.gz: 192b9dc5e4d12006aa68c10cd50455edffb5c6d0ed0452022437653c7780c506e40a99bf2a084c1ce264fd4f5214e8511e37f4e8c32e505a8b54638be9422bab
7
- data.tar.gz: 65d41e4c02a8f54585dd6652e9637e60b0b60204788d7e0bcfd50ed7632ee3c9959dc7f50a26745189a11cf8104f1859843d67cedb0ed47602df6463a3d8b559
6
+ metadata.gz: 6f8d0903a392cf44f300612e621ea34647cf5158c67dbd2f0fa75c7470e867e48a3d94b0676f666ed50ea6e9b40d6702467ac9a05ea9737831fe9cf024e8903f
7
+ data.tar.gz: 24741e66dc260aaef273175b302f840a89b4ffb7b25395e73bc1d087661f89cd54130e7c49076d4572c782a4a574adfff19c495f099ce1ac044c004d435c78dd
@@ -0,0 +1,21 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="false" name="version" type="RubyRunConfigurationType" factoryName="Ruby">
3
+ <module name="imperituroard" />
4
+ <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
5
+ <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/lib/imperituroard" />
6
+ <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
7
+ <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
8
+ <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
9
+ <envs />
10
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
11
+ <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
12
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
13
+ <COVERAGE_PATTERN ENABLED="true">
14
+ <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
15
+ </COVERAGE_PATTERN>
16
+ </EXTENSION>
17
+ <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/lib/imperituroard/version.rb" />
18
+ <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
19
+ <method />
20
+ </configuration>
21
+ </component>
@@ -33,6 +33,7 @@ require 'net/http'
33
33
  require 'uri'
34
34
 
35
35
  module Imperituroard
36
+
36
37
  class Error < StandardError;
37
38
  end
38
39
 
@@ -42,6 +43,7 @@ module Imperituroard
42
43
  def hhh(jjj)
43
44
  p jjj
44
45
  end
46
+
45
47
  # Your code goes here...
46
48
  end
47
49
 
@@ -239,6 +241,11 @@ class Iot
239
241
  iot_connector.get_available_types_2(login, real_ip, remote_ip)
240
242
  end
241
243
 
244
+ #9-1 get available types for login and profile
245
+ def get_available_types2(login, profile, real_ip, remote_ip)
246
+ iot_connector.get_available_types2_2(login, profile, real_ip, remote_ip)
247
+ end
248
+
242
249
  #10 get info for device type
243
250
  def get_info_data_type(type, real_ip, remote_ip)
244
251
  iot_connector.get_info_data_type_2(type, real_ip, remote_ip)
@@ -115,10 +115,9 @@ class IotFunctions_2
115
115
  end
116
116
  end
117
117
 
118
-
119
118
  begin
120
119
  added_on_iot_platf = []
121
- if for_insert!=[]
120
+ if for_insert != []
122
121
  ##Logic for IOT Platform connection###
123
122
 
124
123
 
@@ -141,7 +140,9 @@ class IotFunctions_2
141
140
 
142
141
  #get {"model"=>"BGT_PPMC", "ManufacturerID"=>"unknown", "ManufacturerNAME"=>"unknown", "device_type"=>"unknown"}
143
142
  #from database
144
- model_data = mongo_client.get_device_type_info_by_model(aaa["device_type"])
143
+ model_data = mongo_client.get_device_type_info_universal(aaa["device_type"])
144
+ p model_data
145
+ p "model_data"
145
146
  resss = hua_aceanconnect_connector.add_new_device_on_huawei(credentials[:body][:app_id],
146
147
  credentials[:body][:secret],
147
148
  aaa["imei"],
@@ -154,7 +155,6 @@ class IotFunctions_2
154
155
  model_data[:body]["model"]
155
156
  )
156
157
  if resss[:code]=="200"
157
-
158
158
  if resss[:body].key?("error_code") && resss[:body]["error_code"] != 200
159
159
  not_processed_list.append({:imei => aaa["imei"], :error => resss})
160
160
  else
@@ -163,15 +163,12 @@ class IotFunctions_2
163
163
  s1[:created] = DateTime.now
164
164
  added_on_iot_platf.append(s1)
165
165
  end
166
-
167
166
  else
168
167
  not_processed_list.append({:imei => aaa["imei"], :error => resss})
169
168
  end
170
169
  rescue
171
170
  not_processed_list.append({:imei => aaa["imei"], :error => "Unknown error with insertion imei on IOT platform"})
172
171
  end
173
-
174
-
175
172
  #########end iot platform logic#######
176
173
 
177
174
  else
@@ -187,16 +184,12 @@ class IotFunctions_2
187
184
  else
188
185
  resp_out = {:code => 202, :result => "Empty list. Nothing for insertion", :body => {:imei_processed => added_on_iot_platf, :error_list => not_processed_list}}
189
186
  end
190
-
191
-
192
187
  else
193
188
  resp_out = {:code => 202, :result => "Nothing for insertion", :body => {:imei_processed => added_on_iot_platf, :error_list => not_processed_list}}
194
-
195
189
  end
196
190
  rescue
197
191
  resp_out = {:code => 505, :result => "Error with database communication"}
198
192
  end
199
-
200
193
  else
201
194
  resp_out = {:code => 509, :result => "Input data invalid"}
202
195
  end
@@ -206,9 +199,7 @@ class IotFunctions_2
206
199
  end
207
200
  thr1.join
208
201
 
209
-
210
202
  resp_out[:body][:tosoapgw] = internal_func.iot_create_dev_soapgw_answer(input_json, resp_out)
211
-
212
203
  mongo_client.audit_logger("add_device_to_profile", remote_ip, input_json, resp_out, real_ip)
213
204
  resp_out
214
205
  end
@@ -228,16 +219,16 @@ class IotFunctions_2
228
219
  resp_out = {}
229
220
  begin
230
221
  thr2 = Thread.new do
231
- if add_functions_connector.check_input_2(login, imei_list)[:code]==200
222
+ if add_functions_connector.check_input_2(login, imei_list)[:code] == 200
232
223
 
233
224
  for t in imei_list
234
225
  prof_name1 = mongo_client.get_profile_name_from_imei(t)
235
- if prof_name1[:code]==200
226
+ if prof_name1[:code] == 200
236
227
  begin
237
228
  permiss1 = mongo_client.check_login_profile_permiss(login, prof_name1[:body]["profile"])
238
229
  p "permiss1"
239
230
  p permiss1
240
- if permiss1[:code]==200
231
+ if permiss1[:code] == 200
241
232
  ime_list_approved.append(t)
242
233
  else
243
234
  ime_list_notapproved.append({:imei => t, :error => permiss1})
@@ -467,12 +458,12 @@ class IotFunctions_2
467
458
  begin
468
459
  thr4 = Thread.new do
469
460
 
470
- if add_functions_connector.check_input_4(login, imei)[:code]==200
461
+ if add_functions_connector.check_input_4(login, imei)[:code] == 200
471
462
 
472
463
  prof_name = mongo_client.get_profile_name_from_imei(imei)
473
- if prof_name[:code]==200
464
+ if prof_name[:code] == 200
474
465
  permiss = mongo_client.check_login_profile_permiss(login, prof_name[:body]["profile"])
475
- if permiss[:code]==200
466
+ if permiss[:code] == 200
476
467
 
477
468
  ##Logic for IOT Platform connection###
478
469
 
@@ -486,17 +477,17 @@ class IotFunctions_2
486
477
 
487
478
  resp = {}
488
479
 
489
- if credentials[:code]==200
480
+ if credentials[:code] == 200
490
481
 
491
482
  imei_data = mongo_client.get_imei_info_from_db([imei])
492
- if imei_data[:body]!=[]
483
+ if imei_data[:body] != []
493
484
  ans = {}
494
485
  if imei_data[:body][0]["huadata"]["body"]["deviceId"] != nil
495
486
  ans = hua_aceanconnect_connector.remove_one_device_from_iot(credentials[:body][:app_id], credentials[:body][:secret], imei_data[:body][0]["huadata"]["body"]["deviceId"])
496
487
  else
497
488
  ans = {:code => "204", :result => "Not processed by iot platform. deviceId not found in mongoDB"}
498
489
  end
499
- if ans[:code]=="204" or ans[:code]=="200"
490
+ if ans[:code] == "204" or ans[:code] == "200"
500
491
  resp = mongo_client.device_remove_single_mongo(imei)
501
492
  else
502
493
  resp = {:code => 500, :result => "Unknown IOT platform error", :body => ans}
@@ -580,10 +571,8 @@ class IotFunctions_2
580
571
  imei_data = mongo_client.get_imei_info_from_db([p[:imei]])
581
572
  if imei_data[:body]!=[]
582
573
  ans = hua_aceanconnect_connector.modify_location_iot(credentials[:body][:app_id], credentials[:body][:secret], imei_data[:body][0]["huadata"]["body"]["deviceId"], p[:address])
583
-
584
574
  internal_func.printer_texter({:function => "device_add_address Step2", :ans => ans, :descrition => "answer from hua IOT", :input => {:did => imei_data[:body][0]["huadata"]["body"]["deviceId"], :appid => credentials[:body][:app_id], :secret => credentials[:body][:secret], :address => p[:address]}}, "debug")
585
575
  end
586
-
587
576
  end
588
577
 
589
578
  #########end iot platform logic#######
@@ -658,7 +647,7 @@ class IotFunctions_2
658
647
  if attr["profile"].is_a? Integer
659
648
  p "Ok"
660
649
  else
661
- p new = mongo_client.get_profile_id_by_name(attr["profile"])
650
+ p new = mongo_client.get_profile_universal(attr["profile"])
662
651
  attr["profile"] = new["profile_id"]
663
652
  end
664
653
  end
@@ -686,9 +675,7 @@ class IotFunctions_2
686
675
  else
687
676
  resp_out = {:code => 509, :result => "Input data invalid"}
688
677
  end
689
-
690
678
  end
691
-
692
679
  rescue
693
680
  resp_out = {:code => 507, :result => "Unknown SDK error"}
694
681
  end
@@ -745,6 +732,7 @@ class IotFunctions_2
745
732
  permit_profiles = login_info[:body]["permit_profiles"]
746
733
  permit_types = login_info[:body]["permit_types"]
747
734
  data_from_mongo = mongo_client.get_profile_list_by_id(permit_profiles)
735
+ p data_from_mongo
748
736
 
749
737
  for ff in data_from_mongo
750
738
  data_processed.append({:profile_id => ff["profile_id"],
@@ -849,33 +837,47 @@ class IotFunctions_2
849
837
  data_processed = []
850
838
  data_soapgw = []
851
839
  login_info = mongo_client.get_login_inf2_select(login)
840
+ prof_data = mongo_client.get_profile_universal(profile)
852
841
  if login_info[:code]==200
853
842
 
854
843
  permit_profiles = login_info[:body]["permit_profiles"]
855
844
  permit_types = login_info[:body]["permit_types"]
845
+ perm_tp_prof = prof_data["permit_types"]
846
+
847
+ if permit_profiles.include?(prof_data["profile_id"])
848
+ res_types_permitted = internal_func.compare_dict(permit_types, perm_tp_prof)
849
+ data_from_mongo = mongo_client.get_type_list_by_id(res_types_permitted)
850
+
851
+ for ff in data_from_mongo
852
+ data_processed.append({:type_id => ff["type_id"],
853
+ :description => ff["description"],
854
+ :note => ff["note"],
855
+ :form => ff["form"],
856
+ :ManufacturerID => ff["ManufacturerID"],
857
+ :ManufacturerNAME => ff["ManufacturerNAME"],
858
+ :device_type => ff["device_type"],
859
+ :model => ff["model"],
860
+ :info => ff["info"]
861
+ })
862
+ data_soapgw.append({:name => ff["model"], :form => ff["form"], :description => ff["description"], :type_id => ff["type_id"]})
863
+ end
856
864
 
857
- data_from_mongo = mongo_client.get_type_list_by_id(permit_types)
865
+ tosoapgw = {:code => 200,
866
+ :result => "Request completed successfully",
867
+ :types => data_soapgw
868
+ }
858
869
 
859
- for ff in data_from_mongo
860
- data_processed.append({:type_id => ff["type_id"],
861
- :description => ff["description"],
862
- :note => ff["note"],
863
- :form => ff["form"],
864
- :ManufacturerID => ff["ManufacturerID"],
865
- :ManufacturerNAME => ff["ManufacturerNAME"],
866
- :device_type => ff["device_type"],
867
- :model => ff["model"],
868
- :info => ff["info"]
869
- })
870
- data_soapgw.append({:name => ff["model"], :form => ff["form"], :description => ff["description"], :type_id => ff["type_id"]})
870
+ resp_out = {:code => 200, :result => "Request completed successfully", :body => {:data => data_processed, :tosoapgw => tosoapgw}}
871
+
872
+ else
873
+ tosoapgw = {:code => 700,
874
+ :result => "Profile not permitted",
875
+ :types => data_soapgw
876
+ }
877
+ resp_out = {:code => 700, :result => "Profile not permitted", :body => {:tosoapgw => tosoapgw}}
871
878
  end
872
879
 
873
- tosoapgw = {:code => 200,
874
- :result => "Request completed successfully",
875
- :types => data_soapgw
876
- }
877
880
 
878
- resp_out = {:code => 200, :result => "Request completed successfully", :body => {:data => data_processed, :tosoapgw => tosoapgw}}
879
881
  else
880
882
  tosoapgw = {:code => login_info[:code],
881
883
  :result => login_info[:result],
@@ -939,6 +941,8 @@ class IotFunctions_2
939
941
  mon_answer = mongo_client.get_profile_name_by_id(profile)
940
942
  end
941
943
 
944
+ p mon_answer
945
+
942
946
  if mon_answer != {} && mon_answer != []
943
947
  output_answ = {:code => 200, :result => "Request completed successfully", :body => {:data => {:info => mon_answer["info"],
944
948
  :profile => mon_answer["profile"],
@@ -952,7 +956,6 @@ class IotFunctions_2
952
956
  end
953
957
  mongo_client.audit_logger("get_info_data_profile_2", remote_ip, input_params, output_answ, real_ip)
954
958
  output_answ
955
-
956
959
  end
957
960
 
958
961
 
@@ -971,138 +974,164 @@ class IotFunctions_2
971
974
  inp_login = soapgw_params["autorization"]["login"]
972
975
  inp_dev_list = soapgw_params["datalist"]
973
976
 
974
- inp_dev_list.each do |curr_dev|
975
- begin
976
- if curr_dev["imei"] != [] && curr_dev["imei"] != nil && curr_dev["imei"] != ""
977
- list_checked = mongo_client.check_imei_exists([curr_dev["imei"].to_i])
978
- if list_checked[:code] == 200 && list_checked[:body][:exists] != [] && list_checked[:body][:not_exists] == []
979
-
980
- #step1 checking permission for writing for imei list
981
- prof_name1 = mongo_client.get_profile_name_from_imei(curr_dev["imei"].to_i)
982
- if prof_name1[:code] == 200
983
- prof_new_id = mongo_client.get_profile_universal(curr_dev["new_profile"])["profile_id"]
984
-
985
- get_login_info = mongo_client.check_login_prof_perm_id_one(inp_login, prof_name1[:body]["profile_id"])
986
- if get_login_info[:code] == 200
987
- get_login_info_new = mongo_client.check_login_prof_perm_id_one(inp_login, prof_new_id)
988
- if get_login_info_new[:code] == 200
989
-
990
- cur_comp1 = mongo_client.compare_profiles(prof_name1[:body]["profile_id"], prof_new_id)
991
- cur_comp2 = mongo_client.compare_device_types(prof_name1[:imei_info][:body][0]["device_type"], curr_dev["new_type"])
992
-
993
- p cur_comp1
994
- p cur_comp2
995
- if cur_comp1[:is_the_same] && cur_comp2[:is_the_same]
996
- #the same. Nothing to do
997
- processed_list.append(curr_dev)
998
- ########
999
- else
1000
-
1001
- credentials_old = mongo_client.get_iot_oceanconn_credent_2(prof_name1[:body]["profile"])
1002
- credentials_new = mongo_client.get_iot_oceanconn_credent_2(prof_new_id)
1003
- #########
1004
- if credentials_old[:code] == 200 && credentials_new[:code] == 200
1005
- imei_data = mongo_client.get_imei_info_from_db([curr_dev["imei"].to_i])
1006
- if imei_data[:body] != []
1007
- ans = {}
1008
- if imei_data[:body][0]["huadata"]["body"]["deviceId"] != nil
1009
-
1010
- model_data = mongo_client.get_device_type_info_universal(curr_dev["new_type"])
1011
-
1012
- #####all checks completed. then process data#####
1013
- ans_old = hua_aceanconnect_connector.remove_one_device_from_iot(credentials_old[:body][:app_id], credentials_old[:body][:secret], imei_data[:body][0]["huadata"]["body"]["deviceId"])
1014
-
1015
- if ans_old[:code].to_i == 200 || ans_old[:code].to_i == 202 || ans_old[:code].to_i == 204
1016
- begin
1017
- resss = hua_aceanconnect_connector.add_new_device_on_huawei(credentials_new[:body][:app_id],
1018
- credentials_new[:body][:secret],
1019
- curr_dev["imei"].to_i,
1020
- curr_dev["imei"].to_s,
1021
- prof_name1[:body]["description"],
1022
- model_data[:body]["device_type"],
1023
- curr_dev["new_profile"],
1024
- model_data[:body]["ManufacturerID"],
1025
- model_data[:body]["ManufacturerNAME"],
1026
- model_data[:body]["model"]
1027
- )
1028
-
1029
- if resss[:code]=="200"
1030
-
1031
- if resss[:body].key?("error_code") && resss[:body]["error_code"] != 200
1032
- not_processed_list.append({:imei => curr_dev["imei"], :error => resss})
1033
- else
1034
- new_id_iot = resss[:body]
1035
- new_profile_id = prof_new_id
1036
- now_date = DateTime.now
1037
- #finished success. update database
1038
- attribute = {profile: new_profile_id, device_type: model_data[:body]["model"], huadata: {body: new_id_iot}, updated: now_date}
977
+ thr13set = Thread.new do
978
+ inp_dev_list.each do |curr_dev|
979
+ begin
980
+ if curr_dev["imei"] != [] && curr_dev["imei"] != nil && curr_dev["imei"] != ""
981
+ list_checked = mongo_client.check_imei_exists([curr_dev["imei"].to_i])
982
+ if list_checked[:code] == 200 && list_checked[:body][:exists] != [] && list_checked[:body][:not_exists] == []
983
+
984
+ #step1 checking permission for writing for imei list
985
+ prof_name1 = mongo_client.get_profile_name_from_imei(curr_dev["imei"].to_i)
986
+ p prof_name1
987
+ p "prof_name1"
988
+ if prof_name1[:code] == 200
989
+
990
+ if curr_dev["new_profile"] != "nil" && curr_dev["new_profile"] != "null" && curr_dev["new_profile"] != "empty" && curr_dev["new_profile"] != "nill"
991
+ prof_new_id = mongo_client.get_profile_universal(curr_dev["new_profile"])["profile_id"]
992
+ else
993
+ prof_new_id = prof_name1[:body]["profile_id"]
994
+ end
1039
995
 
1040
- answ_mongo = mongo_client.modify_attr_mongo_universal(curr_dev["imei"].to_i, attribute)
996
+ if curr_dev["new_type"] != "nil" && curr_dev["new_type"] != "null" && curr_dev["new_type"] != "empty" && curr_dev["new_type"] != "nill"
997
+ type_new_pr = curr_dev["new_type"]
998
+ else
999
+ type_new_pr = prof_name1[:imei_info][:body][0]["device_type"]
1000
+ end
1041
1001
 
1042
- if answ_mongo[:code] != 200
1043
- not_processed_list.append({:imei => curr_dev["imei"], :error => "Critical error. Mongo not updated", :mongo_err => answ_mongo})
1002
+ p type_new_pr
1003
+ p prof_new_id
1004
+ p "st111111"
1005
+
1006
+ get_login_info = mongo_client.check_login_prof_perm_id_one(inp_login, prof_name1[:body]["profile_id"])
1007
+ p get_login_info
1008
+ p "get_login_info"
1009
+ if get_login_info[:code] == 200
1010
+ get_login_info_new = mongo_client.check_login_prof_perm_id_one(inp_login, prof_new_id)
1011
+ p get_login_info_new
1012
+ p "get_login_info_new"
1013
+ if get_login_info_new[:code] == 200
1014
+ cur_comp1 = mongo_client.compare_profiles(prof_name1[:body]["profile_id"], prof_new_id)
1015
+ p cur_comp1
1016
+ p "cur_comp1"
1017
+ cur_comp2 = mongo_client.compare_device_types(prof_name1[:imei_info][:body][0]["device_type"], type_new_pr)
1018
+
1019
+
1020
+ p cur_comp2
1021
+ p "cur_comp2"
1022
+
1023
+ if cur_comp1[:is_the_same] && cur_comp2[:is_the_same]
1024
+ #the same. Nothing to do
1025
+ processed_list.append(curr_dev)
1026
+ ########
1027
+ else
1028
+ credentials_old = mongo_client.get_iot_oceanconn_credent_2(prof_name1[:body]["profile"])
1029
+ credentials_new = mongo_client.get_iot_oceanconn_credent_2(prof_new_id)
1030
+ p credentials_new
1031
+ p "credentials_new"
1032
+ #########
1033
+ if credentials_old[:code] == 200 && credentials_new[:code] == 200
1034
+ imei_data = mongo_client.get_imei_info_from_db([curr_dev["imei"].to_i])
1035
+ p imei_data
1036
+ p "imei_data"
1037
+ if imei_data[:body] != []
1038
+ ans = {}
1039
+ if imei_data[:body][0]["huadata"]["body"]["deviceId"] != nil
1040
+ model_data = mongo_client.get_device_type_info_universal(type_new_pr)
1041
+ p model_data
1042
+ p "model_data"
1043
+ #####all checks completed. then process data#####
1044
+ ans_old = hua_aceanconnect_connector.remove_one_device_from_iot(credentials_old[:body][:app_id], credentials_old[:body][:secret], imei_data[:body][0]["huadata"]["body"]["deviceId"])
1045
+
1046
+
1047
+ if ans_old[:code].to_i == 200 || ans_old[:code].to_i == 202 || ans_old[:code].to_i == 204
1048
+ begin
1049
+ resss = hua_aceanconnect_connector.add_new_device_on_huawei(credentials_new[:body][:app_id],
1050
+ credentials_new[:body][:secret],
1051
+ curr_dev["imei"].to_i,
1052
+ curr_dev["imei"].to_s,
1053
+ prof_name1[:body]["description"],
1054
+ model_data[:body]["device_type"],
1055
+ curr_dev["new_profile"],
1056
+ model_data[:body]["ManufacturerID"],
1057
+ model_data[:body]["ManufacturerNAME"],
1058
+ model_data[:body]["model"]
1059
+ )
1060
+ if resss[:code] == "200"
1061
+ if resss[:body].key?("error_code") && resss[:body]["error_code"] != 200
1062
+ not_processed_list.append({:imei => curr_dev["imei"], :error => resss})
1044
1063
  else
1045
- processed_list.append(curr_dev)
1064
+ p resss
1065
+ new_id_iot = resss[:body]
1066
+ new_profile_id = prof_new_id
1067
+ now_date = DateTime.now
1068
+ #finished success. update database
1069
+ attribute = {profile: new_profile_id, device_type: model_data[:body]["model"], huadata: resss, updated: now_date}
1070
+ answ_mongo = mongo_client.modify_attr_mongo_universal(curr_dev["imei"].to_i, attribute)
1071
+ if answ_mongo[:code] != 200
1072
+ not_processed_list.append({:imei => curr_dev["imei"], :error => "Critical error. Mongo not updated", :mongo_err => answ_mongo})
1073
+ else
1074
+ processed_list.append(curr_dev)
1075
+ end
1046
1076
  end
1047
-
1048
- #added_on_iot_platf.append(s1)
1077
+ else
1078
+ not_processed_list.append({:imei => curr_dev["imei"], :error => resss})
1049
1079
  end
1050
-
1051
- else
1052
- not_processed_list.append({:imei => curr_dev["imei"], :error => resss})
1080
+ rescue
1081
+ not_processed_list.append({:imei => curr_dev["imei"], :error => "Unknown error with insertion imei on IOT platform"})
1053
1082
  end
1054
- rescue
1055
- not_processed_list.append({:imei => curr_dev["imei"], :error => "Unknown error with insertion imei on IOT platform"})
1083
+ else
1084
+ not_processed_list.append({:imei => curr_dev["imei"], :error => "Something wrong with IOT platform"})
1056
1085
  end
1086
+ else
1087
+ not_processed_list.append({:imei => curr_dev["imei"], :error => "Not processed by iot platform. deviceId not found in mongoDB"})
1057
1088
  end
1058
1089
  else
1059
- not_processed_list.append({:imei => curr_dev["imei"], :error => "Not processed by iot platform. deviceId not found in mongoDB"})
1090
+ not_processed_list.append({:imei => curr_dev["imei"], :error => "Failed to get info from database"})
1060
1091
  end
1061
1092
  else
1062
- not_processed_list.append({:imei => curr_dev["imei"], :error => "Failed to get info from database"})
1093
+ not_processed_list.append({:imei => curr_dev["imei"], :error => "Failed to get credentials from database"})
1063
1094
  end
1064
- else
1065
- not_processed_list.append({:imei => curr_dev["imei"], :error => "Failed to get credentials from database"})
1066
1095
  end
1096
+ else
1097
+ not_processed_list.append({:imei => curr_dev["imei"], :error => "New profile modification not permitted"})
1067
1098
  end
1068
1099
  else
1069
- not_processed_list.append({:imei => curr_dev["imei"], :error => "New profile modification not permitted"})
1100
+ not_processed_list.append({:imei => curr_dev["imei"], :error => "Old profile modification not permitted"})
1070
1101
  end
1071
1102
  else
1072
- not_processed_list.append({:imei => curr_dev["imei"], :error => "Old profile modification not permitted"})
1103
+ not_processed_list.append({:imei => curr_dev["imei"], :error => "Unknown current profile"})
1073
1104
  end
1074
1105
  else
1075
- not_processed_list.append({:imei => curr_dev["imei"], :error => "Unknown current profile"})
1106
+ not_processed_list.append({:imei => curr_dev["imei"], :error => "Device not exists"})
1076
1107
  end
1077
1108
  else
1078
- not_processed_list.append({:imei => curr_dev["imei"], :error => "Device not exists"})
1109
+ not_processed_list.append({:imei => curr_dev["imei"], :error => "IMEI can't be nil"})
1079
1110
  end
1080
- else
1081
- not_processed_list.append({:imei => curr_dev["imei"], :error => "IMEI can't be nil"})
1111
+ rescue
1112
+ not_processed_list.append({:imei => curr_dev["imei"], :error => "Unknown SDK error"})
1082
1113
  end
1083
- rescue
1084
- not_processed_list.append({:imei => curr_dev["imei"], :error => "Unknown SDK error"})
1085
- end
1086
1114
 
1087
- end
1115
+ end
1088
1116
 
1089
- err_li = []
1090
- if not_processed_list.length > 0
1091
- not_processed_list.each do |err_l|
1092
- err_li.append({:failedimei => err_l[:imei]})
1117
+ err_li = []
1118
+ if not_processed_list.length > 0
1119
+ not_processed_list.each do |err_l|
1120
+ err_li.append({:failedimei => err_l[:imei]})
1121
+ end
1093
1122
  end
1094
- end
1095
1123
 
1096
- if processed_list.length > 0
1097
- soap_answ = {:code=>200, :result=>"Success", :body=>{:processednum => processed_list.length, :failednum => not_processed_list.length, :deviceserr => err_li}}
1098
- else
1099
- soap_answ = {:code=>202, :result=>"Nothing done", :body=>{:processednum => 0, :failednum => not_processed_list.length, :deviceserr => err_li}}
1124
+ if processed_list.length > 0
1125
+ answ_to_soapgw = {:code => 200, :result => "Success", :body => {:processednum => processed_list.length, :failednum => not_processed_list.length, :deviceserr => err_li}}
1126
+ else
1127
+ answ_to_soapgw = {:code => 202, :result => "Nothing done", :body => {:processednum => 0, :failednum => not_processed_list.length, :deviceserr => err_li}}
1128
+ end
1100
1129
  end
1130
+ thr13set.join
1101
1131
 
1102
- output_answ = {:code => 200, :result => "Success", :body => {:to_soap_gw => soap_answ, :not_processed_list => not_processed_list, :processed_list => processed_list}}
1132
+ output_answ = {:code => 200, :result => "Success", :body => {:to_soap_gw => answ_to_soapgw, :not_processed_list => not_processed_list, :processed_list => processed_list}}
1103
1133
  mongo_client.audit_logger("set_data_replace_2", remote_ip, input_params, output_answ, real_ip)
1104
1134
  output_answ
1105
-
1106
1135
  end
1107
1136
 
1108
1137
 
@@ -54,6 +54,9 @@ class HuaIot
54
54
  def get_token(app_id, secret)
55
55
  internal_func.printer_texter("get_token: start. Step1, iput: app_id: #{app_id.to_s}, secret: #{secret.to_s}", "debug")
56
56
  out_resp = {}
57
+ fff = {}
58
+ data = {}
59
+ url_string = ""
57
60
  begin
58
61
  path = "/iocm/app/sec/v1.1.0/login"
59
62
  url_string = "https://" + platformip + ":" + platformport + path
@@ -73,15 +76,19 @@ class HuaIot
73
76
  request.content_type = 'application/x-www-form-urlencoded'
74
77
  request.body = URI.encode_www_form(data)
75
78
  res = https.request(request)
79
+ p res.code
80
+ p res.message
81
+ p res.body.to_s
76
82
  out_resp = {:code => res.code, :message => res.message, :body => JSON.parse(res.body.to_s)}
77
83
  fff = {:func => "get_token",
78
84
  :iot_fun => "",
79
- :req_header => {:content_type => 'application/x-www-form-urlencoded'
85
+ :req_header => {:content_type => 'application/x-www-form-urlencoded',
86
+ :platform => "Huawei oceanconnect"
80
87
  }}
81
- client_iot_mongo.audit_iot_logger(fff, url_string, data, out_resp)
82
88
  rescue
83
89
  out_resp = {:code => 500, :message => "failed get token"}
84
90
  end
91
+ client_iot_mongo.audit_iot_logger(fff, url_string, data, out_resp)
85
92
  jjj = {:procedure => "get_token", :answ => out_resp}
86
93
  internal_func.printer_texter(jjj, "debug")
87
94
  out_resp
@@ -92,6 +99,9 @@ class HuaIot
92
99
 
93
100
  internal_func.printer_texter("token_logout Step1 token: #{token}", "debug")
94
101
  out_resp = {}
102
+ fff = {}
103
+ data = {}
104
+ url_string = ""
95
105
  begin
96
106
  path = "/iocm/app/sec/v1.1.0/logout"
97
107
  url_string = "https://" + platformip + ":" + platformport + path
@@ -112,12 +122,17 @@ class HuaIot
112
122
  res = https.request(request)
113
123
  out_resp = {:code => res.code, :message => res.message, :body => JSON.parse(res.body.to_s)}
114
124
  fff = {:func => "token_logout",
115
- :iot_fun => "logout"
125
+ :iot_fun => "logout",
126
+ :platform => "Huawei oceanconnect"
116
127
  }
117
- client_iot_mongo.audit_iot_logger(fff, url_string, data, out_resp)
128
+ p res.code
129
+ p res.message
130
+ p res.body.to_s
131
+
118
132
  rescue
119
133
  out_resp = {:code => 500, :message => "failed logout token"}
120
134
  end
135
+ client_iot_mongo.audit_iot_logger(fff, url_string, data, out_resp)
121
136
  jjj = {:procedure => "token_logout", :answ => out_resp}
122
137
  internal_func.printer_texter(jjj, "debug")
123
138
  out_resp
@@ -125,6 +140,7 @@ class HuaIot
125
140
 
126
141
  #Registering a Directly Connected Device (Verification Code Mode) (V2)
127
142
  def dev_register_verif_code_mode(app_id, secret, node_id)
143
+ out_resp = {}
128
144
  token = get_token(app_id, secret)[:body]["accessToken"]
129
145
  path = "/iocm/app/reg/v1.1.0/deviceCredentials?appId=" + app_id
130
146
  url_string = "https://" + platformip + ":" + platformport + path
@@ -138,9 +154,17 @@ class HuaIot
138
154
  request.content_type = 'application/json'
139
155
  request['Authorization'] = 'Bearer ' + token
140
156
  request['app_key'] = app_id
141
- request.body = {nodeId: node_id}.to_json
157
+ data = {nodeId: node_id}
158
+ request.body = data.to_json
142
159
  res = https.request(request)
143
- {:code => res.code, :message => res.message, :body => JSON.parse(res.body.to_s)}
160
+ out_resp = {:code => res.code, :message => res.message, :body => JSON.parse(res.body.to_s)}
161
+ fff = {:func => "dev_register_verif_code_mode",
162
+ :iot_fun => "Registering a Directly Connected Device (Verification Code Mode) (V2)",
163
+ :req_header => {:content_type => 'application/json',
164
+ :platform => "Huawei oceanconnect"
165
+ }}
166
+ client_iot_mongo.audit_iot_logger(fff, url_string, data, out_resp)
167
+ out_resp
144
168
  end
145
169
 
146
170
  #2.2.4 Registering a Directly Connected Device (Password Mode) (V2)
@@ -176,7 +200,8 @@ class HuaIot
176
200
  :iot_fun => "2.2.4",
177
201
  :req_header => {:authorization => 'Bearer ' + token,
178
202
  :content_type => 'application/json',
179
- :app_key => app_id
203
+ :app_key => app_id,
204
+ :platform => "Huawei oceanconnect"
180
205
  }}
181
206
  client_iot_mongo.audit_iot_logger(fff, url_string, data_out, out_resp)
182
207
  out_resp
@@ -199,13 +224,21 @@ class HuaIot
199
224
  request.content_type = 'application/json'
200
225
  request['Authorization'] = 'Bearer ' + token
201
226
  request['app_key'] = app_id
202
- data_out = {deviceInfo: attr_list}.to_json
227
+ data = {deviceInfo: attr_list}
228
+ data_out = data.to_json
203
229
  internal_func.printer_texter({:procedure => "dev_register_passw_code_mode2", :data => {:body => data_out, :url => url_string}}, "debug")
204
230
  request.body = data_out
205
231
  res = https.request(request)
206
232
  p res.body.to_s
207
233
  out_resp = {:code => res.code, :message => res.message, :body => JSON.parse(res.body.to_s)}
208
- p out_resp
234
+ fff = {:func => "dev_reg_passw_code_mode2_2",
235
+ :iot_fun => "2.2.4",
236
+ :req_header => {:content_type => 'application/json',
237
+ :authorization => 'Bearer ' + token,
238
+ :app_key => app_id,
239
+ :platform => "Huawei oceanconnect"
240
+ }}
241
+ client_iot_mongo.audit_iot_logger(fff, url_string, data, out_resp)
209
242
  out_resp
210
243
  end
211
244
 
@@ -237,7 +270,8 @@ class HuaIot
237
270
  :iot_fun => "2.2.12",
238
271
  :req_header => {:authorization => 'Bearer ' + token,
239
272
  :content_type => 'application/json',
240
- :app_key => app_id
273
+ :app_key => app_id,
274
+ :platform => "Huawei oceanconnect"
241
275
  }}
242
276
  client_iot_mongo.audit_iot_logger(fff, url_string, "Delete", out_resp)
243
277
  rescue
@@ -274,6 +308,7 @@ class HuaIot
274
308
 
275
309
  #2.2.14 Querying Device Activation Status
276
310
  def querying_device_activ_status(app_id, secret, device_id)
311
+ output_ans = {}
277
312
  token = get_token(app_id, secret)[:body]["accessToken"]
278
313
  path = "/iocm/app/reg/v1.1.0/devices/" + device_id + "?app_Id=" + app_id
279
314
  url_string = "https://" + platformip + ":" + platformport + path
@@ -288,12 +323,22 @@ class HuaIot
288
323
  request['Authorization'] = 'Bearer ' + token
289
324
  request['app_key'] = app_id
290
325
  res = https.request(request)
291
- {:code => res.code, :message => res.message, :body => JSON.parse(res.body.to_s)}
326
+ output_ans = {:code => res.code, :message => res.message, :body => JSON.parse(res.body.to_s)}
327
+ fff = {:func => "querying_device_activ_status",
328
+ :iot_fun => "2.2.14",
329
+ :req_header => {:content_type => 'application/json',
330
+ :authorization => 'Bearer ' + token,
331
+ :app_key => app_id,
332
+ :platform => "Huawei oceanconnect"
333
+ }}
334
+ client_iot_mongo.audit_iot_logger(fff, url_string, data, output_ans)
335
+ output_ans
292
336
  end
293
337
 
294
338
 
295
339
  #2.9.1 Querying Information About a Device
296
340
  def querying_device_info(app_id, secret, device_id)
341
+ out_resp = {}
297
342
  token = get_token(app_id, secret)[:body]["accessToken"]
298
343
  path = "/iocm/app/dm/v1.1.0/devices/" + device_id + "?app_Id=" + app_id
299
344
  url_string = "https://" + platformip + ":" + platformport + path
@@ -308,7 +353,16 @@ class HuaIot
308
353
  request['Authorization'] = 'Bearer ' + token
309
354
  request['app_key'] = app_id
310
355
  res = https.request(request)
311
- {:code => res.code, :message => res.message, :body => JSON.parse(res.body.to_s)}
356
+ out_resp = {:code => res.code, :message => res.message, :body => JSON.parse(res.body.to_s)}
357
+ fff = {:func => "querying_device_info",
358
+ :iot_fun => "2.9.1",
359
+ :req_header => {:authorization => 'Bearer ' + token,
360
+ :content_type => 'application/json',
361
+ :app_key => app_id,
362
+ :platform => "Huawei oceanconnect"
363
+ }}
364
+ client_iot_mongo.audit_iot_logger(fff, url_string, "Get", out_resp)
365
+ out_resp
312
366
  end
313
367
 
314
368
  #2.9.6 Querying Directly Connected Devices and Their Mounted Devices in Batches
@@ -335,7 +389,8 @@ class HuaIot
335
389
  :iot_fun => "2.9.6",
336
390
  :req_header => {:authorization => 'Bearer ' + token,
337
391
  :content_type => 'application/json',
338
- :app_key => app_id
392
+ :app_key => app_id,
393
+ :platform => "Huawei oceanconnect"
339
394
  }}
340
395
  client_iot_mongo.audit_iot_logger(fff, url_string, req_body, output_str)
341
396
  output_str
@@ -344,6 +399,7 @@ class HuaIot
344
399
 
345
400
  #2.9.19 Querying the Complete Device Type List of All Device Capabilities
346
401
  def querying_device_type_list(app_id, secret)
402
+ output_ans = {}
347
403
  token = get_token(app_id, secret)[:body]["accessToken"]
348
404
  path = "/iocm/app/profile/v1.1.0/allDeviceTypes"
349
405
  url_string = "https://" + platformip + ":" + platformport + path
@@ -358,13 +414,24 @@ class HuaIot
358
414
  request['Authorization'] = 'Bearer ' + token
359
415
  request['app_key'] = app_id
360
416
  res = https.request(request)
361
- {:code => res.code, :message => res.message, :body => JSON.parse(res.body.to_s)}
417
+ output_ans = {:code => res.code, :message => res.message, :body => JSON.parse(res.body.to_s)}
418
+
419
+ fff = {:func => "querying_device_type_list",
420
+ :iot_fun => "2.9.19",
421
+ :req_header => {:content_type => 'application/json',
422
+ :authorization => 'Bearer ' + token,
423
+ :app_key => app_id,
424
+ :platform => "Huawei oceanconnect"
425
+ }}
426
+ client_iot_mongo.audit_iot_logger(fff, url_string, "Get", output_ans)
427
+ output_ans
428
+
362
429
  end
363
430
 
364
431
 
365
432
  #2.9.6 Querying Directly Connected Devices and Their Mounted Devices in Batches
366
433
  def quer_dev_direct_conn_batches(app_id, dev_list, token)
367
-
434
+ output_ans = {}
368
435
  path = "/iocm/app/dm/v1.1.0/queryDevicesByIds"
369
436
  url_string = "https://" + platformip + ":" + platformport + path
370
437
  p url_string
@@ -378,10 +445,19 @@ class HuaIot
378
445
  request.content_type = 'application/json'
379
446
  request['Authorization'] = 'Bearer ' + token
380
447
  request['app_key'] = app_id
381
- request.body = {deviceIds: dev_list}.to_json
448
+ data = {deviceIds: dev_list}
449
+ request.body = data.to_json
382
450
  res = https.request(request)
383
- {:code => res.code, :message => res.message, :body => JSON.parse(res.body.to_s)}
384
-
451
+ output_ans = {:code => res.code, :message => res.message, :body => JSON.parse(res.body.to_s)}
452
+ fff = {:func => "quer_dev_direct_conn_batches",
453
+ :iot_fun => "2.9.6",
454
+ :req_header => {:content_type => 'application/json',
455
+ :authorization => 'Bearer ' + token,
456
+ :app_key => app_id,
457
+ :platform => "Huawei oceanconnect"
458
+ }}
459
+ client_iot_mongo.audit_iot_logger(fff, url_string, data, output_ans)
460
+ output_ans
385
461
  end
386
462
 
387
463
 
@@ -417,7 +493,8 @@ class HuaIot
417
493
  :iot_fun => "2.2.11",
418
494
  :req_header => {:authorization => 'Bearer ' + token,
419
495
  :content_type => 'application/json',
420
- :app_key => app_id
496
+ :app_key => app_id,
497
+ :platform => "Huawei oceanconnect"
421
498
  }}
422
499
  client_iot_mongo.audit_iot_logger(fff, url_string, req_b, out_resp)
423
500
  rescue
@@ -155,6 +155,14 @@ class InternalFunc
155
155
  answer
156
156
  end
157
157
 
158
+ #compare dictionaries
159
+ def compare_dict(dict1, dict2)
160
+ v1 = dict1 - dict2
161
+ v2 = dict2 - dict1
162
+ v3 = dict2 + dict1
163
+ v3.uniq - v2.uniq - v1.uniq
164
+ end
165
+
158
166
  def test()
159
167
  p "eeeeeeeeeeeeeeeeeeeeeeee"
160
168
  end
@@ -194,7 +194,7 @@ class MongoIot
194
194
  begin
195
195
  result_ps = []
196
196
  collection = client[:device_profiles]
197
- collection.find({"profile_id" => profile_id}).each {|row|
197
+ collection.find({"profile_id" => profile_id.to_i}).each {|row|
198
198
  result_ps.append(row)
199
199
  }
200
200
  result_ps[0]
@@ -238,7 +238,7 @@ class MongoIot
238
238
  begin
239
239
  result_ps = []
240
240
  collection = client[:device_types]
241
- collection.find({"type_id" => type_id}).each {|row|
241
+ collection.find({"type_id" => type_id.to_i}).each {|row|
242
242
  result_ps.append(row)
243
243
  }
244
244
  result_ps[0]
@@ -260,19 +260,20 @@ class MongoIot
260
260
  end
261
261
  end
262
262
 
263
+ #universal procedure. might be profile id or name
263
264
  def check_login_profile_permiss(login, profile)
264
265
  out_resp = {}
265
266
  get_login_info = get_profiles_by_login(login)
266
- if get_login_info[:code]==200
267
- dst_profile = get_profile_id_by_name(profile)
268
- access=1
269
- if get_login_info[:body]!=[]
270
- if dst_profile!=[]
267
+ if get_login_info[:code] == 200
268
+ dst_profile = get_profile_universal(profile)
269
+ access = 1
270
+ if get_login_info[:body] != []
271
+ if dst_profile != []
271
272
  for j in get_login_info[:body]
272
- if j["profile_id"].to_i==dst_profile["profile_id"].to_i
273
- access=0
273
+ if j["profile_id"].to_i == dst_profile["profile_id"].to_i
274
+ access = 0
274
275
  end
275
- if access==0
276
+ if access == 0
276
277
  out_resp = {:code => 200, :result => "check_login_profile_permiss: Permission granted"}
277
278
  else
278
279
  out_resp = {:code => 400, :result => "check_login_profile_permiss: Access denied. This incident will be reported."}
@@ -292,13 +293,15 @@ class MongoIot
292
293
  end
293
294
 
294
295
 
296
+ #universal procedure. You can use profile id or profile name as profile_id (string or int)
295
297
  def check_login_prof_perm_id_one(login, profile_id)
296
298
  out_resp = {}
297
299
  get_login_info = get_profiles_by_login(login)
300
+ profile_data = self.get_profile_universal(profile_id)
298
301
  access=1
299
302
  if get_login_info[:body]!=[]
300
303
  for j in get_login_info[:body]
301
- if j["profile_id"].to_i==profile_id.to_i
304
+ if j["profile_id"].to_i==profile_data["profile_id"]
302
305
  access=0
303
306
  end
304
307
  if access==0
@@ -340,7 +343,7 @@ class MongoIot
340
343
  description: "test imei",
341
344
  note: "second description",
342
345
  profile: 0,
343
- type: 0,
346
+ device_type: 0,
344
347
  address: "unknown"
345
348
  }
346
349
  result = collection.insert_one(l)
@@ -363,7 +366,7 @@ class MongoIot
363
366
  description: "test imei",
364
367
  note: "second description",
365
368
  profile: 0,
366
- type: 0,
369
+ device_type: 0,
367
370
  address: "unknown"
368
371
  }
369
372
  result = collection.insert_one(l)
@@ -501,6 +504,7 @@ class MongoIot
501
504
 
502
505
 
503
506
  #function for get iot platform credentials from profile
507
+ #universal procedure. use profile or profile id
504
508
  def get_iot_oceanconn_credent_2(profile)
505
509
  out_resp = {}
506
510
  begin
@@ -536,7 +540,7 @@ class MongoIot
536
540
  result_ps.append(row)
537
541
  }
538
542
  dattaa = result_ps[0]
539
- if dattaa!=nil
543
+ if dattaa != nil
540
544
  out_resp = {:code => 200, :result => "get_device_type_info_by_model: Request completed successfully", :body => dattaa}
541
545
  else
542
546
  out_resp = {:code => 404, :result => "get_device_type_info_by_model: Device info not found", :body => {"model" => device_model, "ManufacturerID" => "unknown", "ManufacturerNAME" => "unknown", "device_type" => "unknown"}}
@@ -548,6 +552,7 @@ class MongoIot
548
552
  out_resp
549
553
  end
550
554
 
555
+ #universal procedure. Use id or name
551
556
  def get_device_type_info_universal(device_model)
552
557
  out_resp = {}
553
558
  begin
@@ -561,9 +566,9 @@ class MongoIot
561
566
  }
562
567
  dattaa = result_ps[0]
563
568
  if dattaa!=nil
564
- out_resp = {:code => 200, :result => "get_device_type_info_by_model: Request completed successfully", :body => dattaa}
569
+ out_resp = {:code => 200, :result => "get_device_type_info_universal: Request completed successfully", :body => dattaa}
565
570
  else
566
- out_resp = {:code => 404, :result => "get_device_type_info_by_model: Device info not found", :body => {"model" => device_model, "ManufacturerID" => "unknown", "ManufacturerNAME" => "unknown", "device_type" => "unknown"}}
571
+ out_resp = {:code => 404, :result => "get_device_type_info_universal: Device info not found", :body => {"model" => device_model, "ManufacturerID" => "unknown", "ManufacturerNAME" => "unknown", "device_type" => "unknown"}}
567
572
  end
568
573
  else
569
574
  result_ps2 = []
@@ -573,9 +578,9 @@ class MongoIot
573
578
  }
574
579
  dattaa = result_ps2[0]
575
580
  if dattaa!=nil
576
- out_resp = {:code => 200, :result => "get_device_type_info_by_model: Request completed successfully", :body => dattaa}
581
+ out_resp = {:code => 200, :result => "get_device_type_info_universal: Request completed successfully", :body => dattaa}
577
582
  else
578
- out_resp = {:code => 404, :result => "get_device_type_info_by_model: Device info not found", :body => {"model" => device_model, "ManufacturerID" => "unknown", "ManufacturerNAME" => "unknown", "device_type" => "unknown"}}
583
+ out_resp = {:code => 404, :result => "get_device_type_info_universal: Device info not found", :body => {"model" => device_model, "ManufacturerID" => "unknown", "ManufacturerNAME" => "unknown", "device_type" => "unknown"}}
579
584
  end
580
585
  end
581
586
 
@@ -632,6 +637,9 @@ class MongoIot
632
637
  out_answ = {}
633
638
  tp1 = internal_func.if_digit_or_string(type1)
634
639
  tp2 = internal_func.if_digit_or_string(type2)
640
+ p tp1
641
+ p tp2
642
+ p "tp"
635
643
 
636
644
  if tp1[:body][:string] == tp2[:body][:string] && tp1[:body][:string] == false
637
645
  if type1.to_i == type2.to_i
@@ -648,6 +656,7 @@ class MongoIot
648
656
  else
649
657
  tp1_data = {}
650
658
  tp2_data = {}
659
+ p "gggggggg"
651
660
  if tp1[:body][:string]
652
661
  tp1_data = self.get_type_by_name(type1)
653
662
  else
@@ -660,6 +669,11 @@ class MongoIot
660
669
  tp2_data = self.get_type_by_id(type2.to_i)
661
670
  end
662
671
 
672
+ p tp1_data
673
+ p tp2_data
674
+ p type1
675
+ p type2
676
+
663
677
  if tp1_data["type_id"] == tp2_data["type_id"]
664
678
  out_answ = {:code => 200, :result => "compare_device_types: profiles are the same", :is_the_same => true, :data_type => "different"}
665
679
  else
@@ -670,6 +684,7 @@ class MongoIot
670
684
  end
671
685
 
672
686
 
687
+ #universal procedure. put there profile name or id in string or int
673
688
  def get_profile_universal(profile)
674
689
  inn = internal_func.if_digit_or_string(profile)
675
690
  out = {}
@@ -1,3 +1,4 @@
1
1
  module Imperituroard
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.8"
3
3
  end
4
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imperituroard
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dzmitry Buynovskiy
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-08 00:00:00.000000000 Z
11
+ date: 2020-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -187,6 +187,7 @@ extra_rdoc_files: []
187
187
  files:
188
188
  - ".gitignore"
189
189
  - ".idea/runConfigurations/hua_oceanconnect_adapter.xml"
190
+ - ".idea/runConfigurations/version.xml"
190
191
  - ".ruby-gemset"
191
192
  - ".ruby-version"
192
193
  - ".travis.yml"