def post(self): title = self.request.get('title') timestamp = self.request.get('timestamp') user = self.current_user query = db.GqlQuery("SELECT * FROM MidautumnObject WHERE title = :1", title) mo = query.get() args = None if not user: args = {'result': 'not_authorized'} elif mo: args = {'result': 'duplicated', 'objects': [mo.to_dict(details=True, current_user=user),]} else: mo = MidautumnObject(title=title, owner=user) mo.put() # fetch all objects after the timestamp # should include the one just posted query = MidautumnObject.all() query.filter('pubtime >', datetime.utcfromtimestamp(float(timestamp))) query.order('-pubtime') objects = [] for obj in query: objects.append(obj.to_dict(current_user=user)) # check achievements achievements = [] achievements.extend(achievement.check_post(mo)) args = {'result': 'success', 'objects': objects, 'achievements': achievements} self.response.headers['Content-Type'] = 'application/json' self.response.out.write(json.dumps(args))