Skip to main content

User Vacation Days API

General notes

Api for managing User's Vacation days.

Content

User vacation days collection:

Single record:

User vacation days amounts collection

Create user vacation days amounts

POST /api/v0/user-vacation-days

To create new record this method needs permission create on userVacationDaysAmounts.

Method for creating new UserVacationDaysAmount.

Request

ParamTypeDescriptionRequirements
yearintYearRequired. Must be year 2000 and later.
daysintVacation's end dateRequired. Must be an integer.
user_idintApproval stateRequired.

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 read on userVacationDaysAmounts.

Get list of existing UserVacationDaysAmounts.

Request

Index behaviourDefinition
Paginated by defaultNo
Sortingid, year, user_id, days
Filtersid: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 read on userVacationDaysAmounts.

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 update on userVacationDaysAmounts.

Method for updating UserVacationDaysAmount data.

Request

ParamTypeDescriptionRequirements
yearintYearRequired. Must be year 2000 and later.
daysintAvailable daysRequired. Must be an integer.
user_idintUser identifierRequired.

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 delete on userVacationDaysAmounts.

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"
}