Movie House API - lenlaurito/movie-house GitHub Wiki
Functionalities
- Add Movie
- Update Movie
- Delete Movie
- Show Movies
- Add Movie Schedule
- Update Movie Schedule
- Delete Movie Schedule
- Show Movie Schedules
Add Movie
Request:
POST /api/v1/movie
Status Code: 201
Request Body: Add Movie Response
Sample Request Body:
{
"name": "The Invisible Guest",
"genre": "Psychological",
"duration": "1:45:00",
"description": "sehgerhnjlgsndfjk"
}
Response Body: Movie Response
Sample Response Body:
{
"id": 1,
"name": "The Invisible Guest",
"genre": "Psychological",
"duration": "1:45:00",
"description": "sehgerhnjlgsndfjk"
}
Update Movie
Request:
PUT /api/v1/movie/{id}
Sample Request:
PUT /api/v1/movie/1
Status Code: 200 or 204
Request Body: Update Movie Response
Sample Request Body:
{
"name": "The Invisible Guest",
"genre": "Psychological",
"duration": "1:45:00",
"description": "updated movie"
}
Response Body: None
Delete Movie
Request:
DELETE /api/v1/movie/{id}
Sample Request:
DELETE /api/v1/movie/1
Status Code: 204
Response Body: None
Show Movies
Request:
GET /api/v1/movie
Parameters: None
Status Code: 200
Sample Response Body:
[
{
"id": 1,
"name": "The Invisible Guest",
"genre": "Psychological",
"duration": "1:45:00",
"description": "sehgerhnjlgsndfjk"
},
{
"id": 2,
"name": "Avengers: Infinity War",
"genre": "Action, Fantasy",
"duration": "2:30:00",
"description": "sjdghvfhjabsfhbashf"
}
]
Show Movies by Genre
Request:
GET /api/v1/movie?genre={genre}
Parameters:
Field | Description | Required |
---|---|---|
genre | Genre of the movie | true |
offset | Starting point of pagination | false (default: 1) |
max | Maximum number of offset | false (default: 10) |
Status Code: 200
Sample Request:
GET /api/v1/movie?genre=Psychological&offset=1&max=2
Sample Response Body:
[
{
"id": 1,
"name": "The Invisible Guest",
"genre": "Psychological",
"duration": "1:45:00",
"description": "sehgerhnjlgsndfjk"
},
{
"id": 2,
"name": "Se7en",
"genre": "Psychological",
"duration": "1:50:00",
"description": "sjdghvfhjabsfhbashf"
}
]
Show Movies by Name
Request:
GET /api/v1/movie?name={name}
Parameters:
Field | Description | Required |
---|---|---|
name | Genre of the movie | true |
offset | Starting point of pagination | false (default: 1) |
max | Maximum number of offset | false (default: 10) |
Status Code: 200
Sample Request:
GET /api/v1/movie?name=Die Hard&offset=1&max=2
Sample Response Body:
[
{
"id": 1,
"name": "Die Hard",
"genre": "Action",
"duration": "1:45:00",
"description": "sehgerhnjlgsndfjk"
},
{
"id": 2,
"name": "Die Hard 2",
"genre": "Psychological",
"duration": "1:50:00",
"description": "sjdghvfhjabsfhbashf"
}
]
Show Movies by Genre and Name
Request:
GET /api/v1/movie?genre={genre}&name={name}
Parameters:
Field | Description | Required |
---|---|---|
genre | Genre of the movie | true |
name | Name of the movie | true |
offset | Starting point of pagination | false (default: 1) |
max | Maximum number of offset | false (default: 10) |
Status Code: 200
Sample Request:
GET /api/v1/movie?genre=Action&name=Die Hard&offset=1&max=2
Sample Response Body:
[
{
"id": 1,
"name": "Die Hard",
"genre": "Action",
"duration": "1:45:00",
"description": "sehgerhnjlgsndfjk"
},
{
"id": 2,
"name": "Die Hard 2",
"genre": "Action",
"duration": "1:50:00",
"description": "sjdghvfhjabsfhbashf"
}
]
Show Movies by ID
Request:
GET /api/v1/movie/{id}
Parameters:
Field | Description | Required |
---|---|---|
id | id of the movie | true |
Status Code: 200
Sample Request:
GET /api/v1/movie/1
Sample Response Body:
{
"id": 1,
"name": "Die Hard",
"genre": "Action",
"duration": "1:45:00",
"description": "sehgerhnjlgsndfjk"
}
Add Movie Schedule
Request:
POST /api/v1/movie-schedule
Status Code: 201
Request Body: Add Movie Schedule
Sample Request Body:
{
"movieId": 1,
"startDateTime": "01/25/2019",
"endDateTime": "02/01/2019"
}
Response Body: Movie Schedule Response
Sample Response Body:
{
"id": 1,
"startDateTime": "01/25/2019",
"endDateTime": "02/01/2019",
"movie": {
"id": 1,
"name": "Avengers: Infinity War",
"genre": "Action",
"duration": "2:30:00",
"description": "asfshugujhjus"
}
}
Update Movie Schedule
Request:
PUT /api/v1/movie-schedule/{id}
Sample Request:
PUT /api/v1/movie-schedule/1
Status Code: 200 or 204
Request Body: Movie Response
Sample Request Body:
{
"startDateTime": "01/25/2019",
"endDateTime": "02/08/2019",
"movieId": 1
}
Response Body: None
Delete Movie Schedule
Request:
DELETE /api/v1/movie-schedule/{id}
Sample Request:
DELETE /api/v1/movie-schedule/1
Status Code: 204
Response Body: None
Show Movie Schedules
Request:
GET /api/v1/movie
Parameters: None
Status Code: 200
Sample Response Body:
[
{
"id": 1,
"startDateTime": "01/25/2019",
"endDateTime": "02/08/2019",
"movie": {
"id": 1,
"name": "Avengers: Infinity War",
"genre": "Action",
"duration": "2:30:00",
"description": "asfshugujhjus"
}
},
{
"id": 2,
"startDateTime": "02/09/2019",
"endDateTime": "02/16/2019",
"movie": {
"id": 1,
"name": "Avengers: Infinity War",
"genre": "Action",
"duration": "2:30:00",
"description": "asfshugujhjus"
}
}
]
Show Movie Schedules by Movie
Request:
GET /api/v1/movie-schedule?movieId={movieId}
Parameters:
Field | Description | Required |
---|---|---|
movieId | id of the movie schedule | true |
offset | Starting point of pagination | false (default: 1) |
max | Maximum number of offset | false (default: 10) |
Status Code: 200
Sample Request:
GET /api/v1/movie-schedule?movieId=1&offset=1&max=2
Sample Response Body:
[
{
"id": 1,
"startDateTime": "01/25/2019",
"endDateTime": "02/08/2019",
"movie": {
"id": 1,
"name": "Avengers: Infinity War",
"genre": "Action",
"duration": "2:30:00",
"description": "asfshugujhjus"
}
},
{
"id": 2,
"startDateTime": "01/25/2019",
"endDateTime": "02/08/2019",
"movie": {
"id": 1,
"name": "Avengers: Infinity War",
"genre": "Action",
"duration": "2:30:00",
"description": "asfshugujhjus"
}
}
]
Show Movie Schedules by Day
Request:
GET /api/v1/movie-schedule?startDateTime={startDateTime}&endDateTime{endDateTime}
Parameters:
Field | Description | Required |
---|---|---|
startDateTime | Date of Movie Schedule | true |
endDateTime | Date of Movie Schedule | true |
offset | Starting point of pagination | false (default: 1) |
max | Maximum number of offset | false (default: 10) |
Status Code: 200
Sample Request:
`GET /api/v1/movie-schedule?startDateTime=01252019T08:00:00.00&endDateTime=1252019T20:00:00.00
Sample Response Body:
[
{
"id": 1,
"startDateTime": "01/25/2019 ",
"endDateTime": "02/08/2019",
"movie": {
"id": 1,
"name": "Avengers: Infinity War",
"genre": "Action",
"duration": "2:30:00",
"description": "asfshugujhjus"
}
},
{
"id": 2,
"startDateTime": "01/25/2019",
"endDateTime": "02/01/2019",
"movie": {
"id": 1,
"name": "Avengers: Infinity War",
"genre": "Action",
"duration": "2:30:00",
"description": "asfshugujhjus"
}
}
]
Show Movie Schedules by ID
Request:
GET /api/v1/movie-schedule/{}id
Parameters:
Field | Description | Required |
---|---|---|
id | id of Movie Schedule | true |
Status Code: 200
Sample Request:
GET /api/v1/movie-schedule/1
Sample Response Body:
{
"id": 1,
"startDateTime": "01/25/2019 ",
"endDateTime": "02/08/2019",
"movie": {
"id": 1,
"name": "Avengers: Infinity War",
"genre": "Action",
"duration": "2:30:00",
"description": "asfshugujhjus"
}
}
Movie Response
Field | Description | Required |
---|---|---|
id | ID of the movie | false (default: increment) |
name | Name of the movie | true |
genre | Genre of the movie | true |
duration | Duration of the movie | true |
description | Description of the movie | true |
Movie Schedule Response
Field | Description | Required |
---|---|---|
id | ID of the movie schedule | false (default: increment) |
startDateTime | Date when movie will be played | true |
endDateTime | Date when movie will stop being played | true |
movieId | ID of the movie | true |
movie | Movie that has the same id as the movieId | false |