def post(self): self.response.content_type = "application/json; charset=utf-8" user_id = self.request.get('user_id') friend_id = self.request.get('friend_id') try: users = ShourFriend.is_requestable(user_id, friend_id) ShourFriend.is_duplicate_request(user_id, friend_id) ShourFriend.request(users[0], users[1]) data = {"message": True} json.dump(data, self.response.out, ensure_ascii=False) except ShourAppError, e: data = {"message": False, "err":e.value} json.dump(data, self.response.out, ensure_ascii=False)
def post(self): self.response.content_type = "application/json; charset=utf-8" user_id = self.request.get('user_id') friend_id = self.request.get('friend_id') try: users = ShourFriend.is_acceptable(user_id, friend_id) ShourFriend.is_duplicate_accept(user_id, friend_id) # リクエストされていたデータ friend_request = ShourFriend.get_relation(friend_id, user_id) # 友人リクエスト承認者の投稿したイベント user_events = ShourPost.get_master_event(user_id) # 友人リクエスト申請者の投稿したイベント friend_events = ShourPost.get_master_event(friend_id) # クロスグループトランザクションCross-Group (XG) Transactions有効化 xg_on = db.create_transaction_options(xg=True) db.run_in_transaction_options(xg_on, ShourFriend.accept, users[0], users[1], friend_request, user_events, friend_events) data = {"message": True} json.dump(data, self.response.out, ensure_ascii=False) except ShourAppError, e: data = {"message": False, "err":e.value} json.dump(data, self.response.out, ensure_ascii=False)
def get_feed_new(self, user_id, limit, offset): if offset == 0: offset = 0 else: offset = limit * offset + 1 logging.info("友人検索") friends = ShourFriend.show_all_friends(user_id) for friend in friends: query = ShourPost.all() logging.info(friend.friend_id) query.filter("user_id =", friend.friend_id) # 公開のものを取得 query.filter("public_id =", 0) # query.order("-created_at") events = query.fetch(limit=limit, offset=offset) datas = [] for event in events: data = { "event": { "event_id": event.key().id(), "comment:": event.comment, "created_at": event.created_at, "end_time": event.end_time, "master": event.master, "modified_at": event.modified_at, "place_address": event.place_address, "place_lat": event.place_lat, "place_lng": event.place_lng, "place_name": event.place_name, "public_id": event.public_id, "start_time": event.start_time, "status_id": event.status_id, }, "user": { "user_id": event.user_reference.key().id(), "name": event.user_reference.name, "picture_url": event.user_reference.picture_url, }, } datas.append(data) # 投稿が新しい順にソート sorted(datas, key=lambda data: data["event"]["event_id"], reverse=True) return datas
def post(self): self.response.content_type = "application/json; charset=utf-8" user_id = self.request.get('user_id') friend_id = self.request.get('friend_id') try: friendship_from_me = ShourFriend.get_relation(user_id, friend_id) friendship_from_you = ShourFriend.get_relation(friend_id, user_id) if friendship_from_me: ShourFriend.destroy(friendship_from_me) if friendship_from_you: ShourFriend.destroy(friendship_from_you) data = {"message": True} json.dump(data, self.response.out, ensure_ascii=False) except ShourAppError, e: data = {"message": False, "err":e.value} json.dump(data, self.response.out, ensure_ascii=False)
def post(self): self.response.content_type = "application/json; charset=utf-8" user_id = self.request.get('user_id') friend_requests = ShourFriend.notice(user_id) data = jsonencoder.GqlEncoder().encode(friend_requests) self.response.out.write(data)