# Booking

# Manage movie bookings#

## Book tickets for a movie#

Used to book tickets for a specific movie

URL: `/api/v1/cinema/booking`

Method: `POST`

Auth required: Yes

Feature required: CinemaFeature

Data constraints

{
"movie_id": "[required|numeric]",
"ticket_amount": "[required|numeric]"
}

Data example

{
"movie_id": 1,
"ticket_amount": 10
}

### Success response#

Condition: Movie exists and ticket amount is not above available tickets

Code: `200`

Content example

{
"msg": "Reservation successful",
"movie_booking": {
"id": 115,
"user_id": 33,
"movie_id": 13,
"amount": 2,
"created_at": "2019-11-15 14:19:22",
"updated_at": "2019-11-15 14:19:43",
"cancel_booking": {
"href": "api/v1/cinema/booking/13",
"method": "DELETE"
}
}
}

### Error response#

#### Movie not found#

Condition: Movie id was not found

Code: `404`

Content example

{
"msg": "Movie not found",
"error_code": "movie_not_found"
}

#### Movie sold out#

Condition: There are not enough available tickets for your booking

Code: `400`

Content example

{
"msg": "The movie is sold out",
"error_code": "not_enough_available_tickets"
}

## Cancel reservation for a movie#

Used to cancel a reservation

URL: `/api/v1/cinema/booking/{movieId}`

Method: `DELETE`

Auth required: Yes

Feature required: CinemaFeature

### Success response#

Condition: Movie exists and ticket amount is not above available tickets

Code: `200`

Content example

{
"msg": "Booking successful removed"
}

### Error response#

#### Movie not found#

Condition: Movie id was not found

Code: `404`

Content example

{
"msg": "Movie not found",
"error_code": "movie_not_found"
}
Edit this page

- Book tickets for a movie
  - Success response
  - Error response
- Cancel reservation for a movie
  - Success response
  - Error response