async def create_user( payload: UserSchema, x_access_token: Optional[str] = Header(None), ): auth_payload = {"email": payload.dict()["email"]} auth_header = {"x-access-token": x_access_token} registered_user, _ = Requester.auth_srv_fetch( method="POST", path="/user/registered", expected_statuses={HTTP_201_CREATED}, payload=auth_payload, extra_headers=auth_header, ) path = "/users" payload_user = payload.dict() payload_user.update({"id": registered_user["uuid"]}) user, _ = Requester.user_srv_fetch( method="POST", path=path, expected_statuses={HTTP_201_CREATED}, payload=payload_user, ) # create wallet path = "/wallets" payload_wallet = {"uuid": registered_user["uuid"]} wallet, _ = Requester.payment_fetch( method="POST", path=path, expected_statuses={HTTP_201_CREATED}, payload=payload_wallet, ) return user
async def delete_user(user_id: int, uuid: int = Depends(get_uuid_from_xtoken), x_access_token: Optional[str] = Header(None)): auth_header = {"x-access-token": x_access_token} if not AuthSender.has_permission_to_modify(uuid, user_id): raise UnauthorizedRequestError("You can't delete other users") path = f"/users/{user_id}" new_user_info, _ = Requester.user_srv_fetch( method="DELETE", path=path, expected_statuses={HTTP_200_OK}) auth_path = f"/user/registered/{uuid}" Requester.auth_srv_fetch("DELETE", path=auth_path, expected_statuses={HTTP_200_OK}, extra_headers=auth_header) return new_user_info
def is_valid_token(cls, token): response, code = Requester.auth_srv_fetch( method="POST", path="/auth/sign-in", expected_statuses={HTTP_200_OK}, payload={}, extra_headers=cls.tkn_hdr(token), ) logger.debug( "Auth server validate token response: %s, status_code: %s", response, code) return code == 200
def get_uuid_from_token(cls, token): # if not cls.url: # cls._mock_get_info(int(token)) # return int(token) response, code = Requester.auth_srv_fetch( method="GET", path="/user/id", expected_statuses={HTTP_200_OK}, payload={}, extra_headers=cls.tkn_hdr(token), ) logger.debug("Auth server get uuid response: %s, status_code: %s", response, code) if code != 200: raise NotFoundError("User") logger.info("Obtained user uuid: %d", response["uuid"]) return response["uuid"]