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