def sign_up(): if request and request.method == "POST": resp, err = GetUserPasswordFromAuthHeader(request) if err: res = GetResponseObject(err, 401) log.error(res) return res username, password = resp[0], resp[1] if request.data: body = json.loads(request.data) resp, err = ValidateRegistrationData(body) if err: res = GetResponseObject(err, 400) log.error(res) return res try: body["username"] = username # Save user record in Cognito user = Cognito(user_pool_id=COGNITO_USER_POOL_ID, client_id=COGNITO_APP_CLIENT_ID, user_pool_region=AWS_REGION) user.add_base_attributes(email=username, given_name=body["firstName"], family_name=body["lastName"], phone_number=body["phone"], address=body["address"]) user.add_custom_attributes(usertype=body["userType"], area=body["area"], city=body["city"]) resp = user.register(username, password) # log.info("Cognito response:" + str(resp)) user.admin_confirm_sign_up() body["uuid"] = resp['UserSub'] body["email"] = username # log.info(json.dumps(body, indent=2)) # saving user record in db # filename, err = upload_image(request) # if err: # raise Exception(err) # body["image"] = "https://" + settings.CLOUD_FRONT_URL + "/" + filename SaveInDB(body) data = "User registered successfully !!!" res = GetResponseObject(data, 200, True) return res except ClientError as e: if e.response['Error']['Code'] == 'UsernameExistsException': data = f"{username} username already exists !!!" log.error(data) res = GetResponseObject(data) return res data = f"Error: {str(e)}" log.error(data) res = GetResponseObject(data) return res except Exception as e: user = Cognito( \ user_pool_id=COGNITO_USER_POOL_ID, \ client_id=COGNITO_APP_CLIENT_ID, \ user_pool_region=AWS_REGION, username=username) user.authenticate(password=password) resp = client.delete_user(AccessToken=user.access_token) log.info( f"Deleting user due to error while signing up: {resp}") data = f"Error while registering user: {str(e)}" log.error(data) res = GetResponseObject(data) return res else: data = f"Empty request body !!!!" res = GetResponseObject(data, 400) log.error(err) return res else: data = f"Invalid request method, method {request.method} not supported !!!" res = GetResponseObject(data, 405) log.error(res) return res
def sign_up(): if request and request.method == "POST": resp, err = GetUserPasswordFromAuthHeader(request) if err: res = GetResponseObject(err, 401) log.error(res) return res username, password = resp[0], resp[1] if request.data: body = json.loads(request.data) resp, err = ValidateRegistrationData(body) if err: res = GetResponseObject(err, 400) return res try: body["username"] = username # Save user record in Cognito user = Cognito(user_pool_id=COGNITO_USER_POOL_ID, client_id=COGNITO_APP_CLIENT_ID, user_pool_region=AWS_REGION) user.add_base_attributes( email=username, given_name=body["firstName"], family_name=body["lastName"] ) print(username, password) user.add_custom_attributes( yoyoPoints=body["yoyoPoints"], admin=body["admin"] ) resp = user.register(username, password) log.info("Cognito response:" + str(resp)) user.admin_confirm_sign_up() body["uuid"] = resp['UserSub'] # log.info(json.dumps(body, indent=2)) data = "User registered successfully !!!" res = GetResponseObject(data, 200, True) return res except ClientError as e: print(f"Error: {str(e)}") if e.response['Error']['Code'] == 'UsernameExistsException': data = f"{username} username already exists !!!" log.error(data) res = GetResponseObject(data) return res except Exception as e: user = Cognito( user_pool_id=COGNITO_USER_POOL_ID, client_id=COGNITO_APP_CLIENT_ID, user_pool_region=AWS_REGION, username=username) user.authenticate(password=password) resp = client.delete_user(AccessToken=user.access_token) log.info( f"Deleting user due to error while signing up: {resp}") data = f"Error while registering user: {str(e)}" log.error(data) res = GetResponseObject(data) return res else: data = f"Empty request body !!!!" res = GetResponseObject(data, 400) log.error(err) return res else: data = f"Invalid request method, method {request.method} not supported !!!" res = GetResponseObject(data, 405) log.error(res) return res