Function get_my_tickets

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

Retrieves tickets for the currently authenticated user.

Endpoint: GET /my/tickets
Permissions:

  • Students see only their own tickets
  • Lecturers and assistants see tickets from other users in modules they are assigned to

§Query parameters

  • page → Page number (default: 1)
  • per_page → Number of items per page (default: 20, max: 100)
  • query → Search tickets by title, module code, assignment name, and username (staff only)
  • role → Filter tickets by user role
  • year → Filter tickets by module year
  • status → Filter tickets by ticket status
  • sort → Sort tickets by fields (e.g., created_at,-updated_at)

§Responses

  • 200 OK → Tickets retrieved successfully
{
  "success": true,
  "data": {
    "tickets": [ /* Ticket objects */ ],
    "page": 1,
    "per_page": 20,
    "total": 42
  },
  "message": "Tickets retrieved successfully"
}
  • 400 Bad Request → Invalid status value
{
  "success": false,
  "data": null,
  "message": "Invalid status value"
}
  • 500 Internal Server Error → Failed to retrieve tickets
{
  "success": false,
  "data": null,
  "message": "Failed to retrieve tickets"
}