Skip to main content

Services Directory

Location: src/services/

Purpose: Data access layer that abstracts Supabase queries and business logic.

Structure

services/
├── acessCheck/
│ └── acessCheck.ts # Access checking service

├── campaign/ # Campaign data services
│ ├── checkIfAlreadyActiveRate.ts
│ ├── checkInviteToken.ts
│ ├── fetch_campaign_circulator_view.ts
│ ├── fetchRateRecordEdit.ts
│ ├── fetchTransactionRecordEdit.ts
│ ├── getCampaignBySlug.ts
│ ├── getCampaigns.ts
│ ├── getCampaignsForUser.ts
│ └── getCampaignSlugSuperAdmin.ts

├── credentials/
│ └── fetchCredentialsRecordEdit.ts

├── permission-sets/ # Responsibilities services
│ ├── fetchCampaignPermissionSets.ts
│ ├── fetchPermissionAllSets.ts
│ ├── fetchPermissionSetEdit.ts
│ └── fetchTeamPermissionSets.ts

├── permissions/ # Permission services
│ ├── fetchPermissionKeyEdit.ts
│ ├── fetchPermissionKeysList.ts
│ ├── fetchRoleEdit.ts
│ ├── fetchRoles.ts
│ └── fetchRolesForTeam.ts

├── petitions/ # Petition services
│ ├── createNewPetition.ts
│ ├── getDefaultCountyByUser.ts
│ ├── getLastestValueByUserInPetitions.ts
│ ├── getPetitionById.ts
│ ├── getPetitionFormatById.ts
│ ├── getPetitionFormatForEdit.ts
│ ├── getPetitionsFormatForCampaign.ts
│ ├── getPetitionsForUser.ts
│ ├── getPreviousBlockListOfPetition.ts
│ ├── getPreviousSelectedFormat.ts
│ ├── getRecentCirculators.ts
│ └── getSessionBasedTurnInDate.ts

├── teams/ # Team services
│ ├── checkMemberToken.ts
│ ├── fetchSubTeams.ts
│ ├── getMemberToken.ts
│ ├── getSubTeamById.ts
│ ├── getSubTeamForEdit.ts
│ ├── getTeamById.ts
│ ├── getTeamForEdit.ts
│ ├── getTeamMemberForEdit.ts
│ └── getUserTeams.ts

└── user/ # User services
├── getAuthUser.ts
├── getUserByEmailClient.ts
└── getUserList.ts

Service Characteristics

  • Server-only: All services use "use server" directive
  • Type-safe: Return standardized QueryResponse types
  • Supabase Integration: Use server-side Supabase client
  • Business Logic: Encapsulate complex queries and data transformations
  • Reusability: Used by Server Actions and Server Components