lib/imperituroard.rb in imperituroard-0.1.9 vs lib/imperituroard.rb in imperituroard-0.2.0
- old
+ new
@@ -68,30 +68,195 @@
end
include Phpipam
end
class Iot
- attr_accessor :mongoip, :mongoport, :iotip, :iottoken, :database, :iotplatform_ip, :iotplatform_port
+ attr_accessor :mongoip, :mongoport, :iotip, :iottoken, :mongo_database, :iotplatform_ip, :iotplatform_port, :cert_path, :key_path, :mongo_client
- def initialize(mongoip, mongoport, iotip, database, iotplatform_ip, iotplatform_port)
+ def initialize(mongoip, mongoport, iotip, mongo_database, iotplatform_ip, iotplatform_port, cert_path, key_path)
@mongoip = mongoip
@mongoport = mongoport
@iotip = iotip
- @database = database
+ @mongo_database = mongo_database
@iotplatform_ip = iotplatform_ip
@iotplatform_port = iotplatform_port
+ @cert_path = cert_path
+ @key_path = key_path
+ @mongo_client = MongoIot.new(mongoip, mongoport, mongo_database)
end
+ #1. Add device to profile
+ #login - login for client identification
+ #profile - profile for device
+ #imei_list - device identificator
+ #imei_list = {
+ # imei: imei,
+ # imsi: imsi,
+ # msisdn: msisdn,
+ # description: description,
+ # note: note,
+ # profile: profile,
+ # type: type,
+ # address: address
+ #}
+ #massive commands
+ #+
+ def add_device_to_profile(login, profile, imei_list)
+ imei = []
+ list1 = {}
+ for_insert = []
+ for t in imei_list
+ imei.append(t["imei"])
+ list1[t["imei"]] = t
+ end
+ get_login_info = mongo_client.check_login_profile_permiss(login, profile)[:code]
+ if get_login_info==200
+ list_exists = mongo_client.check_imei_exists(imei)
+ for_upload = imei - list_exists
+ for h in for_upload
+ for_insert.append(list1[h])
+ end
+ mongo_client.imei_insert_list(for_insert)
+ else get_login_info
+ end
+ end
+
+ #2 Find device (only mongo datebase. IOT platform not need)
+ # login
+ # imei
+ # imei_list =[41234,23452345,132412]
+ #+
+ def device_find(login, imei_list)
+
+ ime_list_approved = []
+ ime_list_notapproved = []
+ begin
+ for t in imei_list
+ prof_name1 = mongo_client.get_profile_name_from_imei(t)
+ p "prof_name1"
+ p prof_name1
+ if prof_name1!=nil
+ permiss1 = mongo_client.check_login_profile_permiss(login, prof_name1["profile"])[:code]
+ if permiss1==200
+ ime_list_approved.append(t)
+ end
+ end
+ end
+ data = mongo_client.get_imei_info_from_db(ime_list_approved)
+ {:code=>507, :result => "Unknown error", :data => data}
+ rescue
+ {:code=>507, :result => "Unknown error"}
+ end
+ end
+
+ #3 device modify, change imei
+ #login
+ #imei_old
+ #imei_new
+ #massive commands
+ #im_list = [{:imei_old=>7967843245667, :imei_new=>7967843245665}]
+ #+
+ def imei_replace(login, im_list)
+ for a in im_list
+ p a
+ prof_name1 = mongo_client.get_profile_name_from_imei(a[:imei_old])
+ p prof_name1
+ permiss1 = mongo_client.check_login_profile_permiss(login, prof_name1["profile"])[:code]
+ if permiss1==200
+ mongo_client.device_modify_any_attr_mongo(a[:imei_old],{:imei=>a[:imei_new]})
+ end
+ end
+ end
+
+
+ #4 remove device
+ #login
+ #imei
+ # not massive commands
+ #imei=11341341234
+ #login="test"
+ #+
+ def device_remove(login, imei)
+ prof_name = mongo_client.get_profile_name_from_imei(imei)
+ permiss = mongo_client.check_login_profile_permiss(login, prof_name["profile"])[:code]
+ if permiss==200
+ mongo_client.device_remove_single_mongo(imei)
+ end
+ end
+
+
+ #5 add address to device
+ #login
+ #imei = newdevice_list
+ #address = newdevice_list
+ #newdevice_list=[{:imei=>7967843245665, :address=>"Golubeva51"}]
+ #+
+ def device_add_address(login, newdevice_list)
+ for p in newdevice_list
+ prof_name = mongo_client.get_profile_name_from_imei(p[:imei])
+ p "prof_name"
+ p prof_name
+ permiss = mongo_client.check_login_profile_permiss(login, prof_name["profile"])[:code]
+ if permiss==200
+ mongo_client.device_modify_attr_mongo(p[:imei],p[:address])
+ end
+ end
+ end
+
+ #6 add service by SPA
+ #imei
+ #profile
+ #imsi
+ #msisdn
+ #newdevice_list=[{:imei=>7967843245665, :attributes=>{:address=>"Golubeva51", :profile=>"wqeqcqeqwev", :msisdn=>375298766719, :imsi=>25702858586756875}}]
+ #+
+ def add_service(login, device_list)
+ for g in device_list
+ prof_name1 = mongo_client.get_profile_name_from_imei(g[:imei])
+ p prof_name1
+ permiss1 = mongo_client.check_login_profile_permiss(login, prof_name1["profile"])[:code]
+ p permiss1
+ permiss2 = mongo_client.check_login_profile_permiss(login, g[:attributes][:profile])[:code]
+ if permiss1==200 && permiss2==200
+
+ attr = g[:attributes]
+ #mod_attr = {}
+
+ if attr.key?(:profile)
+ if attr[:profile].is_a? Integer
+ p "Ok"
+ else
+ p new = mongo_client.get_profile_id_by_name(attr[:profile])
+ attr[:profile] = new["profile_id"]
+ end
+ end
+ p attr
+
+ mongo_client.device_modify_any_attr_mongo(g[:imei],attr)
+ end
+ end
+ end
+
+
+
+
def test()
- ddd = MongoIot.new(mongoip, mongoport, iotip, database)
- ddd.ttt
+ ddd = MongoIot.new(mongoip, mongoport, mongo_database)
+ #ddd.get_profiles_by_login("test")
+
+ ff = [131234123412341233, 131234123127341233]
+ #ddd.get_imsi_info_from_db(ff)
+
+ p ddd.get_profile_id_by_name("1341241")
end
+
+
def testhua()
- cert_file = "/Users/imperituroard/Desktop/cert.crt"
- key_file = "/Users/imperituroard/Desktop/key.pem"
+ cert_file = cert_path
+ key_file = key_path
ddd1 = HuaIot.new(iotplatform_ip, iotplatform_port, "", "", cert_file, key_file)
#p ddd1.dev_register_verif_code_mode("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", "7521234165452")
#ddd1.querying_device_id("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", "a8834c5e-4b4d-4f0f-ad87-14e916f3d0bb")
#ddd1.querying_device_activ_status("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", "7521234165452")
#ddd1.querying_device_info("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", "a8834c5e-4b4d-4f0f-ad87-14e916f3d0bb")