✨ implement http status codes
This commit is contained in:
parent
878af4465a
commit
8774739861
1 changed files with 17 additions and 5 deletions
22
main.py
22
main.py
|
@ -1,5 +1,5 @@
|
||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
from fastapi import Depends, FastAPI, HTTPException
|
from fastapi import Depends, FastAPI, HTTPException, status, Response
|
||||||
from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer
|
from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer
|
||||||
|
|
||||||
import hsadmin
|
import hsadmin
|
||||||
|
@ -14,8 +14,8 @@ def check_token(token: str) -> bool:
|
||||||
"""Check if the token is valid"""
|
"""Check if the token is valid"""
|
||||||
return token == config.token
|
return token == config.token
|
||||||
|
|
||||||
@app.put("/list/{listname}")
|
@app.put("/list/{listname}", status_code=status.HTTP_201_CREATED)
|
||||||
def create_list(token: Annotated[HTTPAuthorizationCredentials, Depends(security)], listname: str):
|
def create_list(token: Annotated[HTTPAuthorizationCredentials, Depends(security)], listname: str, response: Response):
|
||||||
|
|
||||||
# Authenticate
|
# Authenticate
|
||||||
if not check_token(token.credentials):
|
if not check_token(token.credentials):
|
||||||
|
@ -23,15 +23,23 @@ def create_list(token: Annotated[HTTPAuthorizationCredentials, Depends(security)
|
||||||
|
|
||||||
# Create email
|
# Create email
|
||||||
api = hsadmin.login()
|
api = hsadmin.login()
|
||||||
|
|
||||||
|
# If the email already exists, return an error
|
||||||
if hsadmin.email_exists(api, config.domain, listname):
|
if hsadmin.email_exists(api, config.domain, listname):
|
||||||
|
response.status_code = status.HTTP_409_CONFLICT
|
||||||
return {"Success": "false", "Message": "list already exists"}
|
return {"Success": "false", "Message": "list already exists"}
|
||||||
|
|
||||||
|
# Create the email
|
||||||
result = hsadmin.add_email(api, config.listsuser, config.domain, listname)
|
result = hsadmin.add_email(api, config.listsuser, config.domain, listname)
|
||||||
if result == True:
|
if result == True:
|
||||||
return {"Success": "true"}
|
return {"Success": "true"}
|
||||||
|
|
||||||
|
# If the email could not be created, return an error
|
||||||
|
response.status_code = status.HTTP_500_INTERNAL_SERVER_ERROR
|
||||||
return {"Success": "false", "Message": result}
|
return {"Success": "false", "Message": result}
|
||||||
|
|
||||||
@app.delete("/list/{listname}")
|
@app.delete("/list/{listname}", status_code=status.HTTP_200_OK)
|
||||||
def delete_list(token: Annotated[HTTPAuthorizationCredentials, Depends(security)], listname: str):
|
def delete_list(token: Annotated[HTTPAuthorizationCredentials, Depends(security)], listname: str, response: Response):
|
||||||
|
|
||||||
# Authenticate
|
# Authenticate
|
||||||
if not check_token(token.credentials):
|
if not check_token(token.credentials):
|
||||||
|
@ -40,8 +48,12 @@ def delete_list(token: Annotated[HTTPAuthorizationCredentials, Depends(security)
|
||||||
# Delete email
|
# Delete email
|
||||||
api = hsadmin.login()
|
api = hsadmin.login()
|
||||||
if not hsadmin.email_exists(api, config.domain, listname):
|
if not hsadmin.email_exists(api, config.domain, listname):
|
||||||
|
response.status_code = status.HTTP_404_NOT_FOUND
|
||||||
return {"Success": "false", "Message": "list does not exist"}
|
return {"Success": "false", "Message": "list does not exist"}
|
||||||
result = hsadmin.remove_email(api, config.listsuser, config.domain, listname)
|
result = hsadmin.remove_email(api, config.listsuser, config.domain, listname)
|
||||||
if result == True:
|
if result == True:
|
||||||
return {"Success": "true"}
|
return {"Success": "true"}
|
||||||
|
|
||||||
|
# If the email could not be deleted, return an error
|
||||||
|
response.status_code = status.HTTP_500_INTERNAL_SERVER_ERROR
|
||||||
return {"Success": "false", "Message": result}
|
return {"Success": "false", "Message": result}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue