def post(self):
     self.response.content_type = "application/json"
     user_id = self.request.get('user_id')
     password = self.request.get('password')
     event_id = self.request.get('event_id')
     try:
         ShourUser.shour_authorize(user_id, password)
     except ShourAppError, e:
         data = {"message": False, "err":e.value}
         json.dump(data, self.response.out, ensure_ascii=False)
         return
Example #2
0
 def is_acceptable(self, user_id, friend_id):
     user = ShourUser.get_by_id(int(user_id))
     friend = ShourUser.get_by_id(int(friend_id))
     if not user:
         # 申請元が存在しない
         raise ShourAppError(20001)
     if not friend:
         # 相手方が存在しない
         raise ShourAppError(20002)
     else:
         # 申請元または相手方ユーザーが存在しない
         return [user, friend]
 def post(self):
     self.response.content_type = "application/json"
     name = self.request.get("name")
     first_name = self.request.get("first_name")
     last_name = self.request.get("last_name")
     picture = self.request.get("picture")
     password = self.request.get("password")
     email = self.request.get("mail")
     lang = self.request.get("lang")
     # メールが重複して登録されていないか
     try:
         ShourUser.sign_up_check(email)
     except ShourAppError, e:
         data = {"message": False, "err": e.value}
         json.dump(data, self.response.out, ensure_ascii=False)
         return
 def post(self):
     self.response.content_type = "application/json; charset=utf-8"
     profile_id = self.request.get('profile_id')
     try:
         profile = ShourUser.show(profile_id)
         data = {"name": profile.name, "first_name": profile.first_name, "last_name": profile.last_name, "picture_url":profile.picture_url, "created_at":profile.created_at, "last_login":profile.last_login}
         data = jsonencoder.GqlEncoder().encode(data)
         self.response.out.write(data)
     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"
     email = self.request.get("mail")
     password = self.request.get("password")
     try:
         user_id = ShourUser.login_check(email, password)
         data = {"user_id": user_id}
         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"
     user_id = int(self.request.get('user_id'))
     password = self.request.get('password')
     offset = self.request.get('offset')
     # オフセットを初期化(パラメータが無ければoffset=0)
     offset = ShourPost.set_offset(offset)
     try:
         user = ShourUser.shour_authorize(user_id, password)
     except ShourAppError, e:
         data = {"message": False, "err":e.value}
         json.dump(data, self.response.out, ensure_ascii=False)
         return
 def post(self):
     self.response.content_type = "application/json"
     # ここはint()が必要。
     user_id = int(self.request.get('user_id'))
     password = self.request.get('password')
     start_time = datetime.datetime.strptime(urllib.unquote_plus(self.request.get('start_time')), '%Y-%m-%d %H:%M:%S')
     end_time = self.request.get('end_time')
     if end_time != "":
         end_time = datetime.datetime.strptime(urllib.unquote_plus(self.request.get('end_time')), '%Y-%m-%d %H:%M:%S')
     place_name = self.request.get('place_name')
     place_address = self.request.get('place_address')
     place_lat = self.request.get('place_lat')
     place_lng = self.request.get('place_lng')
     comment = self.request.get('comment')
     status_id = int(self.request.get('status_id'))
     public_id = int(self.request.get('public_id'))
     modified_at = datetime.datetime.now()
     try:
         ShourUser.shour_authorize(user_id, password)
     except ShourAppError, e:
         data = {"message": False, "err":e.value}
         json.dump(data, self.response.out, ensure_ascii=False)
         return
 def activate(self, token, tmp_user_id, user_id):
     if token:
         tmp_user = db.get(token)
         user = ShourUser.get_by_id(int(user_id))
     else:
         # アクティベートに失敗
         raise ShourAppError(10006)
     if tmp_user and user:
         if tmp_user.used == True:
             # アクティベートに失敗
             raise ShourAppError(10006)
         elif user.active == True:
             # アクティベートに失敗
             raise ShourAppError(10006)
         # クロスグループトランザクションCross-Group (XG) Transactions有効化
         xg_on = db.create_transaction_options(xg=True)
         db.run_in_transaction_options(xg_on, ShourTempUser.activate_all, tmp_user, user)
     else:
         # アクティベートに失敗
         raise ShourAppError(10006)
         data = {"message": False, "err": e.value}
         json.dump(data, self.response.out, ensure_ascii=False)
         return
     # DB保存用のurl
     picture_url = "http://commondatastorage.googleapis.com/sh_avatar/user/" + str(picture_id) + ext_
     # Google Cloud Storage用url
     READ_PATH = "/gs/sh_avatar/user/" + token + ext_
     write_path = files.gs.create(READ_PATH, mime_type=header, acl="public-read")
     with files.open(write_path, "a") as fp:
         fp.write(picture)
     files.finalize(write_path)
 else:
     # 無ければデフォルトの画像を設定
     picture_url = "http://commondatastorage.googleapis.com/sh_avatar/default/default_avater.png"
 # 公開鍵作成
 rsa = ShourUser.generate_rsa_pub_and_private_key(password)
 # POSTされたユーザデータをモデルに変換
 shour_user = ShourUser(
     name=name,
     first_name=first_name,
     last_name=last_name,
     picture_url=picture_url,
     picture_id=picture_id,
     rsa_pub_key=rsa[0],
     password=rsa[1],
     mail=email,
     active=False,
     token=token,
 )
 user_id = 0
 try: