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