From 8446b3d2d2d64f84038b5da18e9e692f13e2d450 Mon Sep 17 00:00:00 2001 From: aniebietafia Date: Tue, 27 Aug 2024 11:44:35 +0100 Subject: [PATCH 1/5] refactor: refactored imports arrangement --- brints-estate-api/src/app.module.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/brints-estate-api/src/app.module.ts b/brints-estate-api/src/app.module.ts index 15314aa..0b6cf5e 100644 --- a/brints-estate-api/src/app.module.ts +++ b/brints-estate-api/src/app.module.ts @@ -3,6 +3,6 @@ import { AuthModule } from './auth/auth.module'; import { UsersModule } from './users/users.module'; @Module({ - imports: [UsersModule, AuthModule], + imports: [AuthModule, UsersModule], }) export class AppModule {} From a5f14fb6141fe8ee7082fb2f0c1adc5d5fafee97 Mon Sep 17 00:00:00 2001 From: aniebietafia Date: Tue, 27 Aug 2024 11:45:17 +0100 Subject: [PATCH 2/5] feat: implementing swagger documentation --- brints-estate-api/src/main.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/brints-estate-api/src/main.ts b/brints-estate-api/src/main.ts index 8c9ae1d..3c67a4d 100644 --- a/brints-estate-api/src/main.ts +++ b/brints-estate-api/src/main.ts @@ -1,10 +1,33 @@ import { NestFactory } from '@nestjs/core'; import { Logger } from '@nestjs/common'; +import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'; + import { AppModule } from './app.module'; async function bootstrap() { const logger = new Logger(); const app = await NestFactory.create(AppModule); + + /** + * Swagger configuration + */ + const config = new DocumentBuilder() + .setTitle('Brints Estate API') + .setDescription( + 'The modern day Real Estate API simplifying the way we buy and sell properties', + ) + .addServer('http://localhost:3001', 'Development Server') + .addServer('https://brints-estate-api.herokuapp.com', 'Production Server') + .setTermsOfService('http://localhost:3001/terms') + .setLicense( + 'MIT', + 'https://github.com/Brints/nestjs-brints-group-estate/blob/main/LICENSE', + ) + .setVersion('1.0') + .build(); + const document = SwaggerModule.createDocument(app, config); + SwaggerModule.setup('api-docs', app, document); + await app.listen(3001); logger.log('Application started on http://localhost:3001'); } From 9e03e5bce8bc549c76e90d3ff842fce443108efc Mon Sep 17 00:00:00 2001 From: aniebietafia Date: Tue, 27 Aug 2024 11:46:13 +0100 Subject: [PATCH 3/5] feat: adding api tags --- brints-estate-api/src/auth/auth.controller.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/brints-estate-api/src/auth/auth.controller.ts b/brints-estate-api/src/auth/auth.controller.ts index 2563921..98812a8 100644 --- a/brints-estate-api/src/auth/auth.controller.ts +++ b/brints-estate-api/src/auth/auth.controller.ts @@ -1,8 +1,10 @@ import { Controller, Post, Body } from '@nestjs/common'; import { AuthService } from './providers/auth.service'; import { CreateAuthDto } from './dto/create-auth.dto'; +import { ApiTags } from '@nestjs/swagger'; @Controller('auth') +@ApiTags('Auth') export class AuthController { constructor(private readonly authService: AuthService) {} From e4971d176bd64f66f3a71039ae9d88229a421a83 Mon Sep 17 00:00:00 2001 From: aniebietafia Date: Tue, 27 Aug 2024 11:46:44 +0100 Subject: [PATCH 4/5] feat: adding api tags --- brints-estate-api/src/users/users.controller.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/brints-estate-api/src/users/users.controller.ts b/brints-estate-api/src/users/users.controller.ts index ba02a12..f2cbbf6 100644 --- a/brints-estate-api/src/users/users.controller.ts +++ b/brints-estate-api/src/users/users.controller.ts @@ -1,8 +1,10 @@ import { Controller, Post, Body } from '@nestjs/common'; import { UsersService } from './providers/users.service'; import { CreateUserDto } from './dto/create-user.dto'; +import { ApiTags } from '@nestjs/swagger'; @Controller('users') +@ApiTags('Users') export class UsersController { constructor(private readonly usersService: UsersService) {} From 459fe8a4b63cef1286e942ac4972b4970b7279f3 Mon Sep 17 00:00:00 2001 From: aniebietafia Date: Tue, 27 Aug 2024 11:47:33 +0100 Subject: [PATCH 5/5] feat: installed nestjs swagger --- brints-estate-api/package.json | 1 + brints-estate-api/yarn.lock | 69 +++++++++++++++++++++++++++------- 2 files changed, 57 insertions(+), 13 deletions(-) diff --git a/brints-estate-api/package.json b/brints-estate-api/package.json index 1bb06ae..bce08f3 100644 --- a/brints-estate-api/package.json +++ b/brints-estate-api/package.json @@ -24,6 +24,7 @@ "@nestjs/core": "^10.4.1", "@nestjs/mapped-types": "*", "@nestjs/platform-express": "^10.4.1", + "@nestjs/swagger": "^7.4.0", "class-transformer": "^0.5.1", "class-validator": "^0.14.1", "reflect-metadata": "^0.2.2", diff --git a/brints-estate-api/yarn.lock b/brints-estate-api/yarn.lock index 8d2a7f0..e54dfc6 100644 --- a/brints-estate-api/yarn.lock +++ b/brints-estate-api/yarn.lock @@ -886,6 +886,13 @@ __metadata: languageName: node linkType: hard +"@microsoft/tsdoc@npm:^0.15.0": + version: 0.15.0 + resolution: "@microsoft/tsdoc@npm:0.15.0" + checksum: 10c0/6beaf6e01ff54daeba69862cb3d27e03bbabfe299d23d0fade885f5b29bf98af01cecc746d23875fe60ba89514e3b630b71140b1b18d37301096f7a1e35451aa + languageName: node + linkType: hard + "@nestjs/cli@npm:^10.4.4": version: 10.4.4 resolution: "@nestjs/cli@npm:10.4.4" @@ -972,7 +979,7 @@ __metadata: languageName: node linkType: hard -"@nestjs/mapped-types@npm:*": +"@nestjs/mapped-types@npm:*, @nestjs/mapped-types@npm:2.0.5": version: 2.0.5 resolution: "@nestjs/mapped-types@npm:2.0.5" peerDependencies: @@ -1020,6 +1027,34 @@ __metadata: languageName: node linkType: hard +"@nestjs/swagger@npm:^7.4.0": + version: 7.4.0 + resolution: "@nestjs/swagger@npm:7.4.0" + dependencies: + "@microsoft/tsdoc": "npm:^0.15.0" + "@nestjs/mapped-types": "npm:2.0.5" + js-yaml: "npm:4.1.0" + lodash: "npm:4.17.21" + path-to-regexp: "npm:3.2.0" + swagger-ui-dist: "npm:5.17.14" + peerDependencies: + "@fastify/static": ^6.0.0 || ^7.0.0 + "@nestjs/common": ^9.0.0 || ^10.0.0 + "@nestjs/core": ^9.0.0 || ^10.0.0 + class-transformer: "*" + class-validator: "*" + reflect-metadata: ^0.1.12 || ^0.2.0 + peerDependenciesMeta: + "@fastify/static": + optional: true + class-transformer: + optional: true + class-validator: + optional: true + checksum: 10c0/6dca99984bea2303353cd890b622b037e8cb4129c38047883936c619073e0a94ccb13ca98ab68d3ad5d0bc96564f94b9e83809a7489f36e2cae4c553c385d779 + languageName: node + linkType: hard + "@nestjs/testing@npm:^10.4.1": version: 10.4.1 resolution: "@nestjs/testing@npm:10.4.1" @@ -2179,6 +2214,7 @@ __metadata: "@nestjs/mapped-types": "npm:*" "@nestjs/platform-express": "npm:^10.4.1" "@nestjs/schematics": "npm:^10.1.4" + "@nestjs/swagger": "npm:^7.4.0" "@nestjs/testing": "npm:^10.4.1" "@types/express": "npm:^4.17.21" "@types/jest": "npm:^29.5.12" @@ -4702,26 +4738,26 @@ __metadata: languageName: node linkType: hard -"js-yaml@npm:^3.13.1": - version: 3.14.1 - resolution: "js-yaml@npm:3.14.1" +"js-yaml@npm:4.1.0, js-yaml@npm:^4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" dependencies: - argparse: "npm:^1.0.7" - esprima: "npm:^4.0.0" + argparse: "npm:^2.0.1" bin: js-yaml: bin/js-yaml.js - checksum: 10c0/6746baaaeac312c4db8e75fa22331d9a04cccb7792d126ed8ce6a0bbcfef0cedaddd0c5098fade53db067c09fe00aa1c957674b4765610a8b06a5a189e46433b + checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f languageName: node linkType: hard -"js-yaml@npm:^4.1.0": - version: 4.1.0 - resolution: "js-yaml@npm:4.1.0" +"js-yaml@npm:^3.13.1": + version: 3.14.1 + resolution: "js-yaml@npm:3.14.1" dependencies: - argparse: "npm:^2.0.1" + argparse: "npm:^1.0.7" + esprima: "npm:^4.0.0" bin: js-yaml: bin/js-yaml.js - checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f + checksum: 10c0/6746baaaeac312c4db8e75fa22331d9a04cccb7792d126ed8ce6a0bbcfef0cedaddd0c5098fade53db067c09fe00aa1c957674b4765610a8b06a5a189e46433b languageName: node linkType: hard @@ -4898,7 +4934,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.21": +"lodash@npm:4.17.21, lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c @@ -6412,6 +6448,13 @@ __metadata: languageName: node linkType: hard +"swagger-ui-dist@npm:5.17.14": + version: 5.17.14 + resolution: "swagger-ui-dist@npm:5.17.14" + checksum: 10c0/cb61bba39e76d7d0d83da605a55e9504c1a5b421f9f13cced06d3e222f0a291594d417ec57b30a38aabe30d8a7e257c4977b8f0bba0e865d60f92b0a8ef4dfc1 + languageName: node + linkType: hard + "symbol-observable@npm:4.0.0": version: 4.0.0 resolution: "symbol-observable@npm:4.0.0"