This document provides a detailed overview of the REST API endpoints for the Flight Tracker System. All responses are wrapped in a RootEntity object unless otherwise specified.
Base URL: http://localhost:8080/rest/api
Authentication: Bearer Token (Authorization: Bearer <token>)
🔐 Authentication (Auth)
POST /auth/register
- Description: Creates a new passenger account.
- Payload:
UserDto.CreateRequest(firstName, lastName, email, password, phoneNumber)
POST /auth/login
- Description: Authenticates user and returns a JWT.
- Payload:
AuthDto.Request(email, password) - Response:
AuthDto.Response(token, email)
👤 User Management (User)
GET /user/me (Auth Required)
- Description: Returns the authenticated user's profile information.
- Response:
UserDto.Info
POST /user/save (Admin Required)
- Payload:
UserDto.CreateRequest
POST /user/activatePOST /user/deactivate- Auth: Admin Required
- Payload:
UserDto.StatusChangeRequest(email)
✈️ Flight Operations (Flight)
GET /flight/list (Auth Required)
- Description: Returns all flights.
GET /flight/{id} (Auth Required)
POST /flight/create (Tower/Admin Only)
- Payload:
FlightDto.CreateRequest
PUT /flight/update-status/{id}?status={STATUS} (Tower/Admin Only)
- Query Param:
status(ON_TIME, DELAYED, CANCELLED, etc.)
PUT /flight/{flightId}/assign-captain/{captainId} (Tower/Admin Only)
DELETE /flight/delete/{id} (Admin Only)
🏢 Airport & Aircraft (Infrastructure)
GET /airport/list(Auth Required)GET /airport/{id}(Auth Required)POST /airport/create(Admin Only, Payload:AirportDto.Request)DELETE /airport/delete/{id}(Admin Only)
GET /aircraft/list(Admin/Tower/Captain Required)GET /aircraft/{id}(Admin/Tower/Captain Required)POST /aircraft/create(Admin Only, Payload:AircraftDto.Request)DELETE /aircraft/delete/{id}(Admin Only)
🎫 Ticket & Booking (Ticket)
POST /ticket/book (Auth Required)
- Description: Books a seat on a flight and deducts balance.
- Payload:
TicketDto.BookingRequest(flightId, seatNumber, paymentMethod)
GET /ticket/my-tickets (Auth Required)
POST /ticket/check-in/{pnrCode} (Auth Required)
- Description: Confirms flight check-in via PNR.
GET /ticket/flight/{flightId}/seats (Auth Required)
- Description: Returns seat occupancy for a specific flight.
PUT /ticket/cancel/{id} (Auth Required)
💳 SkyWallet (Wallet)
GET /wallet/balance (Auth Required)
- Response:
BigDecimal(Remaining balance)
POST /wallet/add-funds?amount={BigDecimal} (Auth Required)
- Description: Increases the user's balance.
🔔 Notifications (Notification)
GET /notifications (Auth Required)
- Description: Returns all notifications for the authenticated user.
GET /notifications/unread-count (Auth Required)
- Response:
Long(Count of unread notifications)
PUT /notifications/{id}/read (Auth Required)
- Response:
Boolean(Success status)
🌤️ Weather (Weather)
GET /weather/{city}
- Description: Returns a simplified weather object.
- Response:
{"city": "...", "condition": "...", "temp": "..."}
All errors follow this standard structure:
{
"exception": {
"createTime": "...",
"message": "Detailed error message",
"path": "/api/..."
},
"status": 400
}