def post_message(mkey): if not request.json: abort(400) c = concs.find_by_mkey(mkey) if c is None: abort(404) app.logger.debug(request.json) devices = Devices(c) senml_ser = opentrv.data.senml.Serializer() records = senml_ser.from_json_object(request.json) for r in records: d = devices.find_by_topic(r.topic) if d is None: d = devices.add_topic(r.topic) app.logger.debug("Adding device {0}/{1}".format(d["mkey"], d["bn"])) else: app.logger.debug("Retrieving device {0}/{1}".format(d["mkey"], d["bn"])) sensors = Sensors(d) s = sensors.find_by_record(r) if s is None: s = sensors.add_record(r) app.logger.debug("Adding sensor {0}/{1}/{2}".format(s["mkey"], s["bn"], s["n"])) else: app.logger.debug("Retrieving sensor {0}/{1}/{2}".format(s["mkey"], s["bn"], s["n"])) sensors.save() ts = Series(s) ts.add_record(r) ts.save() devices.save() return jsonify({'ok': True}), 201
def post_message(mkey): if not request.json: abort(400) c = concs.find_by_mkey(mkey) if c is None: abort(404) app.logger.debug(request.json) devices = Devices(c) senml_ser = opentrv.data.senml.Serializer() records = senml_ser.from_json_object(request.json) for r in records: d = devices.find_by_topic(r.topic) if d is None: d = devices.add_topic(r.topic) app.logger.debug("Adding device {0}/{1}".format( d["mkey"], d["bn"])) else: app.logger.debug("Retrieving device {0}/{1}".format( d["mkey"], d["bn"])) sensors = Sensors(d) s = sensors.find_by_record(r) if s is None: s = sensors.add_record(r) app.logger.debug("Adding sensor {0}/{1}/{2}".format( s["mkey"], s["bn"], s["n"])) else: app.logger.debug("Retrieving sensor {0}/{1}/{2}".format( s["mkey"], s["bn"], s["n"])) sensors.save() ts = Series(s) ts.add_record(r) ts.save() devices.save() return jsonify({'ok': True}), 201
def test_find_by_record(self): mkey = "test_mkey" bn = "mytopic" d = {"mkey": mkey, "bn": bn} r = opentrv.data.Record("t", datetime.datetime.utcnow(), 10) sensors = Sensors(d) sensors.add_record(r) s = sensors.find_by_record(r) self.assertIsNotNone(s) self.assertEqual(mkey, s["mkey"]) self.assertEqual(bn, s["bn"]) self.assertEqual("t", s["n"])