Added SMS message delete handler

This commit is contained in:
Carlos Rivas 2024-08-22 13:27:56 -07:00
parent a6539fbe1b
commit 3aea98c315
3 changed files with 26 additions and 8 deletions

20
app.py
View file

@ -8,7 +8,12 @@ from fastapi.responses import JSONResponse
from loggerino import timestamp_log_config from loggerino import timestamp_log_config
from os import getenv from os import getenv
from schemas import SMSMessage from schemas import SMSMessage
from service import inbound_sms_handler, retrieve_sms_messages_by_phone_number from service import (
receive_sms_messages_handler,
retrieve_sms_messages_by_phone_number_handler,
delete_sms_message_by_uuid_handler
)
from uuid import UUID
from uvicorn.config import LOGGING_CONFIG from uvicorn.config import LOGGING_CONFIG
@ -40,16 +45,21 @@ async def validate_ip(request: Request, call_next):
@app.post("/sms-message", status_code=status.HTTP_200_OK) @app.post("/sms-message", status_code=status.HTTP_200_OK)
async def receive_sms_message(message: SMSMessage): async def post_sms_message(message: SMSMessage):
inbound_sms_handler(message) receive_sms_messages_handler(message)
@app.get('/sms-message/{number}') @app.get('/sms-message/{number}', status_code=status.HTTP_200_OK)
def get_sms_messages_by_phone_number(number: str, cost: bool = False, metadata: bool = False): def get_sms_messages_by_phone_number(number: str, cost: bool = False, metadata: bool = False):
contact = retrieve_sms_messages_by_phone_number(number, cost, metadata) contact = retrieve_sms_messages_by_phone_number_handler(number, cost, metadata)
return {'status': 'success', 'results': len(contact), 'response': contact} return {'status': 'success', 'results': len(contact), 'response': contact}
@app.delete('/sms-message/{uuid}', status_code=status.HTTP_202_ACCEPTED)
def delete_sms_message_by_uuid(uuid: UUID):
delete_sms_message_by_uuid_handler(uuid)
if __name__ == "__main__": if __name__ == "__main__":
uvicorn.run( uvicorn.run(
app, host="0.0.0.0", port=8000, log_config=timestamp_log_config(LOGGING_CONFIG) app, host="0.0.0.0", port=8000, log_config=timestamp_log_config(LOGGING_CONFIG)

BIN
flowsms.db Normal file

Binary file not shown.

View file

@ -2,10 +2,11 @@ from database import get_db
from dtos import to_db, to_db_existing_contact from dtos import to_db, to_db_existing_contact
from models import SMSContact, SMSMessage as SMSDBMessage from models import SMSContact, SMSMessage as SMSDBMessage
from schemas import SMSMessage from schemas import SMSMessage
from sqlalchemy.orm import joinedload, selectinload from sqlalchemy.orm import selectinload
from uuid import UUID
def inbound_sms_handler(message: SMSMessage) -> None: def receive_sms_messages_handler(message: SMSMessage) -> None:
db = next(get_db()) db = next(get_db())
payload = None payload = None
@ -22,7 +23,7 @@ def inbound_sms_handler(message: SMSMessage) -> None:
db.refresh(payload) db.refresh(payload)
def retrieve_sms_messages_by_phone_number(number: str, include_cost: bool, include_metadata: bool) -> SMSContact: def retrieve_sms_messages_by_phone_number_handler(number: str, include_cost: bool, include_metadata: bool) -> SMSContact:
db = next(get_db()) db = next(get_db())
query = db.query(SMSContact).filter(SMSContact.phone_number == number) query = db.query(SMSContact).filter(SMSContact.phone_number == number)
@ -36,3 +37,10 @@ def retrieve_sms_messages_by_phone_number(number: str, include_cost: bool, inclu
if response is not None: if response is not None:
return response.messages return response.messages
return [] return []
def delete_sms_message_by_uuid_handler(uuid: UUID):
db = next(get_db())
query = db.query(SMSDBMessage).filter(SMSDBMessage.id == uuid).delete()
db.commit()
print(query)