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)
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"]]
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)
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"]]
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"}
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"}