User Vacation Days API
General notes
Api for managing User's Vacation days.
Content
User vacation days collection:
- [POST] create user-vacation-days-amounts
- [GET] index, searching and filtering user-vacation-days-amounts
Single record:
- [GET] user-vacation-days-amount detail
- [PUT/PATCH] update user-vacation-days-amount
- [DELETE] delete user-vacation-days-amount
User vacation days amounts collection
Create user vacation days amounts
POST /api/v0/user-vacation-days
To create new record this method needs permission
createonuserVacationDaysAmounts.
Method for creating new UserVacationDaysAmount.
Request
| Param | Type | Description | Requirements |
|---|---|---|---|
year | int | Year | Required. Must be year 2000 and later. |
days | int | Vacation's end date | Required. Must be an integer. |
user_id | int | Approval state | Required. |
Year and user_id must be a unique combination.
Setting days automatically sets original_days.
POST /api/v0/user-vacation-days HTTP/1.1
Content-Type: application/json
{
"year": 2022,
"user_id": 2,
"days": 28
}
Responses
201 CREATED
New UserVacationDaysAmount was successfully created.
POST /api/v0/user-vacation-days HTTP/1.1
Content-Type: application/json
Status-Code: 201
{
"id": 5,
"days": 28,
"original_days": 28,
"year": 2022,
"user_id": 2
}
422 UNPROCESSABLE ENTITY
Validation error occurred. Cannot set second record in the same year for a specific user.
POST /api/v0/user-vacation-days HTTP/1.1
Content-Type: application/json
Status-Code: 422
{
"type": "ValidationError",
"message": "The given data was invalid.",
"id": "030cb243-8c4f-4e0b-b0b4-a4d4708a6456",
"errors": [
{
"field": "year",
"message": "Pole musí být unikátní."
},
{
"field": "user_id",
"message": "Pole musí být unikátní."
}
]
}
User vacation days amounts index
GET /api/v0/user-vacation-days
This method needs permission
readonuserVacationDaysAmounts.
Get list of existing UserVacationDaysAmounts.
Request
| Index behaviour | Definition |
|---|---|
| Paginated by default | No |
| Sorting | id, year, user_id, days |
| Filters | id:enum, year:enum , user_id:enum, days:enum |
GET /api/v0/user-vacation-days HTTP/1.1
Responses
200 OK
GET /api/v0/user-vacation-days HTTP/1.1
Content-Type: application/json
Status-Code: 200
{
"items": [
{
"id": 1,
"days": 0,
"original_days": 28
"year": 2022,
"user_id": 2
},
{
"id": 2,
"days": 15,
"original_days": 24
"year": 2023,
"user_id": 1
},
{
"id": 3,
"days": 30,
"original_days": 30
"year": 2024,
"user_id": 1
}
]
}
Single user vacation days amount
Vacation detail
GET /api/v0/user-vacation-days/{userVacationDays_id}
This method needs permission
readonuserVacationDaysAmounts.
Get UserVacationDaysAmount detail.
Request
GET /api/v0/user-vacation-days/1 HTTP/1.1
Responses
200 OK
GET /api/v0/user-vacation-days/1 HTTP/1.1
Content-Type: application/json
Status-Code: 200
{
"id": 1,
"days": 21,
"original_days": 28
"year": 2022,
"user_id": 2
}
404 NOT FOUND
UserVacationDaysAmount was not found.
GET /api/v0/user-vacation-days/5 HTTP/1.1
Content-Type: application/json
Status-Code: 404
{
"type": "NotFound",
"message": "No query results for model.",
"id": "0cd85449-05fe-4866-9802-8192e6785fc7"
}
Update user vacation days amount
PUT/PATCH /api/v0/user-vacation-days/{userVacationDays_id}
This method needs permission
updateonuserVacationDaysAmounts.
Method for updating UserVacationDaysAmount data.
Request
| Param | Type | Description | Requirements |
|---|---|---|---|
year | int | Year | Required. Must be year 2000 and later. |
days | int | Available days | Required. Must be an integer. |
user_id | int | User identifier | Required. |
Updating days via this endpoint also automatically updates original_days.
PUT /api/v0/user-vacation-days/1 HTTP/1.1
Content-Type: application/json
{ "days": 10, "year": 2028, "user_id": 1 }
### Responses
#### 200 OK
[UserVacationDaysAmount](/docs/api/data-types/user-vacation-days-amount) successfully updated.
```json
PUT /api/v0/user-vacation-days/1 HTTP/1.1
Content-Type: application/json
Status-Code: 200
{
"id": 1,
"days": 10,
"original_days": 10,
"year": 2028,
"user_id": 1
}
404 NOT FOUND
UserVacationDaysAmount was not found.
PUT /api/v0/vacations/2 HTTP/1.1
Content-Type: application/json
Status-Code: 404
{
"type": "NotFound",
"message": "No query results for model.",
"id": "0cd85449-05fe-4866-9802-8192e6785fc7"
}
422 UNPROCESSABLE ENTITY
Validation error occurred.
PATCH /api/v0/user-vacation-days/1 HTTP/1.1
Content-Type: application/json
Status-Code: 422
{
"type": "ValidationError",
"message": "The given data was invalid.",
"id": "303b0a87-e5b2-47a1-88b4-c09731b3b9e2",
"errors": [
{
"field": "year",
"message": "Pole musí být unikátní."
},
{
"field": "user_id",
"message": "Pole musí být unikátní."
}
]
}
Delete user vacation days amount
DELETE /api/v0/user-vacation-days/{userVacationDays_id}
This method needs permission
deleteonuserVacationDaysAmounts.
Method for deleting UserVacationDaysAmount.
Request
DELETE /api/v0/user-vacation-days/1 HTTP/1.1
Responses
204 NO CONTENT
UserVacationDaysAmount successfully deleted.
DELETE /api/v0/user-vacation-days/1 HTTP/1.1
Status-Code: 204
404 NOT FOUND
UserVacationDaysAmount was not found.
DELETE /api/v0/user-vacation-days/1 HTTP/1.1
Content-Type: application/json
Status-Code: 404
{
"type": "NotFound",
"message": "No query results for model.",
"id": "0cd85449-05fe-4866-9802-8192e6785fc7"
}