Skip to content

Latest commit

 

History

History
564 lines (487 loc) · 8.72 KB

api-doc.md

File metadata and controls

564 lines (487 loc) · 8.72 KB

RESTful endpoints

POST /register

Register New User

Request Header

not needed

Request Body

{
  "fullname": "<fullname to get insert into>"
  "username": "<username to get insert into>",
  "email": "<email to get insert into>",
  "password": "<password to get insert into>",
  "phoneNumber": "<phoneNumber to get insert into>",
}

Request Parameter

not needed

Response (201)

{
    "id": 5,
    "username": "admin3",
    "fullname": "admin 3",
    "email": "[email protected]",
    "phoneNumber": "12345"
}

Response (400 - Bad Request)

{
    "message": "<validation errors>"
}

Response (500 - Internal Server Error)

{
  "message": "Something went wrong"
}

POST /login

Verifiy inserted username and password with database

Request Header

not needed

Request Body

{
  "username": "<username to get insert into>",
  "password": "<password to get insert into>",
}

Request Parameter

not needed

Response (200)

{
    "accessToken": "hashed access token"
}

Response (401 - Unauthorized)

{
    "message": "Not Logged In. Invalid Email/Password"
}

Response (500 - Internal Server Error)

{
  "message": "Something went wrong"
}

POST /auth/google

Sign in (or Sign Up) with Google Auth

Request Header

not needed

Request Body

{
  "idToken": "<token from Google Sign-In>",
}

Request Parameter

not needed

Response (200)

{
    "accessToken": "hashed access token"
}

Response (401 - Unauthorized)

{
    "message": "Not Logged In. Invalid Email/Password"
}

Response (500 - Internal Server Error)

{
  "message": "Something went wrong"
}

GET /

Fetch entity (Place)

Request Header

{
  "access_token": "<your access token>"
}

Request Body

not needed

Response (200)

[
    {
        "id": 1,
        "name": "<asset name>",
        "url": "<asset url>",
        "location": "<asset location>",
        "lat": <asset lat>,
        "lon": <asset lon>,
        "photo_reference": <asset photo_reference>,
        "place_id": <asset place_id>,
        "phoneNumber": <asset phoneNumber>,
        "updatedAt": "<asset updatedAt>",
        "createdAt": "<asset createdAt>"
    },
    {
        "id": 2,
        "name": "<asset name>",
        "url": "<asset url>",
        "location": "<asset location>",
        "lat": <asset lat>,
        "lon": <asset lon>,
        "photo_reference": <asset photo_reference>,
        "place_id": <asset place_id>,
        "phoneNumber": <asset phoneNumber>,
        "updatedAt": "<asset updatedAt>",
        "createdAt": "<asset createdAt>"
    },
    .
    .
    .
    {
        "id": <id>,
        "name": "<asset name>",
        "url": "<asset url>",
        "location": "<asset location>",
        "lat": <asset lat>,
        "lon": <asset lon>,
        "photo_reference": <asset photo_reference>,
        "place_id": <asset place_id>,
        "phoneNumber": <asset phoneNumber>,
        "updatedAt": "<asset updatedAt>",
        "createdAt": "<asset createdAt>"
    },
]

Response (401 - Unauthorized)

{
  "message": "Invalid Authentication"
}
or
{
  "message": "Not Logged In. Invalid Email/Password"
}

Response (500 - Internal Server Error)

{
    "message": "Something went wrong"
}

POST /

Create new entity (Place)

Request Header

{
  "access_token": "<your access token>"
}

Request Body

{
  "place_id": "<place_id from Google Place Search>",
}

Response (201 - Created)

{
    "id": <id>,
    "name": "<asset name>",
    "url": "<asset url>",
    "location": "<asset location>",
    "lat": <asset lat>,
    "lon": <asset lon>,
    "photo_reference": <asset photo_reference>,
    "place_id": <asset place_id>,
    "phoneNumber": <asset phoneNumber>,
    "updatedAt": "<asset updatedAt>",
    "createdAt": "<asset createdAt>"
},

Response (400 - Bad Request)

{
    "message": "<validation error>","<validation error>"
}

Response (401 - Unauthorized)

{
  "message": "Invalid Authentication"
}

or

{
  "message": "Not Logged In. Invalid Email/Password"
}

Response (500 - Internal Server Error)

{
  "message": "Something went wrong"
}

GET /:id

Get Place By Id

Request Header

{
  "access_token": "<your access token>"
}

Request Body

not needed

Request Parameter

id = <Place Id>

Response (200)

{
    "id": <id>,
    "name": "<asset name>",
    "url": "<asset url>",
    "location": "<asset location>",
    "lat": <asset lat>,
    "lon": <asset lon>,
    "photo_reference": <asset photo_reference>,
    "place_id": <asset place_id>,
    "phoneNumber": <asset phoneNumber>,
    "updatedAt": "<asset updatedAt>",
    "createdAt": "<asset createdAt>"
},

Response (401 - Unauthorized)

{
  "message": "Invalid Authentication"
}

or

{
  "message": "Not Logged In. Invalid Email/Password"
}

Response (404 - Not Found)

{
    "message": "Place Not Found"
}

Response (500 - Internal Server Error)

{
  "message": "Something went wrong"
}

DELETE :id

Delete Place data

Request Header

{
  "access_token": "<your access token>"
}

Request Body

not needed

Request Parameter

id = <Place Id to be deleted>

Response (200)

{
    "message": "<Place name> Deleted Succesfully"
}

Response (401 - Unauthorized)

{
  "message": "Invalid Authentication"
}

or

{
  "message": "Not Logged In. Invalid Email/Password"
}

Response (403 - Forbidden)

{
    "message": "Invalid Authorization"
}

Response (404 - Not Found)

{
    "message": "News Not Found"
}

Response (500 - Internal Server Error)

{
  "message": "Something went wrong"
}

POST /

Create new entity (Booking)

Request Header

{
  "access_token": "<your access token>"
}

Request Body

{
  "reservationTime": "<reservationTime input>",
  "PlaceId": "<PlaceId input>",
}

Response (201 - Created)

{
    "id": <id>,
    "UserId": "<asset UserId>",
    "PlaceId": "<asset PlaceId>",
    "reservationTime": "<asset reservationTime>",
    "updatedAt": "<asset updatedAt>",
    "createdAt": "<asset createdAt>"
},

Response (400 - Bad Request)

{
    "message": "<validation error>","<validation error>"
}

Response (401 - Unauthorized)

{
  "message": "Invalid Authentication"
}

or

{
  "message": "Not Logged In. Invalid Email/Password"
}

Response (500 - Internal Server Error)

{
  "message": "Something went wrong"
}

GET /

Fetch entity (Booking)

Request Header

{
  "access_token": "<your access token>"
}

Request Body

not needed

Response (200)

[
    {
        "id": 1,
        "name": "<asset name>",
        "url": "<asset url>",
        "location": "<asset location>",
        "lat": <asset lat>,
        "lon": <asset lon>,
        "photo_reference": <asset photo_reference>,
        "place_id": <asset place_id>,
        "phoneNumber": <asset phoneNumber>,
        "updatedAt": "<asset updatedAt>",
        "createdAt": "<asset createdAt>",
        "Bookings": {
            "UserId" : <asset UserId>,            
            "PlaceId" : <asset PlaceId>,            
            "reservationTime" : <asset reservationTime>,            
        }
    },
    {
        "id": 2,
        "name": "<asset name>",
        "url": "<asset url>",
        "location": "<asset location>",
        "lat": <asset lat>,
        "lon": <asset lon>,
        "photo_reference": <asset photo_reference>,
        "place_id": <asset place_id>,
        "phoneNumber": <asset phoneNumber>,
        "updatedAt": "<asset updatedAt>",
        "createdAt": "<asset createdAt>",
        "Bookings": {
            "UserId" : <asset UserId>,            
            "PlaceId" : <asset PlaceId>,            
            "reservationTime" : <asset reservationTime>,            
        }
    },
    .
    .
    .
    {
        "id": n,
        "name": "<asset name>",
        "url": "<asset url>",
        "location": "<asset location>",
        "lat": <asset lat>,
        "lon": <asset lon>,
        "photo_reference": <asset photo_reference>,
        "place_id": <asset place_id>,
        "phoneNumber": <asset phoneNumber>,
        "updatedAt": "<asset updatedAt>",
        "createdAt": "<asset createdAt>",
        "Bookings": {
            "UserId" : <asset UserId>,            
            "PlaceId" : <asset PlaceId>,            
            "reservationTime" : <asset reservationTime>,            
        }
    },
]

Response (401 - Unauthorized)

{
  "message": "Invalid Authentication"
}
or
{
  "message": "Not Logged In. Invalid Email/Password"
}

Response (500 - Internal Server Error)

{
    "message": "Something went wrong"
}