def get_all_products(response: Response, authorization: str = Header(None)):
    try:
        auth_user = cognito_auth.verify_token(authorization)
        products: [] = products_service.get_products(auth_user.id)
        for product in products:
            del product.user_id
        return products
    except ApiException as exception:
        return __handle_rest_api_exception(response, exception)
    except Exception as exception:
        return __handle_unexpected_exception(response)
def delete_product(product_id: str,
                   response: Response,
                   authorization: str = Header(None)):
    try:
        auth_user = cognito_auth.verify_token(authorization)
        validate_product_id(product_id)
        products_service.delete_product(auth_user.id, product_id)
        return {}
    except ApiException as exception:
        return __handle_rest_api_exception(response, exception)
    except Exception as exception:
        return __handle_unexpected_exception(response)
def create_product(product_dto: ProductCreateDto,
                   response: Response,
                   authorization: str = Header(None)):
    try:
        auth_user = cognito_auth.verify_token(authorization)
        product_dto.validate_model()
        product: Product = product_dto.parse_to_product()
        product.user_id = auth_user.id

        products_service.create_product(product)

        response.headers.append("Location", "/produtos/{}".format(product.id))
        return {}
    except ApiException as exception:
        return __handle_rest_api_exception(response, exception)
    except Exception as exception:
        return __handle_unexpected_exception(response)
def patch_product(product_id: str,
                  product_dto: ProductPatchDto,
                  response: Response,
                  authorization: str = Header(None)):
    try:
        auth_user = cognito_auth.verify_token(authorization)
        validate_product_id(product_id)
        product_dto.validate_model()

        product: Product = product_dto.parse_to_product()
        product.id = product_id
        product.user_id = auth_user.id

        products_service.update_product(product, UPDATE_ONLY_FILLED_FIELDS)
        return {}
    except ApiException as exception:
        return __handle_rest_api_exception(response, exception)
    except Exception as exception:
        return __handle_unexpected_exception(response)
Exemple #5
0
    def test_should_raise_authentication_exception_when_token_is_invalid(self):
        expected_exception = exceptions.get(
            exceptions.USER_NOT_AUTHORIZED_EXCEPTION)

        with self.assertRaises(ApiException) as context:
            cognito_auth.verify_token(self.DEFAULT_NONE_TOKEN)

        self.assertEqual(expected_exception.code, context.exception.code)

        with self.assertRaises(ApiException) as context:
            cognito_auth.verify_token(self.DEFAULT_WITHOUT_BEARER_TOKEN)

        self.assertEqual(expected_exception.code, context.exception.code)

        with self.assertRaises(ApiException) as context:
            cognito_auth.verify_token(self.DEFAULT_WITH_EMPTY_TOKEN)

        self.assertEqual(expected_exception.code, context.exception.code)