flowsms/dtos.py
2024-08-22 00:49:09 -07:00

55 lines
1.9 KiB
Python

from models import SMSMessage as SMSDBMessage, SMSContact, SMSCost, SMSMetadata
from schemas import SMSMessage
def to_db(message: SMSMessage) -> SMSContact:
payload = message.data.attributes
sms_metadata = SMSMetadata()
sms_metadata.message_callback_url = payload.message_callback_url
sms_metadata.message_encoding = payload.message_encoding
sms_metadata.message_type = payload.message_type
sms_metadata.status = payload.status
sms_cost = SMSCost()
sms_cost.amount_display = payload.amount_display
sms_cost.amount_nanodollars = payload.amount_nanodollars
sms_message = SMSDBMessage()
sms_message.from_number = payload.from_number
sms_message.direction = payload.direction
sms_message.is_mms = payload.is_mms
sms_message.message = payload.message
sms_message.timestamp = payload.timestamp
sms_message.cost = sms_cost
sms_message.sms_metadata = sms_metadata
sms_contact = SMSContact()
sms_contact.phone_number = payload.to_number
sms_contact.messages = [sms_message]
return sms_contact
def to_db_existing_contact(message: SMSMessage) -> SMSDBMessage:
payload = message.data.attributes
sms_metadata = SMSMetadata()
sms_metadata.message_callback_url = payload.message_callback_url
sms_metadata.message_encoding = payload.message_encoding
sms_metadata.message_type = payload.message_type
sms_metadata.status = payload.status
sms_cost = SMSCost()
sms_cost.amount_display = payload.amount_display
sms_cost.amount_nanodollars = payload.amount_nanodollars
sms_message = SMSDBMessage()
sms_message.from_number = payload.from_number
sms_message.direction = payload.direction
sms_message.is_mms = payload.is_mms
sms_message.message = payload.message
sms_message.timestamp = payload.timestamp
sms_message.cost = sms_cost
sms_message.sms_metadata = sms_metadata
return sms_message