Skip to content

Backend Services Map

Autogenerated map of routers, services, and repositories.

Routers

auth.py

  • Module: app.api.routers.auth

Functions

Function Signature
login (payload: app.schemas.auth.LoginRequest)
logout ()
register (payload: app.schemas.auth.RegisterRequest)

invites.py

  • Module: app.api.routers.invites

Functions

Function Signature
accept_invite (inviteId: beanie.odm.fields.PydanticObjectId) -> app.models.invite.Invite
create_invite (payload: app.schemas.invite.InviteCreate) -> app.models.invite.Invite
decline_invite (inviteId: beanie.odm.fields.PydanticObjectId) -> app.models.invite.Invite
delete_invite (invite_id: beanie.odm.fields.PydanticObjectId) -> None
get_invite (invite_id: beanie.odm.fields.PydanticObjectId) -> app.models.invite.Invite
list_invites () -> list[app.models.invite.Invite]
list_invites_by_technician (technician_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.invite.Invite]
list_pending_invites_by_technician (technician_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.invite.Invite]
update_invite (invite_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.invite.InviteUpdate) -> app.models.invite.Invite

messages.py

  • Module: app.api.routers.messages

Functions

Function Signature
create_message (thread_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.message.MessageCreate, current_user: app.models.user.User = Depends(get_current_user)) -> app.schemas.message.MessageResponse
create_thread (pool_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.message_thread.MessageThreadCreate, current_user: app.models.user.User = Depends(get_current_user)) -> app.models.message_thread.MessageThread
get_message (message_id: beanie.odm.fields.PydanticObjectId, current_user: app.models.user.User = Depends(get_current_user)) -> app.schemas.message.MessageResponse
get_thread (thread_id: beanie.odm.fields.PydanticObjectId, current_user: app.models.user.User = Depends(get_current_user)) -> app.models.message_thread.MessageThread
list_messages (thread_id: beanie.odm.fields.PydanticObjectId, current_user: app.models.user.User = Depends(get_current_user)) -> list[app.schemas.message.MessageResponse]
list_threads (pool_id: beanie.odm.fields.PydanticObjectId, status_filter: Optional[str] = Query(None), current_user: app.models.user.User = Depends(get_current_user)) -> list[app.schemas.message_thread.MessageThreadListItem]
update_message (message_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.message.MessageUpdate, current_user: app.models.user.User = Depends(get_current_user)) -> app.schemas.message.MessageResponse
update_thread (thread_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.message_thread.MessageThreadUpdate, current_user: app.models.user.User = Depends(get_current_user)) -> app.models.message_thread.MessageThread
upload_message_photo (thread_id: beanie.odm.fields.PydanticObjectId, message_id: beanie.odm.fields.PydanticObjectId, file: fastapi.datastructures.UploadFile = File(PydanticUndefined), description: str \| None = Form(None), current_user: app.models.user.User = Depends(get_current_user)) -> app.schemas.message.MessageResponse

photos.py

  • Module: app.api.routers.photos

Functions

Function Signature
delete_photo (photo_id: beanie.odm.fields.PydanticObjectId) -> None
get_pool_photo (pool_id: beanie.odm.fields.PydanticObjectId)
get_user_profile_photo (user_id: beanie.odm.fields.PydanticObjectId) -> app.schemas.photo.PhotoResponse
list_visit_photos (visit_id: beanie.odm.fields.PydanticObjectId) -> list[app.schemas.photo.PhotoResponse]
upload_pool_photo (pool_id: beanie.odm.fields.PydanticObjectId, file: fastapi.datastructures.UploadFile = File(PydanticUndefined), uploaded_by: beanie.odm.fields.PydanticObjectId \| None = Form(None), description: str \| None = Form(None))
upload_user_profile_photo (user_id: beanie.odm.fields.PydanticObjectId, file: fastapi.datastructures.UploadFile = File(PydanticUndefined), uploaded_by: beanie.odm.fields.PydanticObjectId \| None = Form(None), description: str \| None = Form(None)) -> app.schemas.photo.PhotoResponse
upload_visit_photo (visit_id: beanie.odm.fields.PydanticObjectId, file: fastapi.datastructures.UploadFile = File(PydanticUndefined), uploaded_by: beanie.odm.fields.PydanticObjectId \| None = Form(None), description: str \| None = Form(None)) -> app.schemas.photo.PhotoResponse

pool_values.py

  • Module: app.api.routers.pool_values

Functions

Function Signature
create_pool_values (payload: app.schemas.pool_values.PoolValuesCreate) -> app.models.pool_values.PoolValues
delete_pool_values (pool_values_id: beanie.odm.fields.PydanticObjectId) -> None
get_pool_values (pool_values_id: beanie.odm.fields.PydanticObjectId) -> app.models.pool_values.PoolValues
list_pool_values () -> list[app.models.pool_values.PoolValues]
update_pool_values (pool_values_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.pool_values.PoolValuesUpdate) -> app.models.pool_values.PoolValues

pools.py

  • Module: app.api.routers.pools

Functions

Function Signature
create_pool (payload: app.schemas.pool.PoolCreate) -> app.models.pool.Pool
create_pool_visit (poolId: beanie.odm.fields.PydanticObjectId, payload: app.schemas.visit.CreatePoolVisitRequest) -> dict[str, object]
delete_pool (pool_id: beanie.odm.fields.PydanticObjectId) -> None
get_alert_config (pool_id: beanie.odm.fields.PydanticObjectId) -> app.models.alert_config.AlertConfig
get_pool (pool_id: beanie.odm.fields.PydanticObjectId) -> app.models.pool.Pool
get_pool_dashboard (poolId: beanie.odm.fields.PydanticObjectId) -> app.schemas.pool_dashboard.PoolDashboardResponse
invite_technician_by_email (pool_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.invite.InviteByEmailRequest, ownerId: beanie.odm.fields.PydanticObjectId = Query(PydanticUndefined)) -> app.models.invite.Invite
list_pool_visits (poolId: beanie.odm.fields.PydanticObjectId) -> list[app.models.visit.Visit]
list_pools (ownerId: Optional[beanie.odm.fields.PydanticObjectId] = Query(None)) -> list[app.models.pool.Pool]
list_pools_by_owner (user_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.pool.Pool]
list_pools_by_technician (tech_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.pool.Pool]
remove_pool_technician (pool_id: beanie.odm.fields.PydanticObjectId, technician_id: beanie.odm.fields.PydanticObjectId) -> None
update_pool (pool_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.pool.PoolUpdate) -> app.models.pool.Pool
upsert_alert_config (pool_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.alert_config.AlertConfigUpsert) -> app.models.alert_config.AlertConfig

users.py

  • Module: app.api.routers.users

Functions

Function Signature
change_my_password (payload: app.schemas.user.ChangePasswordRequest, current_user: app.models.user.User = Depends(get_current_user)) -> dict[str, str]
create_user (payload: app.schemas.user.UserCreate) -> app.models.user.User
get_me (current_user: app.models.user.User = Depends(get_current_user)) -> app.models.user.User
get_user (user_id: beanie.odm.fields.PydanticObjectId) -> app.models.user.User
list_users () -> list[app.models.user.User]
soft_delete_user (user_id: beanie.odm.fields.PydanticObjectId)
update_user (user_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.user.UserUpdate) -> app.models.user.User

visits.py

  • Module: app.api.routers.visits

Functions

Function Signature
create_visit (payload: app.schemas.visit.VisitCreate) -> app.models.visit.Visit
delete_visit (visit_id: beanie.odm.fields.PydanticObjectId) -> None
get_visit (visit_id: beanie.odm.fields.PydanticObjectId) -> app.models.visit.Visit
list_visits () -> list[app.models.visit.Visit]
update_visit (visit_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.visit.VisitUpdate) -> app.models.visit.Visit

Services

auth_service.py

  • Module: app.services.auth_service

Functions

Function Signature
login (payload: app.schemas.auth.LoginRequest) -> tuple[str, dict[str, str]]
register (payload: app.schemas.auth.RegisterRequest) -> tuple[str, dict[str, str]]

azure_blob_service.py

  • Module: app.services.azure_blob_service

Classes

  • AzureBlobService

invite_service.py

  • Module: app.services.invite_service

Functions

Function Signature
accept_invite (invite_id: beanie.odm.fields.PydanticObjectId) -> app.models.invite.Invite
create_invite (payload: app.schemas.invite.InviteCreate) -> app.models.invite.Invite
create_invite_for_pool_by_email (pool_id: beanie.odm.fields.PydanticObjectId, owner_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.invite.InviteByEmailRequest) -> app.models.invite.Invite
decline_invite (invite_id: beanie.odm.fields.PydanticObjectId) -> app.models.invite.Invite
delete_invite (invite_id: beanie.odm.fields.PydanticObjectId) -> None
get_invite (invite_id: beanie.odm.fields.PydanticObjectId) -> app.models.invite.Invite
list_invites () -> list[app.models.invite.Invite]
list_invites_by_technician (technician_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.invite.Invite]
list_pending_invites_by_technician (technician_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.invite.Invite]
update_invite (invite_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.invite.InviteUpdate) -> app.models.invite.Invite

message_service.py

  • Module: app.services.message_service

Functions

Function Signature
create_message (thread_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.message.MessageCreate, current_user: app.models.user.User) -> app.schemas.message.MessageResponse
create_thread (pool_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.message_thread.MessageThreadCreate, current_user: app.models.user.User) -> app.models.message_thread.MessageThread
get_blob_service () -> app.services.azure_blob_service.AzureBlobService
get_message (message_id: beanie.odm.fields.PydanticObjectId, current_user: app.models.user.User) -> app.schemas.message.MessageResponse
get_thread (thread_id: beanie.odm.fields.PydanticObjectId, current_user: app.models.user.User) -> app.models.message_thread.MessageThread
list_messages (thread_id: beanie.odm.fields.PydanticObjectId, current_user: app.models.user.User) -> list[app.schemas.message.MessageResponse]
list_threads (pool_id: beanie.odm.fields.PydanticObjectId, current_user: app.models.user.User, status_filter: Optional[str] = None) -> list[app.schemas.message_thread.MessageThreadListItem]
update_message (message_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.message.MessageUpdate, current_user: app.models.user.User) -> app.schemas.message.MessageResponse
update_thread (thread_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.message_thread.MessageThreadUpdate, current_user: app.models.user.User) -> app.models.message_thread.MessageThread
upload_message_photo_and_return_message (thread_id: beanie.odm.fields.PydanticObjectId, message_id: beanie.odm.fields.PydanticObjectId, file: fastapi.datastructures.UploadFile, current_user: app.models.user.User, description: str \| None = None) -> app.schemas.message.MessageResponse

photo_service.py

  • Module: app.services.photo_service

Functions

Function Signature
delete_photo (photo_id: beanie.odm.fields.PydanticObjectId) -> None
get_blob_service () -> app.services.azure_blob_service.AzureBlobService
get_pool_photo (pool_id: beanie.odm.fields.PydanticObjectId) -> app.schemas.photo.PhotoResponse
get_user_profile_photo (user_id: beanie.odm.fields.PydanticObjectId) -> app.schemas.photo.PhotoResponse
list_message_photos (message_id: beanie.odm.fields.PydanticObjectId) -> list[app.schemas.photo.PhotoResponse]
list_visit_photos (visit_id: beanie.odm.fields.PydanticObjectId) -> list[app.schemas.photo.PhotoResponse]
upload_message_photo (thread_id: beanie.odm.fields.PydanticObjectId, message_id: beanie.odm.fields.PydanticObjectId, file: fastapi.datastructures.UploadFile, uploaded_by: beanie.odm.fields.PydanticObjectId \| None = None, description: str \| None = None) -> app.schemas.photo.PhotoResponse
upload_pool_photo (pool_id: beanie.odm.fields.PydanticObjectId, file: fastapi.datastructures.UploadFile, uploaded_by: beanie.odm.fields.PydanticObjectId \| None = None, description: str \| None = None) -> app.schemas.photo.PhotoResponse
upload_user_profile_photo (user_id: beanie.odm.fields.PydanticObjectId, file: fastapi.datastructures.UploadFile, uploaded_by: beanie.odm.fields.PydanticObjectId \| None = None, description: str \| None = None) -> app.schemas.photo.PhotoResponse
upload_visit_photo (visit_id: beanie.odm.fields.PydanticObjectId, file: fastapi.datastructures.UploadFile, uploaded_by: beanie.odm.fields.PydanticObjectId \| None = None, description: str \| None = None) -> app.schemas.photo.PhotoResponse

pool_service.py

  • Module: app.services.pool_service

Functions

Function Signature
create_pool (payload: app.schemas.pool.PoolCreate) -> app.models.pool.Pool
delete_pool (pool_id: beanie.odm.fields.PydanticObjectId) -> None
get_alert_config (pool_id: beanie.odm.fields.PydanticObjectId) -> app.models.alert_config.AlertConfig
get_pool (pool_id: beanie.odm.fields.PydanticObjectId) -> app.models.pool.Pool
get_pool_dashboard (pool_id: beanie.odm.fields.PydanticObjectId) -> app.schemas.pool_dashboard.PoolDashboardResponse
list_by_owner (user_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.pool.Pool]
list_by_technician (tech_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.pool.Pool]
list_pools (owner_id: Optional[beanie.odm.fields.PydanticObjectId] = None) -> list[app.models.pool.Pool]
remove_pool_technician (pool_id: beanie.odm.fields.PydanticObjectId, technician_id: beanie.odm.fields.PydanticObjectId) -> None
update_pool (pool_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.pool.PoolUpdate) -> app.models.pool.Pool
upsert_alert_config (pool_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.alert_config.AlertConfigUpsert) -> app.models.alert_config.AlertConfig

pool_values_service.py

  • Module: app.services.pool_values_service

Functions

Function Signature
create_pool_values (payload: app.schemas.pool_values.PoolValuesCreate) -> app.models.pool_values.PoolValues
delete_pool_values (pool_values_id: beanie.odm.fields.PydanticObjectId) -> None
get_pool_values (pool_values_id: beanie.odm.fields.PydanticObjectId) -> app.models.pool_values.PoolValues
list_pool_values () -> list[app.models.pool_values.PoolValues]
update_pool_values (pool_values_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.pool_values.PoolValuesUpdate) -> app.models.pool_values.PoolValues

user_service.py

  • Module: app.services.user_service

Functions

Function Signature
change_my_password (current_user: app.models.user.User, payload: app.schemas.user.ChangePasswordRequest) -> dict[str, str]
create_user (payload: app.schemas.user.UserCreate) -> app.models.user.User
get_user (user_id: beanie.odm.fields.PydanticObjectId) -> app.models.user.User
list_users () -> list[app.models.user.User]
soft_delete_user (user_id: beanie.odm.fields.PydanticObjectId) -> app.models.user.User
update_user (user_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.user.UserUpdate) -> app.models.user.User

visit_service.py

  • Module: app.services.visit_service

Functions

Function Signature
create_pool_visit_with_values (pool_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.visit.CreatePoolVisitRequest) -> dict[str, object]
create_visit (payload: app.schemas.visit.VisitCreate) -> app.models.visit.Visit
delete_visit (visit_id: beanie.odm.fields.PydanticObjectId) -> None
get_visit (visit_id: beanie.odm.fields.PydanticObjectId) -> app.models.visit.Visit
list_pool_visits (pool_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.visit.Visit]
list_visits () -> list[app.models.visit.Visit]
update_visit (visit_id: beanie.odm.fields.PydanticObjectId, payload: app.schemas.visit.VisitUpdate) -> app.models.visit.Visit

Repositories

alert_config_repo.py

  • Module: app.repositories.alert_config_repo

Functions

Function Signature
create_alert_config (alert_config: app.models.alert_config.AlertConfig) -> app.models.alert_config.AlertConfig
get_by_pool_id (pool_id: beanie.odm.fields.PydanticObjectId) -> Optional[app.models.alert_config.AlertConfig]
save_alert_config (alert_config: app.models.alert_config.AlertConfig) -> app.models.alert_config.AlertConfig

auth_repo.py

  • Module: app.repositories.auth_repo

Functions

Function Signature
create_user (user: app.models.user.User) -> app.models.user.User
get_user_by_email (email: str) -> Optional[app.models.user.User]
save_last_login (user: app.models.user.User) -> app.models.user.User

invite_repo.py

  • Module: app.repositories.invite_repo

Functions

Function Signature
create_invite (invite: app.models.invite.Invite) -> app.models.invite.Invite
delete_invite (invite: app.models.invite.Invite) -> None
get_invite (invite_id: beanie.odm.fields.PydanticObjectId) -> Optional[app.models.invite.Invite]
get_pending_by_pool_and_technician (pool_id: beanie.odm.fields.PydanticObjectId, technician_id: beanie.odm.fields.PydanticObjectId) -> Optional[app.models.invite.Invite]
list_by_technician (technician_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.invite.Invite]
list_invites () -> list[app.models.invite.Invite]
list_pending_by_technician (technician_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.invite.Invite]
save_invite (invite: app.models.invite.Invite) -> app.models.invite.Invite

message_repo.py

  • Module: app.repositories.message_repo

Functions

Function Signature
count_by_thread (thread_id: beanie.odm.fields.PydanticObjectId) -> int
create_message (message: app.models.message.Message) -> app.models.message.Message
delete_message (message: app.models.message.Message) -> None
get_message (message_id: beanie.odm.fields.PydanticObjectId) -> Optional[app.models.message.Message]
list_by_thread (thread_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.message.Message]
save_message (message: app.models.message.Message) -> app.models.message.Message

message_thread_repo.py

  • Module: app.repositories.message_thread_repo

Functions

Function Signature
create_thread (thread: app.models.message_thread.MessageThread) -> app.models.message_thread.MessageThread
delete_thread (thread: app.models.message_thread.MessageThread) -> None
get_thread (thread_id: beanie.odm.fields.PydanticObjectId) -> Optional[app.models.message_thread.MessageThread]
list_by_pool (pool_id: beanie.odm.fields.PydanticObjectId, status: Optional[str] = None) -> list[app.models.message_thread.MessageThread]
save_thread (thread: app.models.message_thread.MessageThread) -> app.models.message_thread.MessageThread

photo_repo.py

  • Module: app.repositories.photo_repo

Functions

Function Signature
create_photo (photo: app.models.photo.Photo) -> app.models.photo.Photo
delete_photo (photo: app.models.photo.Photo) -> None
get_photo (photo_id: beanie.odm.fields.PydanticObjectId) -> Optional[app.models.photo.Photo]
get_pool_photo (pool_id: beanie.odm.fields.PydanticObjectId) -> Optional[app.models.photo.Photo]
get_user_profile_photo (user_id: beanie.odm.fields.PydanticObjectId) -> Optional[app.models.photo.Photo]
list_message_photos (message_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.photo.Photo]
list_pool_photos (pool_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.photo.Photo]
list_thread_message_photos (thread_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.photo.Photo]
list_thread_photos (thread_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.photo.Photo]
list_visit_photos (visit_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.photo.Photo]
save_photo (photo: app.models.photo.Photo) -> app.models.photo.Photo

pool_repo.py

  • Module: app.repositories.pool_repo

Functions

Function Signature
create_pool (pool: app.models.pool.Pool) -> app.models.pool.Pool
delete_pool (pool: app.models.pool.Pool) -> None
get_pool (pool_id: beanie.odm.fields.PydanticObjectId) -> Optional[app.models.pool.Pool]
list_by_owner (owner_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.pool.Pool]
list_by_technician (tech_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.pool.Pool]
list_pools (owner_id: Optional[beanie.odm.fields.PydanticObjectId] = None) -> list[app.models.pool.Pool]
remove_technician (pool: app.models.pool.Pool, technician_id: beanie.odm.fields.PydanticObjectId) -> app.models.pool.Pool
update_pool (pool: app.models.pool.Pool) -> app.models.pool.Pool

pool_values_repo.py

  • Module: app.repositories.pool_values_repo

Functions

Function Signature
create_pool_values (pool_values: app.models.pool_values.PoolValues) -> app.models.pool_values.PoolValues
delete_pool_values (pool_values: app.models.pool_values.PoolValues) -> None
get_pool_values (pool_values_id: beanie.odm.fields.PydanticObjectId) -> Optional[app.models.pool_values.PoolValues]
list_by_pool (pool_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.pool_values.PoolValues]
list_pool_values () -> list[app.models.pool_values.PoolValues]
save_pool_values (pool_values: app.models.pool_values.PoolValues) -> app.models.pool_values.PoolValues

user_repo.py

  • Module: app.repositories.user_repo

Functions

Function Signature
create_user (user: app.models.user.User) -> app.models.user.User
get_by_email (email: str) -> Optional[app.models.user.User]
get_user (user_id: beanie.odm.fields.PydanticObjectId) -> Optional[app.models.user.User]
list_users () -> list[app.models.user.User]
save_user (user: app.models.user.User) -> app.models.user.User
soft_delete (user: app.models.user.User) -> app.models.user.User

visit_repo.py

  • Module: app.repositories.visit_repo

Functions

Function Signature
create_visit (visit: app.models.visit.Visit) -> app.models.visit.Visit
delete_visit (visit: app.models.visit.Visit) -> None
get_visit (visit_id: beanie.odm.fields.PydanticObjectId) -> Optional[app.models.visit.Visit]
list_by_pool (pool_id: beanie.odm.fields.PydanticObjectId) -> list[app.models.visit.Visit]
list_visits () -> list[app.models.visit.Visit]
save_visit (visit: app.models.visit.Visit) -> app.models.visit.Visit