def getByProductNameSerialNumberModuleIdSensorId(cls, product_name_data, serial_number_data, module_id_data, sensor_id_data): assert isinstance(product_name_data, Data) and isinstance( serial_number_data, Data) and isinstance( module_id_data, Data) and isinstance(sensor_id_data, Data) query = ndb.Query(kind="Sensor") query = query.filter(cls.productName == product_name_data.dataId) query = query.filter(cls.serialNumber == serial_number_data.dataId) query = query.filter(cls.moduleId == module_id_data.dataId) query = query.filter(cls.sensorId == sensor_id_data.dataId) keys = query.fetch(keys_only=True, limit=2) if len(keys) == 0: raise EntityNotFound( "Sensor", { "product_name_data": product_name_data, "serial_number_data": serial_number_data, "module_id_data": module_id_data, "sensor_id_name": sensor_id_data }) if len(keys) == 2: raise EntityDuplicated({ "product_name_data": product_name_data, "serial_number_data": serial_number_data, "module_id_name": module_id_data, "sensor_id_data": sensor_id_data }) return keys[0].get()
def keyByOdenkiId(cls, odenki_id): query = cls.queryByOdenkiId(odenki_id) keys = query.fetch(keys_only=True, limit=2) if len(keys) == 0: raise EntityNotFound(cls, {"odenkiId": odenki_id}) if len(keys) == 2: raise EntityDuplicated(cls, {"odenkiId": odenki_id}) return keys[0]
def getByFieldAndString(cls, field, string): query = cls.queryByFieldAndString(field, string) keys = query.fetch(keys_only=True, limit=2) if len(keys) == 2: raise EntityDuplicated() if len(keys) == 0: raise EntityNotFound("Data", {"field": field, "string": string}) return keys[0].get()
def keyByOdenkiId(cls, odenki_id): assert isinstance(odenki_id, int) query = cls.queryByOdenkiId(odenki_id) keys = query.fetch(keys_only=True, limit=2) if len(keys) == 0: raise EntityNotFound({"odenkiId": odenki_id}, "OdenkiUser.keyByOdenkiId") if len(keys) == 2: raise EntityDuplicated({"odenkiId":odenki_id}, "OdenkiUser.keyByOdenkiId") return keys[0]
def getByUniqueSensorId(cls, unique_sensor_id): query = ndb.Query(kind="Sensor") query = query.filter(Sensor.uniqueSensorId == unique_sensor_id) keys = query.get(keys_only=True, limit=2) if len(keys >= 2): raise EntityDuplicated({"equipmentId": unique_sensor_id}) if len(keys == 0): raise EntityNotFound({"equipmentId": unique_sensor_id}) return keys[0].get()
def getByCard(cls, card_type, card_id): q = Outlet.query() q = q.filter(cls.cardId == card_id) q = q.filter(cls.cardType == card_type) keys = q.fetch(keys_only=True, limit=2) if len(keys) == 0: raise EntityNotFound({"cardId": card_id, "cardType": card_type}) if len(keys) >= 2: raise EntityDuplicated({"cardId": card_id, "cardType": card_type}) return keys[0].get()
def getByEmailUserId(cls, email_user_id): assert isinstance(email_user_id, int) query = ndb.Query(kind="EmailUser") query = query.filter(cls.emailUserId == email_user_id) query = query.filter(cls.invalidatedDateTime == None) keys = query.fetch(limit=2, keys_only=True) if len(keys) == 0: raise EntityNotFound(cls, {"emailUserId": email_user_id}) if len(keys) == 2: raise EntityDuplicated(cls, {"emailUserId": email_user_id}) return keys[0].get()
def getByNonce(cls, nonce): assert isinstance(nonce, unicode) query = ndb.Query(kind="EmailUser") query = query.filter(cls.nonce == nonce) query = query.filter(cls.invalidatedDateTime == None) keys = query.fetch(limit=2, keys_only=True) if len(keys) == 2: raise EntityDuplicated({"nonce": nonce}, "EmailUser.getByNonce failed") if len(keys) == 0: raise EntityNotFound({"nonce": nonce}, "EmailUser.getByNonce failed") return keys[0].get()
def keyByTwitterId(cls, twitter_id): assert isinstance(twitter_id, int) query = cls.queryByTwitterId(twitter_id) keys = query.fetch(keys_only=True, limit=2) if len(keys) == 0: raise EntityNotFound(cls, {"twitterId":twitter_id}) if len(keys) == 2: twitter_user_1 = keys[0].get() assert isinstance(twitter_user_1, TwitterUser) twitter_user_2 = keys[1].get() assert isinstance(twitter_user_2, TwitterUser) if twitter_user_1.odenkiId == twitter_user_2.odenkiId: twitter_user_2.key.delete() return twitter_user_1.key raise EntityDuplicated({"twitter_user_1": twitter_user_1, "twitter_user_2": twitter_user_2}) return keys[0]
def keyByOdenkiId(cls, odenki_id): query = cls.queryByOdenkiId(odenki_id) keys = query.fetch(keys_only=True, limit=2) if len(keys) == 0: raise EntityNotFound({"kind": cls.__name__, "odenkiId": odenki_id}) if len(keys) == 2: gmail_user_1 = keys[0].get() assert isinstance(gmail_user_1, GmailUser) gmail_user_2 = keys[1].get() assert isinstance(gmail_user_2, GmailUser) if gmail_user_1.gmailId == gmail_user_2.gmailId: gmail_user_2.key.delete_async() return gmail_user_1.key raise EntityDuplicated({"odenkiId": odenki_id, "gmail_user_1": gmail_user_1, "gmail_user_2": gmail_user_2}) return keys[0]
def keyByGmailId(cls, gmail_id): assert isinstance(gmail_id, str) #user_id() returns str, not unicode query = cls.queryByGmailId(gmail_id) keys = query.fetch(keys_only=True, limit=2) assert isinstance(keys, list) if len(keys) == 0: raise EntityNotFound({"kind": cls.__name__ , "gmailId":gmail_id}) if len(keys) == 2: gmail_user_1 = keys[0].get() assert isinstance(gmail_user_1, GmailUser) gmail_user_2 = keys[1].get() assert isinstance(gmail_user_2, GmailUser) if gmail_user_1.odenkiId == gmail_user_2.odenkiId: gmail_user_2.key.delete_async() return gmail_user_1.key raise EntityDuplicated({"gmail_user_1": gmail_user_1, "gmail_user_2": gmail_user_2, "gmailId":gmail_id}) return keys[0]