Skip to content

Commit

Permalink
Merge pull request #4 from Brints/feat/openapi-documentation
Browse files Browse the repository at this point in the history
feat: setting up swagger documentation
  • Loading branch information
aniebietafia authored Aug 27, 2024
2 parents 9169ff0 + 459fe8a commit 926cf0e
Show file tree
Hide file tree
Showing 6 changed files with 85 additions and 14 deletions.
1 change: 1 addition & 0 deletions brints-estate-api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
2 changes: 1 addition & 1 deletion brints-estate-api/src/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 {}
2 changes: 2 additions & 0 deletions brints-estate-api/src/auth/auth.controller.ts
Original file line number Diff line number Diff line change
@@ -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) {}

Expand Down
23 changes: 23 additions & 0 deletions brints-estate-api/src/main.ts
Original file line number Diff line number Diff line change
@@ -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');
}
Expand Down
2 changes: 2 additions & 0 deletions brints-estate-api/src/users/users.controller.ts
Original file line number Diff line number Diff line change
@@ -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) {}

Expand Down
69 changes: 56 additions & 13 deletions brints-estate-api/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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"
Expand Down

0 comments on commit 926cf0e

Please sign in to comment.