refactor: update migration paths and improve database operation handling
This commit is contained in:
1
backend/app/queries/__init__.py
Normal file
1
backend/app/queries/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
from __future__ import annotations
|
||||
50
backend/app/queries/organizations.py
Normal file
50
backend/app/queries/organizations.py
Normal file
@@ -0,0 +1,50 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from uuid import UUID
|
||||
|
||||
from sqlmodel import col
|
||||
|
||||
from app.db.queryset import QuerySet, qs
|
||||
from app.models.organization_board_access import OrganizationBoardAccess
|
||||
from app.models.organization_invites import OrganizationInvite
|
||||
from app.models.organization_members import OrganizationMember
|
||||
from app.models.organizations import Organization
|
||||
|
||||
|
||||
def organization_by_name(name: str) -> QuerySet[Organization]:
|
||||
return qs(Organization).filter(col(Organization.name) == name)
|
||||
|
||||
|
||||
def member_by_user_and_org(*, user_id: UUID, organization_id: UUID) -> QuerySet[OrganizationMember]:
|
||||
return qs(OrganizationMember).filter(
|
||||
col(OrganizationMember.organization_id) == organization_id,
|
||||
col(OrganizationMember.user_id) == user_id,
|
||||
)
|
||||
|
||||
|
||||
def first_membership_for_user(user_id: UUID) -> QuerySet[OrganizationMember]:
|
||||
return (
|
||||
qs(OrganizationMember)
|
||||
.filter(col(OrganizationMember.user_id) == user_id)
|
||||
.order_by(col(OrganizationMember.created_at).asc())
|
||||
)
|
||||
|
||||
|
||||
def pending_invite_by_email(email: str) -> QuerySet[OrganizationInvite]:
|
||||
return (
|
||||
qs(OrganizationInvite)
|
||||
.filter(col(OrganizationInvite.accepted_at).is_(None))
|
||||
.filter(col(OrganizationInvite.invited_email) == email)
|
||||
.order_by(col(OrganizationInvite.created_at).asc())
|
||||
)
|
||||
|
||||
|
||||
def board_access_for_member_and_board(
|
||||
*,
|
||||
organization_member_id: UUID,
|
||||
board_id: UUID,
|
||||
) -> QuerySet[OrganizationBoardAccess]:
|
||||
return qs(OrganizationBoardAccess).filter(
|
||||
col(OrganizationBoardAccess.organization_member_id) == organization_member_id,
|
||||
col(OrganizationBoardAccess.board_id) == board_id,
|
||||
)
|
||||
Reference in New Issue
Block a user