{
    "openapi": "3.0.0",
    "info": {
        "title": "Newsifier API",
        "version": "1.0.0"
    },
    "servers": [
        {
            "url": "/api/v1",
            "description": "First version of newsifier api"
        }
    ],
    "paths": {
        "/article": {
            "get": {
                "tags": [
                    "article"
                ],
                "summary": "List of articles",
                "description": "List of articles",
                "operationId": "Article",
                "parameters": [
                    {
                        "name": "filter[title]= some title",
                        "in": "path",
                        "description": "Article title to filter results.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[big]=1",
                        "in": "path",
                        "description": "Filter to get the articles which have the big headline.",
                        "required": false,
                        "schema": {
                            "type": "bool"
                        }
                    },
                    {
                        "name": "filter[lat]=1",
                        "in": "path",
                        "description": "Filter to get latest articles.",
                        "required": false,
                        "schema": {
                            "type": "bool"
                        }
                    },
                    {
                        "name": "filter[popular]=1",
                        "in": "path",
                        "description": "Filter to get popular articles.",
                        "required": false,
                        "schema": {
                            "type": "bool"
                        }
                    },
                    {
                        "name": "filter[author]=<user_id>",
                        "in": "path",
                        "description": "Filter to get articles of specific user.",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include=clapsCount",
                        "in": "path",
                        "description": "Include count of claps of articles.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include=claps",
                        "in": "path",
                        "description": "Include claps of article.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include=user",
                        "in": "path",
                        "description": "Include author of article.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort=id",
                        "in": "path",
                        "description": "Sort results by by ascending id.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort=-id",
                        "in": "path",
                        "description": "Sort results by by descendingly id.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort=published_at",
                        "in": "path",
                        "description": "Sort results by by ascending published_at.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page=2",
                        "in": "path",
                        "description": "Paginate the articles.",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "limit=15",
                        "in": "path",
                        "description": "Limit number of the articles within one request",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "sort=-published_at",
                        "in": "path",
                        "description": "Sort results by by descendingly published_at.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {},
                "responses": {
                    "401": {
                        "description": "Wrong credentials response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unuthenticated."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "200"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "success"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": "200"
                                                    },
                                                    "title": {
                                                        "type": "string",
                                                        "example": "some title"
                                                    },
                                                    "type": {
                                                        "type": "string",
                                                        "example": "value"
                                                    },
                                                    "in_headline": {
                                                        "type": "string",
                                                        "example": "small"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Authorization": [
                            "Bearer <static_api_token>"
                        ]
                    }
                ]
            }
        },
        "/article-as-visitor/{article_id}": {
            "get": {
                "tags": [
                    "article"
                ],
                "summary": "Details of an article",
                "description": "Details of an article",
                "parameters": [
                    {
                        "name": "visitor_id",
                        "in": "path",
                        "description": "Visitor id.",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include=clapsCount",
                        "in": "path",
                        "description": "Include count of claps of articles.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include=claps",
                        "in": "path",
                        "description": "Include claps of article.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {},
                "responses": {
                    "401": {
                        "description": "Wrong credentials response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unuthenticated."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "200"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "success"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Article not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "404"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "error"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Authorization": [
                            "Bearer <static_api_token>"
                        ]
                    }
                ]
            }
        },
        "/article-as-user/{article_id}": {
            "get": {
                "tags": [
                    "article"
                ],
                "summary": "Details of an article",
                "description": "Details of an article",
                "operationId": "App\\Http\\Controllers\\Api\\Application\\v1\\ArticleController::show",
                "parameters": [
                    {
                        "name": "include=comments",
                        "in": "path",
                        "description": "Include comments of article.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include=commentsCount",
                        "in": "path",
                        "description": "Include count of comments of articles.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include=clapsCount",
                        "in": "path",
                        "description": "Include count of claps of articles.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include=claps",
                        "in": "path",
                        "description": "Include claps of article.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {},
                "responses": {
                    "401": {
                        "description": "Wrong credentials response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unuthenticated."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "200"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "success"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Article not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "404"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "error"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Authorization": [
                            "Bearer <api_token>"
                        ]
                    }
                ]
            }
        },
        "/forgot-password": {
            "post": {
                "tags": [
                    "password"
                ],
                "summary": "Send email on forgetting password.",
                "description": "Send email on forgetting password.",
                "operationId": "App\\Http\\Controllers\\Api\\Application\\v1\\AuthController::forgot_password",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "email": {
                                        "type": "string"
                                    }
                                },
                                "type": "object",
                                "example": {
                                    "email": "admin-test@exampleemail.com"
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "200"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "success"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Parameters are missing in the request body",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "422"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "error"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "validation"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "properties": {
                                                "email": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string",
                                                        "example": "The email field is required."
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Exception",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "400"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "exception message"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "error"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": []
            }
        },
        "/change-password": {
            "post": {
                "tags": [
                    "password"
                ],
                "summary": "Change password.",
                "description": "Change password.",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "old_password": {
                                        "type": "string"
                                    },
                                    "new_password": {
                                        "type": "string"
                                    },
                                    "confirm_password": {
                                        "type": "string"
                                    }
                                },
                                "type": "object",
                                "example": {
                                    "old_password": "12345678",
                                    "new_password": "password",
                                    "confirm_password": "password"
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "401": {
                        "description": "Wrong credentials response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unuthenticated."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "200"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "Password updated successfully."
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Parameters are missing in the request body",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "422"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "error"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "validation"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "properties": {
                                                "old_password": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string",
                                                        "example": "The old password field is required."
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Exception.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "400"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "exception message"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "error"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "400"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "Check your old password."
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "error"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Authorization": [
                            "Bearer <api_token>"
                        ]
                    }
                ]
            }
        },
        "/authenticate-provider/{provider}": {
            "post": {
                "tags": [
                    "auth"
                ],
                "summary": "Sign in by provider",
                "description": "Login by provider's token",
                "operationId": "providerLogin",
                "requestBody": {
                    "description": "Pass user credentials",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "token"
                                ],
                                "properties": {
                                    "token": {
                                        "type": "string",
                                        "example": "sadahdjadadmlkdjjh"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "422": {
                        "description": "Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "422"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "error"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "validation"
                                                },
                                                "errors": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string",
                                                        "example": "The token field is required."
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "500"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "error"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "errors": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string",
                                                        "example": "Provider not valid"
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "200"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "success"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "admin"
                                                },
                                                "username": {
                                                    "type": "string",
                                                    "example": "admin"
                                                },
                                                "email": {
                                                    "type": "string",
                                                    "example": "admin@example.com"
                                                },
                                                "email_verified_at": {
                                                    "type": "string",
                                                    "example": "2020-08-27T14:06:27.000000Z"
                                                },
                                                "provider": {
                                                    "type": "string",
                                                    "example": null
                                                },
                                                "image": {
                                                    "type": "string",
                                                    "example": null
                                                },
                                                "provider_id": {
                                                    "type": "string",
                                                    "example": null
                                                },
                                                "status": {
                                                    "type": "string",
                                                    "example": "active"
                                                },
                                                "last_login": {
                                                    "type": "string",
                                                    "example": "2020-09-20 07:48:55"
                                                },
                                                "is_public": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "links": {
                                                    "type": "string",
                                                    "example": null
                                                },
                                                "description": {
                                                    "type": "string",
                                                    "example": null
                                                },
                                                "authorization": {
                                                    "type": "string",
                                                    "example": "7|FKYoh774XvT7QN1XaCCMyopiXnUR4TY7mFNeU81n"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/login": {
            "post": {
                "tags": [
                    "auth"
                ],
                "summary": "Sign in",
                "description": "Login by email, password",
                "operationId": "authLogin",
                "requestBody": {
                    "description": "Pass user credentials",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "login",
                                    "password"
                                ],
                                "properties": {
                                    "login": {
                                        "type": "string",
                                        "example": "user1@mail.com"
                                    },
                                    "password": {
                                        "type": "string",
                                        "format": "password",
                                        "example": "PassWord12345"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "401": {
                        "description": "Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "401"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "Invalid credentials"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "credentials"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "200"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "success"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "admin"
                                                },
                                                "username": {
                                                    "type": "string",
                                                    "example": "admin"
                                                },
                                                "email": {
                                                    "type": "string",
                                                    "example": "admin@example.com"
                                                },
                                                "email_verified_at": {
                                                    "type": "string",
                                                    "example": "2020-08-27T14:06:27.000000Z"
                                                },
                                                "provider": {
                                                    "type": "string",
                                                    "example": null
                                                },
                                                "image": {
                                                    "type": "string",
                                                    "example": null
                                                },
                                                "provider_id": {
                                                    "type": "string",
                                                    "example": null
                                                },
                                                "status": {
                                                    "type": "string",
                                                    "example": "active"
                                                },
                                                "last_login": {
                                                    "type": "string",
                                                    "example": "2020-09-20 07:48:55"
                                                },
                                                "is_public": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "links": {
                                                    "type": "string",
                                                    "example": null
                                                },
                                                "description": {
                                                    "type": "string",
                                                    "example": null
                                                },
                                                "authorization": {
                                                    "type": "string",
                                                    "example": "7|FKYoh774XvT7QN1XaCCMyopiXnUR4TY7mFNeU81n"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/save-device-token": {
            "post": {
                "tags": [
                    "fcm token"
                ],
                "summary": "Save token into user object",
                "description": "Save token into user object",
                "operationId": "saveDeviceToken",
                "requestBody": {
                    "description": "Pass firebase cloud message token",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "fcm_token"
                                ],
                                "properties": {
                                    "fcm_token": {
                                        "type": "string",
                                        "example": "ft06LB7YRuCFtAbhn99Rlx:APA91bGvHaWh4flqEipKw2vwj0njn-TcDWw5C5Szq_wGutWv4BCRfLBw31CCdh9Q0ZKYY8C6lLD6R_porP1B2365478549r4xpnIScVazwJqwsderfgtyx8agzD2-KaDwMDq78549635"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "401": {
                        "description": "Wrong credentials response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unuthenticated."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Token is required",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "404"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "Not found"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "error"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "200"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "success"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Authorization": [
                            "Bearer <api_token>"
                        ]
                    }
                ]
            }
        },
        "/menu/{menu_name}": {
            "get": {
                "tags": [
                    "menus"
                ],
                "summary": "List of menu items.",
                "description": "List of menu items.",
                "operationId": "App\\Http\\Controllers\\Api\\Application\\v1\\MenuController::show",
                "parameters": [
                    {
                        "name": "menu_name",
                        "in": "path",
                        "description": "Name of menu",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {},
                "responses": {
                    "401": {
                        "description": "Wrong credentials response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unuthenticated."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "200"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "success"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Authorization": [
                            "Bearer <static_api_token>"
                        ]
                    }
                ]
            }
        },
        "/page/{page_id}": {
            "get": {
                "tags": [
                    "page"
                ],
                "summary": "Details of an page",
                "description": "Details of an page",
                "operationId": "App\\Http\\Controllers\\Api\\Application\\v1\\PageController::show",
                "requestBody": {},
                "responses": {
                    "401": {
                        "description": "Wrong credentials response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unuthenticated."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "200"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "success"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Page not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "404"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "error"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Authorization": [
                            "Bearer <api_token>"
                        ]
                    }
                ]
            }
        },
        "/poll/{poll_id}": {
            "get": {
                "tags": [
                    "poll"
                ],
                "summary": "Details of a poll.",
                "description": "Details of a poll.",
                "parameters": [
                    {
                        "name": "poll_id",
                        "in": "path",
                        "description": "Id of poll",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {},
                "responses": {
                    "401": {
                        "description": "Wrong credentials response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unuthenticated."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "200"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "success"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "properties": {
                                                "poll_id": {
                                                    "type": "integer",
                                                    "example": 65
                                                },
                                                "total_voting": {
                                                    "type": "integer",
                                                    "example": 3
                                                },
                                                "answers": {
                                                    "type": "array",
                                                    "items": {
                                                        "properties": {
                                                            "answer_id": {
                                                                "type": "integer",
                                                                "example": 75
                                                            },
                                                            "answer": {
                                                                "type": "string",
                                                                "example": "some answer"
                                                            },
                                                            "answer_voting": {
                                                                "type": "integer",
                                                                "example": 6
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Poll not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "404"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "error"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Authorization": [
                            "Bearer <static_api_token>"
                        ]
                    }
                ]
            }
        },
        "/poll/{poll_id}/vote": {
            "post": {
                "tags": [
                    "poll"
                ],
                "summary": "Vote a poll.",
                "description": "Vote a poll.",
                "parameters": [
                    {
                        "name": "poll_id",
                        "in": "path",
                        "description": "Id of poll",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "answer_id": {
                                        "type": "integer"
                                    },
                                    "visitor_id": {
                                        "type": "string"
                                    }
                                },
                                "type": "object",
                                "example": {
                                    "answer_id": 50,
                                    "visitor_id": "sdsah"
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "401": {
                        "description": "Wrong credentials response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unuthenticated."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "200"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "success"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "properties": {
                                                "poll_id": {
                                                    "type": "integer",
                                                    "example": 65
                                                },
                                                "total_voting": {
                                                    "type": "integer",
                                                    "example": 3
                                                },
                                                "answers": {
                                                    "type": "array",
                                                    "items": {
                                                        "properties": {
                                                            "answer_id": {
                                                                "type": "integer",
                                                                "example": 75
                                                            },
                                                            "answer": {
                                                                "type": "string",
                                                                "example": "some answer"
                                                            },
                                                            "answer_voting": {
                                                                "type": "integer",
                                                                "example": 6
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Poll not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "404"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "error"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": 500
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "You have already voted this poll."
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Authorization": [
                            "Bearer <api_token>"
                        ]
                    }
                ]
            }
        },
        "/register": {
            "post": {
                "tags": [
                    "auth"
                ],
                "summary": "Sign up",
                "description": "Register a new user",
                "operationId": "authRegsiter",
                "requestBody": {
                    "description": "Pass user information",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "email",
                                    "username",
                                    "password",
                                    "password_confirmation"
                                ],
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "user1@mail.com"
                                    },
                                    "username": {
                                        "type": "string",
                                        "format": "string",
                                        "example": "user1"
                                    },
                                    "password": {
                                        "type": "string",
                                        "format": "password",
                                        "example": "PassWord12345"
                                    },
                                    "password_confirmation": {
                                        "type": "string",
                                        "format": "password",
                                        "example": "PassWord12345"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "422": {
                        "description": "Unprocessable Entity",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "422"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "error"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "validation"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "422"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "200"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "success"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "registered"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "admin"
                                                },
                                                "username": {
                                                    "type": "string",
                                                    "example": "admin"
                                                },
                                                "email": {
                                                    "type": "string",
                                                    "example": "admin@example.com"
                                                },
                                                "email_verified_at": {
                                                    "type": "string",
                                                    "example": "2020-08-27T14:06:27.000000Z"
                                                },
                                                "provider": {
                                                    "type": "string",
                                                    "example": null
                                                },
                                                "image": {
                                                    "type": "string",
                                                    "example": null
                                                },
                                                "provider_id": {
                                                    "type": "string",
                                                    "example": null
                                                },
                                                "status": {
                                                    "type": "string",
                                                    "example": "active"
                                                },
                                                "last_login": {
                                                    "type": "string",
                                                    "example": "2020-09-20 07:48:55"
                                                },
                                                "is_public": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "links": {
                                                    "type": "string",
                                                    "example": null
                                                },
                                                "description": {
                                                    "type": "string",
                                                    "example": null
                                                },
                                                "authorization": {
                                                    "type": "string",
                                                    "example": "7|FKYoh774XvT7QN1XaCCMyopiXnUR4TY7mFNeU81n"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/settings": {
            "get": {
                "tags": [
                    "setting"
                ],
                "summary": "Get settings",
                "description": "Settings",
                "operationId": "App\\Http\\Controllers\\Api\\Application\\v1\\SettingsController::index",
                "requestBody": {},
                "responses": {
                    "401": {
                        "description": "Wrong credentials response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unuthenticated."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "200"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "success"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "properties": {
                                                "show_author": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "show_comments": {
                                                    "type": "string",
                                                    "example": false
                                                },
                                                "news_list": {
                                                    "type": "string",
                                                    "example": "claps"
                                                },
                                                "primary_color": {
                                                    "type": "string",
                                                    "example": "#CEAEAE"
                                                },
                                                "header_color": {
                                                    "type": "string",
                                                    "example": "#9C6262"
                                                },
                                                "background_color": {
                                                    "type": "string",
                                                    "example": "#693A3A"
                                                },
                                                "dynamicNewsListTag": {
                                                    "type": "string",
                                                    "example": "some-tag"
                                                },
                                                "dynamicNewsListPageSize": {
                                                    "type": "string",
                                                    "example": "3"
                                                },
                                                "dark_primary_color": {
                                                    "type": "string",
                                                    "example": "#693A3A"
                                                },
                                                "apiSource": {
                                                    "type": "string",
                                                    "example": "nodejs"
                                                },
                                                "dark_accent_color": {
                                                    "type": "string",
                                                    "example": "#693A3A"
                                                },
                                                "dark_bg_color": {
                                                    "type": "string",
                                                    "example": "#693A3A"
                                                },
                                                "dark_logourl": {
                                                    "type": "string",
                                                    "example": "https://newsifier.imgix.net/playstadia.nl/images/2020/baldurs_gate_3_art-5f5f851433866.jpg"
                                                },
                                                "dark_logourl_thumnails": {
                                                    "properties": {
                                                        "xsmall_300": {
                                                            "type": "string",
                                                            "example": "https://newsifier.imgix.net/playstadia.nl/images/2020/baldurs_gate_3_art-5f5f851433866.jpg?w=30"
                                                        },
                                                        "xsmall_400": {
                                                            "type": "string",
                                                            "example": "https://newsifier.imgix.net/playstadia.nl/images/2020/baldurs_gate_3_art-5f5f851433866.jpg?w=400"
                                                        },
                                                        "origin": {
                                                            "type": "string",
                                                            "example": "https://newsifier.imgix.net/playstadia.nl/images/2020/baldurs_gate_3_art-5f5f851433866.jpg"
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                "logo": {
                                                    "type": "string",
                                                    "example": "https://newsifier.imgix.net/playstadia.nl/images/2020/baldurs_gate_3_art-5f5f851433866.jpg"
                                                },
                                                "logo_thumnails": {
                                                    "properties": {
                                                        "xsmall_300": {
                                                            "type": "string",
                                                            "example": "https://newsifier.imgix.net/playstadia.nl/images/2020/baldurs_gate_3_art-5f5f851433866.jpg?w=30"
                                                        },
                                                        "xsmall_400": {
                                                            "type": "string",
                                                            "example": "https://newsifier.imgix.net/playstadia.nl/images/2020/baldurs_gate_3_art-5f5f851433866.jpg?w=400"
                                                        },
                                                        "origin": {
                                                            "type": "string",
                                                            "example": "https://newsifier.imgix.net/playstadia.nl/images/2020/baldurs_gate_3_art-5f5f851433866.jpg"
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                "terms_page_url": {
                                                    "type": "string",
                                                    "example": "https://playstadia.nl/terms_page"
                                                },
                                                "policy_page_url": {
                                                    "type": "string",
                                                    "example": "https://playstadia.nl/policy_page"
                                                },
                                                "adUnitIds": {
                                                    "properties": {
                                                        "HPAD1": {
                                                            "properties": {
                                                                "value": {
                                                                    "type": "string",
                                                                    "example": "somevalue"
                                                                },
                                                                "size": {
                                                                    "type": "string",
                                                                    "example": "(300, 50)"
                                                                }
                                                            },
                                                            "type": "object"
                                                        }
                                                    },
                                                    "type": "object"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Authorization": [
                            "Bearer <static_api_token>"
                        ]
                    }
                ]
            }
        },
        "/user/update": {
            "post": {
                "tags": [
                    "user"
                ],
                "summary": "Update my profile data",
                "description": "Update my profile data",
                "operationId": "App\\Http\\Controllers\\Api\\Application\\v1\\UserController::validateImage",
                "requestBody": {
                    "content": {
                        "application/form-data": {
                            "schema": {
                                "properties": {
                                    "date_of_birth": {
                                        "type": "string"
                                    },
                                    "image": {
                                        "type": "file"
                                    }
                                },
                                "type": "object",
                                "example": {
                                    "date_of_birth": "1990-06-06 06:06:05",
                                    "image": "FILE"
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "401": {
                        "description": "Wrong credentials response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unuthenticated."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "200"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "success"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Authorization": [
                            "Bearer <api_token>"
                        ]
                    }
                ]
            }
        },
        "/verification/resend": {
            "post": {
                "tags": [
                    "auth"
                ],
                "summary": "Resend email verficiation",
                "description": "You can resend the email verification if the user is not verfied",
                "operationId": "App\\Http\\Controllers\\Api\\Application\\v1\\UserController::resendVerfication",
                "responses": {
                    "401": {
                        "description": "Wrong credentials response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unuthenticated."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "metaData": {
                                            "properties": {
                                                "status": {
                                                    "type": "integer",
                                                    "example": "200"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "success"
                                                },
                                                "key": {
                                                    "type": "string",
                                                    "example": "none"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Authorization": [
                            "Bearer <api_token>"
                        ]
                    }
                ]
            }
        }
    },
    "components": {
        "securitySchemes": {
            "api_key": {
                "type": "apiKey",
                "description": "Set value to:  `Bearer token`",
                "name": "Authorization",
                "in": "header"
            }
        }
    },
    "security": [
        []
    ]
}