コード例 #1
0
 def post(self):
     try:
         parser = reqparse.RequestParser()
         parser.add_argument("email", type=str)
         parser.add_argument("password", type=str)
         parser.add_argument("name", type=str)
         parser.add_argument("dob", type=str)
         parser.add_argument("mobile", type=str)
         q = parser.parse_args()
         if q.email is None or q.password is None or q.name is None or q.dob is None or q.mobile is None:
             return {
                 "success": False,
                 "message": "Email, password, name, mobile or date of birth is missing"
             }
         else:
             user_count = User.objects(email=q.email).count()
             if user_count > 0:
                 return {
                     "success": False,
                     "message": "User already exists"
                 }
             else:
                 password = generate_hash(q.password)
                 try:
                     dob = datetime.datetime.strptime(q.dob, '%d/%m/%Y')
                 except:
                     return {"success": False, "message": "Invalid date of birth. Please keep the format of dd/mm/yyyy"}
                 user = User(email=q.email, password=password, name=q.name, dob=dob, mobile=q.mobile)
                 user.save()
                 return {
                     "success": True,
                     "token": create_jwt({"email": user.email, "type": "user"}),
                     "user": user.format()
                 }
     except ValidationError as e:
         errors = list(e.to_dict())
         message = "Invalid " + ", ".join(errors)
         return {
             "success": False,
             "message": message
         }
     except Exception as e:
         print(e)
         return {
             "success": False,
             "message": "Something went wrong"
         }