Beispiel #1
0
    def handleMessage(self, sessionToken, status):

        mentionIds = self.extractUsernames(status)

        if mentionIds == []:
            #this isn't a message
            return

        #get our object id
        myObjectId = whoAmI(sessionToken)
        entry = {
                    "from" : {
                            "__type":"Pointer",
                            "className":"_User",
                            "objectId": myObjectId
                          },
                    "message" : status,
                    "read" : False,
                    "to" : {
                            "__type":"Pointer",
                            "className":"_User",
                            "objectId": myObjectId
                          }
                }
        for toObjectId in mentionIds:
            #set the recipient
            entry["to"]["objectId"] = toObjectId
            #post them into the system
            headers = apiHeader()
            r = requests.post(url + "/classes/Messages", headers = headers,
                    json = entry)
Beispiel #2
0
    def post(self):
        parser = reqparse.RequestParser()
        parser.add_argument("sessionToken", required=True)
        args = parser.parse_args()

        sessionToken = args["sessionToken"]

        userObjectId = whoAmI(sessionToken)
        if userObjectId == None:
            #we don't use validateSessionToken
            #to avoid a duplicated call
            return {"error": "authentication error"}

        #query for the statuses that mention me
        header = apiHeader()
        query = {"to":
                    {
                        "__type": "Pointer",
                        "className": "_User",
                        "objectId": userObjectId
                    }
                } #change this
        data = {"where": json.dumps(query), "include":"from"}

        r = requests.get(url + "/classes/Messages", headers = header, params = data)
        response = json.loads(r.text)
        return [{"msg": item["message"], "readStatus": item["read"], "objectId": item["objectId"],
            "from": item["from"]["username"]} for item in response["results"]]
Beispiel #3
0
    def handleMessage(self, sessionToken, status):

        mentionIds = self.extractUsernames(status)

        if mentionIds == []:
            #this isn't a message
            return

        #get our object id
        myObjectId = whoAmI(sessionToken)
        entry = {
            "from": {
                "__type": "Pointer",
                "className": "_User",
                "objectId": myObjectId
            },
            "message": status,
            "read": False,
            "to": {
                "__type": "Pointer",
                "className": "_User",
                "objectId": myObjectId
            }
        }
        for toObjectId in mentionIds:
            #set the recipient
            entry["to"]["objectId"] = toObjectId
            #post them into the system
            headers = apiHeader()
            r = requests.post(url + "/classes/Messages",
                              headers=headers,
                              json=entry)
Beispiel #4
0
    def post(self):
        parser = reqparse.RequestParser()
        parser.add_argument("sessionToken", required=True)
        args = parser.parse_args()

        sessionToken = args["sessionToken"]

        userObjectId = whoAmI(sessionToken)
        if userObjectId == None:
            #we don't use validateSessionToken
            #to avoid a duplicated call
            return {"error": "authentication error"}

        #query for the statuses that mention me
        header = apiHeader()
        query = {
            "to": {
                "__type": "Pointer",
                "className": "_User",
                "objectId": userObjectId
            }
        }  #change this
        data = {"where": json.dumps(query), "include": "from"}

        r = requests.get(url + "/classes/Messages",
                         headers=header,
                         params=data)
        response = json.loads(r.text)
        return [{
            "msg": item["message"],
            "readStatus": item["read"],
            "objectId": item["objectId"],
            "from": item["from"]["username"]
        } for item in response["results"]]
Beispiel #5
0
    def put(self):
        parser = reqparse.RequestParser()
        parser.add_argument("sessionToken", required=True)
        parser.add_argument("objectId", required = True)
        parser.add_argument("flag", required = True, type = bool)
        args = parser.parse_args()

        sessionToken = args["sessionToken"]

        userObjectId = whoAmI(sessionToken)
        if userObjectId == None:
            #we don't use validateSessionToken
            #to avoid a duplicated call
            return {"error": "authentication error"}

        header = sessionTokenHeader(sessionToken)
        data = {"read": bool(args["flag"])}
        r = requests.put(url + "/classes/Messages/" + args["objectId"], headers = header, params = data)
        return {"success": "changed flag"}
Beispiel #6
0
    def put(self):
        parser = reqparse.RequestParser()
        parser.add_argument("sessionToken", required=True)
        parser.add_argument("objectId", required=True)
        parser.add_argument("flag", required=True, type=bool)
        args = parser.parse_args()

        sessionToken = args["sessionToken"]

        userObjectId = whoAmI(sessionToken)
        if userObjectId == None:
            #we don't use validateSessionToken
            #to avoid a duplicated call
            return {"error": "authentication error"}

        header = sessionTokenHeader(sessionToken)
        data = {"read": bool(args["flag"])}
        r = requests.put(url + "/classes/Messages/" + args["objectId"],
                         headers=header,
                         params=data)
        return {"success": "changed flag"}