Пример #1
0
    def batch(self, diff, context):  # Done
        output = "OK"
        diff = diff.diff
        """ Format of 'diff':
		{"added": [[identifier, [longitude, latitude]],...],
		"removed: [identifier, ...]"}
		"""
        query = []

        # Convert string JSON 'diff' to a dictionary
        diff = jsonLib.loads(diff)

        # Building a query for each entry to be added
        if "added" in diff:
            for obj in diff["added"]:
                if len(
                        dbhelper.sendQuery(config["getentry"], (obj[0], ),
                                           limit=1)) == 0:
                    query.append(
                        self._createDBEntry(obj[0], obj[1], send=False))

        # Building a query for each entry to be removed
        if "removed" in diff:
            for obj in diff["removed"]:
                query.append(self.deleteEntry(obj, obj, send=False))

        # Create batch query and send it
        #result = self._sendToDB("\n".join(query), _dbconnstr)
        dbhelper.sendQuery("\n".join(query), ()).get()
        return pb2.status(status=output)
Пример #2
0
    def addEntry(self, entry, context):  # Done
        output = "OK"
        #query = self.getentry()["query"]
        query = config["getentry"]

        #FIRST PART: Check for existence of the entry
        #  create query
        #query = query.replace("{0}", str(self._preventHack(entry.identifier)))
        #  ask DB for existence of the entry 'identifier'
        #json = self._toJSON(self._sendToDB(query, _dbconnstr), self.getentry()["columns"])
        json = dbhelper.sendQuery(query, (entry.identifier, )).get()

        # check, if the result contains any content
        if len(json) == 0:
            self._createDBEntry(entry.identifier,
                                [entry.longitude, entry.latitude])
            return pb2.status(status=output)
        else:
            return pb2.status(status="Already exists in database")
Пример #3
0
    def deleteEntry(self, identifier, context, send=True):  # Done
        output = "OK"
        #query = self.deleteentry()["query"]
        query = config["deleteentry"]

        #create query
        if type(identifier) is str:
            #query = query.replace("{0}", str(self._preventHack(identifier)))
            query = dbhelper.modifyQuery(query, (identifier, ))
        else:
            #query = query.replace("{0}", str(self._preventHack(identifier.identifier)))
            query = dbhelper.modifyQuery(query, (identifier.identifier, ))

        #send query
        if send:
            #result = self._sendToDB(query, _dbconnstr)
            result = dbhelper.sendQuery(query, ()).get()
            return pb2.status(status=output)
        else:
            return query
Пример #4
0
	def feedback(self, data):
		with grpc.insecure_channel("localhost:50051") as channel:
			stub = pb2_grpc.MDRankingServiceStub(channel)
			resp = stub.feedback(pb2.status(status=data))
			output = resp.status
		return output
Пример #5
0
 def feedback(self, status, context):  # Done
     return pb2.status(status=status.status)
Пример #6
0
 def increaseClick(self, click, context):  # Done
     #self._sendToDB(self._increaseClick(click.identifier, click.event), _dbconnstr)
     dbhelper.sendQuery(self._increaseClick(click.identifier, click.event),
                        ()).get()
     return pb2.status(status="OK")