swagger.json
{ "swagger": "2.0", "info": { "version": "1.0.0", "title": "Find Home API", "description": "Find Home API" }, "servers": [ { "url": "http://localhost:3002", "name": "localhost" } ], "paths": { "/": { "get": { "tags": ["Welcome To Find Home API"], "summary": "Gets Started", "description": "Welcome to Find HOME API.", "responses": { "200": { "description": "WELCOME!" } } } }, "/api/v1/users": { "get": { "tags": ["Users"], "summary": "Get all users", "description": "Get all users", "parameters": [ { "in": "header", "name": "Authorization", "required": true, "type": "string", "description": "token" } ], "responses": { "200": { "description": "Users!" } } } }, "/api/v1/users/signup": { "post": { "tags": ["Users"], "summary": "Signup", "description": "Create account", "operationId": "createUser", "parameters": [ { "in": "body", "name": "body", "schema": { "type": "object", "properties": { "name": { "type": "string" }, "phone": { "type": "string" }, "email": { "type": "string" }, "role": { "type": "string" }, "gender": { "type": "string" }, "birthdate": { "type": "date" } } } } ], "produces": ["application/json"], "responses": { "200": { "description": "success" } } } }, "/api/v1/users/login": { "post": { "tags": ["Users"], "summary": "Login", "description": "Login in the system", "operationId": "Login", "parameters": [ { "in": "body", "name": "body", "schema": { "type": "object", "properties": { "email": { "type": "string" }, "password": { "type": "string" } } } } ], "produces": ["application/json"], "responses": { "200": { "description": "success" } } } }, "/api/v1/users/logout": { "get": { "tags": ["Users"], "summary": "Logout User", "description": "Logout User", "parameters": [ { "in": "header", "name": "Authorization", "required": true, "type": "string", "description": "token" } ], "responses": { "200": { "description": "Users Found" } } } }, "/api/v1/users/forgotPassword": { "post": { "tags": ["Users"], "summary": "Forgort Password", "description": "Help user to reset password", "parameters": [ { "in": "body", "name": "body", "description": "Enter your email", "schema": { "type": "object", "properties": { "email": { "type": "string" } } } } ], "responses": { "200": { "description": "User Found" } } } }, "/api/v1/users/resetPassword/{token}": { "patch": { "tags": ["Users"], "summary": "Reset Password", "description": "Help user to reset password", "parameters": [ { "in": "path", "name": "token" }, { "in": "body", "name": "body", "description": "Enter password and passwordConfirm", "schema": { "type": "object", "properties": { "password": { "type": "string" }, "passwordConfirm": { "type": "string" } } } } ], "responses": { "200": { "description": "User Found" } } } }, "/api/v1/users/profile": { "patch": { "tags": ["Users"], "summary": "update profile", "description": "Help user to update profile", "parameters": [ { "in": "header", "name": "Authorization", "required": true, "type": "string", "description": "token" }, { "in": "body", "name": "body", "description": "Enter updated information", "schema": { "type": "object", "properties": { "name": { "type": "string" }, "phone": { "type": "string" }, "email": { "type": "string" }, "role": { "type": "string" }, "gender": { "type": "string" }, "birthdate": { "type": "date" } } } } ], "responses": { "200": { "description": "User Found" } } } }, "/api/v1/houses": { "post": { "tags": ["Houses"], "summary": "add new house", "description": "Return new house", "parameters": [ { "in": "header", "name": "Authorization", "required": true, "type": "string", "description": "token" }, { "in": "body", "name": "body", "description": "Enter house details", "schema": { "type": "object", "properties": { "image": { "type": "string" }, "description": { "type": "string" }, "location": { "type": "string" }, "bedrooms": { "type": "integer" }, "bathrooms": { "type": "integer" }, "price": { "type": "integer" }, "status": { "type": "string" } } } } ], "responses": { "201": { "description": "house added" } } }, "get": { "tags": ["Houses"], "summary": "get houses", "description": "Return houses", "parameters": [ { "in": "header", "name": "Authorization", "required": true, "type": "string", "description": "token" } ], "responses": { "201": { "description": "house added" } } } }, "/api/v1/houses/?page={page}&limit={limit}": { "get": { "tags": ["Houses"], "summary": "get houses by pagination", "description": "Return houses", "parameters": [ { "in": "header", "name": "Authorization", "required": true, "type": "string", "description": "token" }, { "in": "path", "name": "page", "required": true, "type": "integer", "default": 1 }, { "in": "path", "name": "limit", "required": true, "type": "integer", "default": 10 } ], "responses": { "200": { "description": "house added" } } } }, "/api/v1/houses/{id}": { "get": { "tags": ["Houses"], "summary": "get houses", "description": "Return houses", "parameters": [ { "in": "header", "name": "Authorization", "required": true, "type": "string", "description": "token" }, { "in": "path", "name": "id", "required": true, "type": "integer", "description": "id" } ], "responses": { "200": { "description": "house retrieved" } } }, "patch": { "tags": ["Houses"], "summary": "update existing house", "description": "Return updated house", "parameters": [ { "in": "header", "name": "Authorization", "required": true, "type": "string", "description": "token" }, { "in": "path", "name": "id", "required": true, "type": "integer", "description": "id" }, { "in": "body", "name": "body", "description": "Enter house details", "schema": { "type": "object", "properties": { "image": { "type": "string" }, "description": { "type": "string" }, "location": { "type": "string" }, "bedrooms": { "type": "integer" }, "bathrooms": { "type": "integer" }, "price": { "type": "integer" }, "status": { "type": "string" } } } } ], "responses": { "200": { "description": "house added" } } }, "delete": { "tags": ["Houses"], "summary": "delete existing house", "description": "delete house", "parameters": [ { "in": "header", "name": "Authorization", "required": true, "type": "string", "description": "token" }, { "in": "path", "name": "id", "required": true, "type": "integer", "description": "id" } ], "responses": { "200": { "description": "Deleted" } } } }, "/api/v1/houses/{houseId}/createComment": { "post": { "tags": ["Comments"], "summary": "add a comment to the house", "description": "Return comment on a specific house", "parameters": [ { "in": "header", "name": "Authorization", "required": true, "type": "string", "description": "token" }, { "in": "path", "name": "houseId", "required": true, "type": "integer", "description": "houseId" }, { "in": "body", "name": "body", "description": "Enter your comment", "schema": { "type": "object", "properties": { "comment": { "type": "string" } } } } ], "responses": { "201": { "description": "comment added" } } } }, "/api/v1/houses/getHouseCommented": { "get": { "tags": ["Comments"], "summary": "get commented houses", "description": "Return list of houses you commented", "parameters": [ { "in": "header", "name": "Authorization", "required": true, "type": "string", "description": "token" } ], "responses": { "200": { "description": "comment on house retrieved" } } } }, "/api/v1/houses/{houseId}/getComments": { "get": { "tags": ["Comments"], "summary": "get comments on specific houses", "description": "Return list of comments on posted house", "parameters": [ { "in": "header", "name": "Authorization", "required": true, "type": "string", "description": "token" } ], "responses": { "200": { "description": "comment on house retrieved" } } } } }}