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 usernamerole
→ Filter announcements by user roleyear
→ Filter announcements by module yearpinned
→ Filter by pinned statussort
→ 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"
}