Movie House API - lenlaurito/movie-house GitHub Wiki

Functionalities

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