예제 #1
0
    def getEntity(self, id):
        """get an entity from db by id

        Arguments:
            id {[string]} -- [entity id]

        Returns:
            [Transfer] -- [Transfer with matching id]
        """
        if (transferData := self._client.get(  # noqa: E231,E203,E999,E251,E261
                self._client.key(self._kind, id))) is not None:
            transfer = Transfer(**transferData)
            transfer.transferId = id
            return transfer
예제 #2
0
    def updateEntity(self, id, updated_entity):
        """update existing entity by id

        Arguments:
            id {[string]} -- [entity id to update]
            updated_entity {[type]} -- [new transfer data]

        Returns:
            [Transfer] -- [updated Transfer]
        """
        transfer = self._client.get(self._client.key(self._kind, id))
        transfer.update(updated_entity.get_dict())
        self._client.put(transfer)
        updatedTransfer = Transfer(**transfer)
        updatedTransfer.transferId = id
        return updatedTransfer
예제 #3
0
    def getEntityByFilter(self, filters):
        """get all entities matching a filter

        Arguments:
            filter {[[array of filters]]} -- [filters for datastore
                                            of the form ["key","operator","val"]]

        Returns:
            [list] -- [list of matching entities]
        """
        query = self._client.query(kind=self._kind)
        for filter in filters:
            query.add_filter(*filter)
        transfers_list = []
        transfers = list(query.fetch())
        for entity in transfers:
            transfer = Transfer(**entity)
            transfer.transferId = entity.key.id
            transfers_list.append(transfer.get_dict())
        return transfers_list