Пример #1
0
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
Пример #2
0
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
Пример #3
0
    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
Пример #4
0
    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"]