dialogflowAPI / common /response /response_code.py
OnlyBiggg
'refactor'
5564ecb
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import dataclasses
from enum import Enum
class CustomCodeBase(Enum):
@property
def code(self) -> int:
return self.value[0]
@property
def msg(self) -> str:
return self.value[1]
class CustomResponseCode(CustomCodeBase):
HTTP_200 = (200, 'Request successful')
HTTP_201 = (201, 'Resource created')
HTTP_202 = (202, 'Request accepted but not completed yet')
HTTP_204 = (204, 'Request successful but no content returned')
HTTP_400 = (400, 'Bad request')
HTTP_401 = (401, 'Unauthorized')
HTTP_403 = (403, 'Forbidden')
HTTP_404 = (404, 'Resource not found')
HTTP_410 = (410, 'Resource permanently deleted')
HTTP_422 = (422, 'Invalid parameters')
HTTP_425 = (425, 'Too early, server can’t handle it')
HTTP_429 = (429, 'Too many requests')
HTTP_500 = (500, 'Internal server error')
HTTP_502 = (502, 'Bad gateway')
HTTP_503 = (503, 'Service unavailable')
HTTP_504 = (504, 'Gateway timeout')
class CustomErrorCode(CustomCodeBase):
CAPTCHA_ERROR = (40001, 'The verification code is incorrect')
@dataclasses.dataclass
class CustomResponse:
"""
Provides an open-style response structure.
Useful if you want to define response code & message freely.
"""
code: int
msg: str
class StandardResponseCode:
"""
HTTP codes
See HTTP Status Code Registry:
https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
And RFC 2324 - https://tools.ietf.org/html/rfc2324
"""
HTTP_100 = 100 # CONTINUE:
HTTP_101 = 101 # SWITCHING_PROTOCOLS:
HTTP_102 = 102 # PROCESSING:
HTTP_103 = 103 # EARLY_HINTS:
HTTP_200 = 200 # OK:
HTTP_201 = 201 # CREATED:
HTTP_202 = 202 # ACCEPTED:
HTTP_203 = 203 # NON_AUTHORITATIVE_INFORMATION:
HTTP_204 = 204 # NO_CONTENT:
HTTP_205 = 205 # RESET_CONTENT:
HTTP_206 = 206 # PARTIAL_CONTENT:
HTTP_207 = 207 # MULTI_STATUS:
HTTP_208 = 208 # ALREADY_REPORTED:
HTTP_226 = 226 # IM_USED:
HTTP_300 = 300 # MULTIPLE_CHOICES:
HTTP_301 = 301 # MOVED_PERMANENTLY:
HTTP_302 = 302 # FOUND:
HTTP_303 = 303 # SEE_OTHER:
HTTP_304 = 304 # NOT_MODIFIED:
HTTP_305 = 305 # USE_PROXY:
HTTP_307 = 307 # TEMPORARY_REDIRECT:
HTTP_308 = 308 # PERMANENT_REDIRECT:
HTTP_400 = 400 # BAD_REQUEST:
HTTP_401 = 401 # UNAUTHORIZED:
HTTP_402 = 402 # PAYMENT_REQUIRED:
HTTP_403 = 403 # FORBIDDEN:
HTTP_404 = 404 # NOT_FOUND:
HTTP_405 = 405 # METHOD_NOT_ALLOWED:
HTTP_406 = 406 # NOT_ACCEPTABLE:
HTTP_407 = 407 # PROXY_AUTHENTICATION_REQUIRED:
HTTP_408 = 408 # REQUEST_TIMEOUT:
HTTP_409 = 409 # CONFLICT:
HTTP_410 = 410 # GONE:
HTTP_411 = 411 # LENGTH_REQUIRED:
HTTP_412 = 412 # PRECONDITION_FAILED:
HTTP_413 = 413 # REQUEST_ENTITY_TOO_LARGE:
HTTP_414 = 414 # REQUEST_URI_TOO_LONG:
HTTP_415 = 415 # UNSUPPORTED_MEDIA_TYPE:
HTTP_416 = 416 # REQUESTED_RANGE_NOT_SATISFIABLE:
HTTP_417 = 417 # EXPECTATION_FAILED:
HTTP_418 = 418 # UNUSED:
HTTP_421 = 421 # MISDIRECTED_REQUEST:
HTTP_422 = 422 # UNPROCESSABLE_CONTENT:
HTTP_423 = 423 # LOCKED:
HTTP_424 = 424 # FAILED_DEPENDENCY:
HTTP_425 = 425 # TOO_EARLY:
HTTP_426 = 426 # UPGRADE_REQUIRED:
HTTP_427 = 427 # UNASSIGNED:
HTTP_428 = 428 # PRECONDITION_REQUIRED:
HTTP_429 = 429 # TOO_MANY_REQUESTS:
HTTP_430 = 430 # Unassigned:
HTTP_431 = 431 # REQUEST_HEADER_FIELDS_TOO_LARGE:
HTTP_451 = 451 # UNAVAILABLE_FOR_LEGAL_REASONS:
HTTP_500 = 500 # INTERNAL_SERVER_ERROR:
HTTP_501 = 501 # NOT_IMPLEMENTED:
HTTP_502 = 502 # BAD_GATEWAY:
HTTP_503 = 503 # SERVICE_UNAVAILABLE:
HTTP_504 = 504 # GATEWAY_TIMEOUT:
HTTP_505 = 505 # HTTP_VERSION_NOT_SUPPORTED: HTTP
HTTP_506 = 506 # VARIANT_ALSO_NEGOTIATES:
HTTP_507 = 507 # INSUFFICIENT_STORAGE:
HTTP_508 = 508 # LOOP_DETECTED:
HTTP_509 = 509 # UNASSIGNED:
HTTP_510 = 510 # NOT_EXTENDED:
HTTP_511 = 511 # NETWORK_AUTHENTICATION_REQUIRED:
"""
WebSocket codes
https://www.iana.org/assignments/websocket/websocket.xml#close-code-number
https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent
"""
WS_1000 = 1000 # NORMAL_CLOSURE:
WS_1001 = 1001 # GOING_AWAY:
WS_1002 = 1002 # PROTOCOL_ERROR:
WS_1003 = 1003 # UNSUPPORTED_DATA:
WS_1005 = 1005 # NO_STATUS_RCVD:
WS_1006 = 1006 # ABNORMAL_CLOSURE:
WS_1007 = 1007 # INVALID_FRAME_PAYLOAD_DATA:
WS_1008 = 1008 # POLICY_VIOLATION:
WS_1009 = 1009 # MESSAGE_TOO_BIG:
WS_1010 = 1010 # MANDATORY_EXT:
WS_1011 = 1011 # INTERNAL_ERROR:
WS_1012 = 1012 # SERVICE_RESTART:
WS_1013 = 1013 # TRY_AGAIN_LATER:
WS_1014 = 1014 # BAD_GATEWAY:
WS_1015 = 1015 # TLS_HANDSHAKE:
WS_3000 = 3000 # UNAUTHORIZED:
WS_3003 = 3003 # FORBIDDEN: