| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351 |
- module.exports = {
- servers: [
- {
- url: "http://localhost:3001/",
- description: "Local server",
- },
- ],
- tags: [
- {
- name: "User"
- },
- ],
- openapi: "3.0.3",
- info: {
- title: "Trampa",
- description: "Trampa api"
- },
- paths: {
- '/users': {
- get: {
- tags: ["User"],
- description: "Get all users",
- parameters: [],
- responses: {
- 200: {
- description: "Success",
- content: {
- "application/json": {
- schema: {
- $ref: "#/components/schemas/User",
- }
- }
- }
- },
- 200: {
- description: "Users returned successfully"
- },
- 500: {
- description: "Internal server error"
- }
- }
- },
- post: {
- tags: ["User"],
- description: "Create user",
- parameters: [],
- requestBody: {
- content: {
- "application/json": {
- schema: {
- type: "object",
- properties: {
- name: {
- type: "string"
- },
- email: {
- type: "string"
- },
- password: {
- type: "string"
- }
- }
- }
- }
- }
- },
- responses: {
- 201: {
- description: "User created successfully",
- content: {
- "application/json": {
- schema: {
- $ref: "#/components/schemas/User"
- },
- },
- },
- },
- 400: {
- description: "Object cant be empty",
- },
- 401: {
- description: "Invalid input parameters",
- },
- 500: {
- description: "Internal server error",
- }
- }
- }
- },
- '/users/{id}': {
- get: {
- tags: ["User"],
- description: "Get user by id",
- parameters: [
- {
- name: "id",
- in: "path",
- schema: {
- $ref: "#/components/schemas/id",
- },
- required: true,
- description: "A single user id",
- }
- ],
- responses: {
- 200: {
- description: "Success",
- content: {
- "application/json": {
- schema: {
- $ref: "#/components/schemas/User",
- }
- }
- }
- },
- 400: {
- description: "Bad request"
- },
- 404: {
- description: "User with specified id does not exist"
- },
- 500: {
- description: "Internal server error"
- }
- }
- },
- put: {
- tags: ["User"],
- description: "Update user",
- parameters: [
- {
- name: "id",
- in: "path",
- schema: {
- $ref: "#/components/schemas/id", // data model of the param
- },
- required: true,
- description: "A single user id",
- }
- ],
- requestBody: {
- content: {
- "application/json": {
- schema: {
- type: "object",
- properties: {
- name: {
- type: "string"
- },
- email: {
- type: "string"
- },
- password: {
- type: "string"
- }
- }
- }
- }
- }
- },
- responses: {
- 200: {
- description: "User updated successfully",
- },
- 400: {
- description: "Invalid input parameters",
- },
- 500: {
- description: "Server error",
- }
- }
- },
- patch: {
- tags: ["User"],
- description: "Update user",
- parameters: [
- {
- name: "id",
- in: "path",
- // schema: {
- // $ref: "#/components/schemas/id", // data model of the param
- // },
- required: true,
- description: "A single user id",
- }
- ],
- requestBody: {
- content: {
-
- }
- },
- responses: {
-
- }
- },
- delete: {
- tags: ["User"],
- description: "Delete user",
- parameters: [
- {
- name: "id",
- in: "path",
- schema: {
- $ref: "#/components/schemas/id",
- },
- required: true,
- },
- ],
- responses: {
- 204: {
- description: "User deleted successfully",
- },
- 400: {
- description: "You need to provide valid Id'",
- },
- 404: {
- description: "User not found",
- },
- 500: {
- description: "Internal server error",
- },
- },
- }
- },
- '/auth/token': {
- post: {
- tags: ["Token"],
- description: "Log in user",
- parameters: [],
- requestBody: {
- content: {
- "application/json": {
- schema: {
- type: "object",
- properties: {
- email: {
- type: "string"
- },
- password: {
- type: "string"
- }
- }
- }
- }
- }
- },
- responses: {
- 201: {
- description: "User logged in successfully!"
- },
- 400: {
- description: "Wrong credentials!"
- },
- 500: {
- description: "Internal server error"
- }
- }
- }
- },
- '/auth/logout': {
- post: {
- tags: ["Token"],
- description: "Log out user",
- parameters: [],
- requestBody: {
- content: {
- "application/json": {
- schema: {
- $ref: "#/components/schemas/Token"
- }
- }
- }
- },
- responses: {
- 201: {
- description: "User logged out successfully"
- },
- 404: {
- description: "No user has the token provided!"
- },
- 500: {
- description: "Internal server error"
- }
- }
- }
- },
- '/auth/refresh': {
- post: {
- tags: ["Token"],
- description: "Log out user",
- parameters: [],
- requestBody: {
- content: {
- "application/json": {
- schema: {
- $ref: "#/components/schemas/Token"
- }
- }
- }
- },
- responses: {
- 201: {
- description: "User refreshed successfully"
- },
- 404: {
- description: "Token not valid!"
- }
- }
- }
- }
- },
- components: {
- schemas: {
- id: {
- type: "string",
- description: "An id of a user"
- },
- User: {
- type: "object",
- properties: {
- name: {
- type: "string"
- },
- email: {
- type: "string"
- },
- password: {
- type: "string"
- },
- tokens: {
- type: "array",
- items: {
- type: "string"
- }
- }
- }
- },
- Token: {
- type: "object",
- properties: {
- token: {
- type: "string"
- },
- userId: {
- type: "string"
- }
- }
- }
- }
- }
- }
|