From 0569bc50cf0e5a283ce511903d3c4d9f464ce1ab Mon Sep 17 00:00:00 2001 From: Joaquin Bonora <92407663+Noborita9@users.noreply.github.com> Date: Thu, 9 Mar 2023 20:00:15 -0300 Subject: [PATCH] Replace integer status codes with Enum values of StatusCodes (#436) * replace integer status codes with Enum values of StatusCodes * change imports to first import it to __init__.py and the re-export it * fix circular import --- robyn/__init__.py | 3 ++- robyn/router.py | 7 ++++--- robyn/templating.py | 4 +++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/robyn/__init__.py b/robyn/__init__.py index 92cb24dc8..0d5dd05d5 100644 --- a/robyn/__init__.py +++ b/robyn/__init__.py @@ -18,6 +18,7 @@ from robyn.robyn import FunctionInfo, Response from robyn.router import MiddlewareRouter, Router, WebSocketRouter from robyn.types import Directory, Header +from robyn.status_codes import StatusCodes from robyn.ws import WS @@ -315,4 +316,4 @@ def inner(handler): return inner -__all__ = ["Robyn", "jsonify", "serve_file", "serve_html", "Response"] +__all__ = ["Robyn", "jsonify", "serve_file", "serve_html", "Response", "StatusCodes"] diff --git a/robyn/router.py b/robyn/router.py index cde86c8fa..8ca37b813 100644 --- a/robyn/router.py +++ b/robyn/router.py @@ -6,6 +6,7 @@ from typing import Callable, Dict, List, Tuple, Union from robyn.robyn import FunctionInfo, Response +from robyn.status_codes import StatusCodes from robyn.ws import WS Route = Tuple[str, str, FunctionInfo, bool] @@ -26,7 +27,7 @@ def __init__(self) -> None: def _format_response(self, res): response = {} if isinstance(res, dict): - status_code = res.get("status_code", 200) + status_code = res.get("status_code", StatusCodes.HTTP_200_OK.value) headers = res.get("headers", {"Content-Type": "text/plain"}) body = res.get("body", "") @@ -41,13 +42,13 @@ def _format_response(self, res): response = res elif isinstance(res, bytes): response = Response( - status_code=200, + status_code=StatusCodes.HTTP_200_OK.value, headers={"Content-Type": "application/octet-stream"}, body=res, ) else: response = Response( - status_code=200, + status_code=StatusCodes.HTTP_200_OK.value, headers={"Content-Type": "text/plain"}, body=str(res).encode("utf-8"), ) diff --git a/robyn/templating.py b/robyn/templating.py index 8310f144f..b987beb0e 100644 --- a/robyn/templating.py +++ b/robyn/templating.py @@ -1,5 +1,7 @@ from abc import ABC, abstractmethod +from robyn.status_codes import StatusCodes + from .robyn import Response from jinja2 import Environment, FileSystemLoader @@ -25,7 +27,7 @@ def __init__(self, directory, encoding="utf-8", followlinks=False): def render_template(self, template_name, **kwargs) -> Response: rendered_template = self.env.get_template(template_name).render(**kwargs) return Response( - status_code=200, + status_code=StatusCodes.HTTP_200_OK.value, body=rendered_template, headers={"Content-Type": "text/html; charset=utf-8"}, )