Function get_my_announcements

Source
pub async fn get_my_announcements(
    __arg0: State<AppState>,
    __arg1: Extension<AuthUser>,
    __arg2: Query<FilterReq>,
) -> impl IntoResponse
Expand description

Retrieves announcements for the currently authenticated user.

Endpoint: GET /my/announcements
Permissions: User must be associated with at least one module (student, tutor, lecturer, assistant)

§Query parameters

  • page → Page number (default: 1)
  • per_page → Number of items per page (default: 20, max: 100)
  • query → Search query in announcement title, module code, or username
  • role → Filter announcements by user role
  • year → Filter announcements by module year
  • pinned → Filter by pinned status
  • sort → Sort announcements by fields (e.g., created_at,-updated_at)

§Responses

  • 200 OK → Announcements retrieved successfully
{
  "success": true,
  "data": {
    "announcements": [ /* Announcement objects */ ],
    "page": 1,
    "per_page": 20,
    "total": 42
  },
  "message": "Announcements retrieved"
}
  • 500 Internal Server Error → Failed to retrieve announcements
{
  "success": false,
  "data": null,
  "message": "Failed to retrieve announcements"
}