Source code for schema.response

from marshmallow import Schema, validate
from marshmallow.fields import Bool, Constant, Integer, Nested, Str

from lib.response import (
    BadRequestResponse,
    ConflictResponse,
    ContentResponse,
    CreatedResponse,
    InternalServerErrorResponse,
    NoContentResponse,
    NotAcceptableResponse,
    NotFoundResponse,
    NotModifiedResponse,
    OkResponse,
    ResetContentResponse,
    UnauthorizedResponse,
    UnprocEntityResponse,
    UnsupportedMediaTypeResponse,
)

RESPONSE_STATUS = [
    BadRequestResponse.status(),
    ConflictResponse.status(),
    ContentResponse.status(),
    CreatedResponse.status(),
    NoContentResponse.status(),
    NotAcceptableResponse.status(),
    NotFoundResponse.status(),
    NotModifiedResponse.status(),
    OkResponse.status(),
    ResetContentResponse.status(),
    UnauthorizedResponse.status(),
    UnprocEntityResponse.status(),
    UnsupportedMediaTypeResponse.status(),
]

RESPONSE_CODES = [
    BadRequestResponse.code,
    ConflictResponse.code,
    ContentResponse.code,
    CreatedResponse.code,
    NoContentResponse.code,
    NotAcceptableResponse.code,
    NotFoundResponse.code,
    NotModifiedResponse.code,
    OkResponse.code,
    ResetContentResponse.code,
    UnauthorizedResponse.code,
    UnprocEntityResponse.code,
    UnsupportedMediaTypeResponse.code,
]


[docs]class ExceptionResponseSchema(Schema): reason = Str( required=True, example="Connection timeout", description="Exception reason.", ) filename = Str( required=True, example="lib/connection.py", description="Filename where the exception is raised.", ) line = Integer( required=True, example=80, description="Line where the exception is raised.", )
[docs]class BaseResponseSchema(Schema): """Response for the item creation.""" status = Str( required=True, enum=RESPONSE_STATUS, example=RESPONSE_STATUS[0], description="HTTP Status Code phrase.", validate=validate.OneOf(RESPONSE_STATUS), ) error = Bool( default=False, example=False, description="Indicate the presence of an error", ) message = Str( required=True, example="Request not valid: two ids provided.", description="Human readable message that describes " "the status of the operation.", ) # noqa:E501 exception = Nested( ExceptionResponseSchema, description="Message of the occurred exception.", ) code = Integer( required=True, enum=RESPONSE_CODES, example=RESPONSE_CODES[0], description="HTTP Status Code.", validate=validate.OneOf(RESPONSE_CODES), )
[docs]class BadRequestResponseSchema(BaseResponseSchema): status = Constant(constant=BadRequestResponse.status()) error = Constant(constant=BadRequestResponse.error) code = Constant(constant=BadRequestResponse.code)
[docs]class ConflictResponseSchema(BaseResponseSchema): status = Constant(constant=ConflictResponse.status()) error = Constant(constant=ConflictResponse.error) code = Constant(constant=ConflictResponse.code)
[docs]class CreatedResponseSchema(BaseResponseSchema): status = Constant(CreatedResponse.status()) error = Constant(CreatedResponse.error) code = Constant(CreatedResponse.code)
class InternalServerErrorResponseSchema(BaseResponseSchema): status = Constant(InternalServerErrorResponse.status()) error = Constant(InternalServerErrorResponse.error) code = Constant(InternalServerErrorResponse.code)
[docs]class NoContentResponseSchema(BaseResponseSchema): status = Constant(NoContentResponse.status()) error = Constant(NoContentResponse.error) code = Constant(NoContentResponse.code)
[docs]class NotAcceptableResponseSchema(BaseResponseSchema): status = Constant(NotAcceptableResponse.status()) error = Constant(NotAcceptableResponse.error) code = Constant(NotAcceptableResponse.code)
[docs]class NotFoundResponseSchema(BaseResponseSchema): status = Constant(NotFoundResponse.status()) error = Constant(NotFoundResponse.error) code = Constant(NotFoundResponse.code)
[docs]class NotModifiedResponseSchema(BaseResponseSchema): status = Constant(NotModifiedResponse.status()) error = Constant(NotModifiedResponse.error) code = Constant(NotModifiedResponse.code)
[docs]class OkResponseSchema(BaseResponseSchema): status = Constant(OkResponse.status()) error = Constant(OkResponse.error) code = Constant(OkResponse.code)
[docs]class ContentResponseSchema(OkResponseSchema): status = Constant(ContentResponse.status()) error = Constant(ContentResponse.error) code = Constant(ContentResponse.code)
[docs]class ResetContentResponseSchema(BaseResponseSchema): status = Constant(ResetContentResponse.status()) error = Constant(ResetContentResponse.error) code = Constant(ResetContentResponse.code)
[docs]class UnauthorizedResponseSchema(BaseResponseSchema): status = Constant(UnauthorizedResponse.status()) error = Constant(UnauthorizedResponse.error) code = Constant(UnauthorizedResponse.code)
[docs]class UnprocessableEntityResponseSchema(BaseResponseSchema): status = Constant(UnprocEntityResponse.status()) error = Constant(UnprocEntityResponse.error) code = Constant(UnprocEntityResponse.code)
[docs]class UnsupportedMediaTypeResponseSchema(BaseResponseSchema): status = Constant(UnsupportedMediaTypeResponse.status()) error = Constant(UnsupportedMediaTypeResponse.error) code = Constant(UnsupportedMediaTypeResponse.code)