diff --git a/src/main.py b/src/main.py index d2bc978..012393f 100644 --- a/src/main.py +++ b/src/main.py @@ -8,7 +8,7 @@ import db import requests from fastapi import FastAPI, Request, HTTPException, status, Form from fastapi.staticfiles import StaticFiles -from fastapi.responses import RedirectResponse +from fastapi.responses import RedirectResponse, JSONResponse from fastapi.templating import Jinja2Templates from contextlib import asynccontextmanager from tortoise.contrib.fastapi import RegisterTortoise @@ -94,6 +94,7 @@ async def list_redirects(): @app.post("/api/create", response_model=db.RedirectPydantic) async def create_redirect( + response: JSONResponse, destination: str = Form(...), expires: typing.Optional[datetime.datetime] = Form(None), max_visits: typing.Optional[int] = Form(None), @@ -108,6 +109,7 @@ async def create_redirect( existing = await db.Redirect.get_or_none(destination=destination) if existing is not None: + response.status_code = 200 return await db.RedirectPydantic.from_tortoise_orm(existing) match slug_type: @@ -135,6 +137,7 @@ async def create_redirect( while await db.Redirect.get_or_none(slug=slug) is not None: slug = secrets.token_urlsafe(slug_length // 2) redirect = await db.Redirect.create(destination=destination, expires=expires, max_visits=max_visits, slug=slug) + response.status_code = 201 return await db.RedirectPydantic.from_tortoise_orm(redirect)