Skip to content

Centralize status string constants across API routes #8

Description

@e-lo

Problem

Status strings (`'pending'`, `'approved'`, `'published'`, `'rejected'`, `'cancelled'`) are scattered as bare string literals across 10+ API routes and admin pages:

  • `events/submit.ts`: `status: 'pending'`
  • `events-staged/approve.ts`: `status: 'approved'`
  • `events-staged/reject.ts`: `status: 'rejected'`
  • `announcements/submit.ts`: `status: 'pending'`
  • `announcements/approve.ts`: `status: 'published'`
  • Admin dashboard JS: status badge rendering with string comparisons

Proposed Solution

Add status enums to `src/lib/constants.ts`:
```typescript
export const EVENT_STATUS = {
PENDING: 'pending',
APPROVED: 'approved',
REJECTED: 'rejected',
CANCELLED: 'cancelled',
} as const;

export const ANNOUNCEMENT_STATUS = {
PENDING: 'pending',
PUBLISHED: 'published',
REJECTED: 'rejected',
} as const;
```

Impact

Prevents typo bugs, enables autocomplete, single source of truth.

Metadata

Metadata

Assignees

No one assigned

    Labels

    refactorCode cleanup and deduplication

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions