From b88338a3d537b954a83b2ad7f9b91590a12b3240 Mon Sep 17 00:00:00 2001 From: suvajit Date: Sun, 3 Mar 2024 02:42:07 +0530 Subject: [PATCH] Players Endpoint --- apps/service-auth/src/app.module.ts | 4 +++- .../src/clans/clans.controller.ts | 21 +++++++++++++++---- apps/service-auth/src/clans/clans.module.ts | 4 ++-- apps/service-auth/src/clans/clans.service.ts | 12 ++++++++++- .../src/links/links.controller.ts | 3 ++- apps/service-auth/src/links/links.service.ts | 2 +- apps/service-auth/src/main.ts | 2 +- .../src/players/players.controller.ts | 18 ++++++++++++++++ .../src/players/players.module.ts | 9 ++++++++ .../src/players/players.service.ts | 4 ++++ 10 files changed, 68 insertions(+), 11 deletions(-) create mode 100644 apps/service-auth/src/players/players.controller.ts create mode 100644 apps/service-auth/src/players/players.module.ts create mode 100644 apps/service-auth/src/players/players.service.ts diff --git a/apps/service-auth/src/app.module.ts b/apps/service-auth/src/app.module.ts index 3178ae6..4c4ec64 100644 --- a/apps/service-auth/src/app.module.ts +++ b/apps/service-auth/src/app.module.ts @@ -6,16 +6,18 @@ import { AuthModule } from './auth/auth.module'; import { ClansModule } from './clans/clans.module'; import { GuildsModule } from './guilds/guilds.module'; import { LinksModule } from './links/links.module'; +import { PlayersModule } from './players/players.module'; @Module({ imports: [ ConfigModule.forRoot({ isGlobal: true }), MongoDbModule, RedisModule, - ClansModule, AuthModule, + ClansModule, GuildsModule, LinksModule, + PlayersModule, ], controllers: [], providers: [], diff --git a/apps/service-auth/src/clans/clans.controller.ts b/apps/service-auth/src/clans/clans.controller.ts index 327db03..e3bed2d 100644 --- a/apps/service-auth/src/clans/clans.controller.ts +++ b/apps/service-auth/src/clans/clans.controller.ts @@ -1,14 +1,27 @@ import { JwtAuthGuard } from '@app/auth'; -import { Controller, Get, UseGuards } from '@nestjs/common'; +import { Controller, Get, Param, UseGuards } from '@nestjs/common'; import { ApiBearerAuth, ApiTags } from '@nestjs/swagger'; +import { ClansService } from './clans.service'; @ApiTags('CLANS') @ApiBearerAuth() @Controller('/clans') @UseGuards(JwtAuthGuard) export class ClansController { - @Get() - getHello() { - return {}; + constructor(private clansService: ClansService) {} + + @Get('/:clanTag/capital-contribution') + getCapitalContribution(@Param('clanTag') clanTag: string) { + return this.clansService.getCapitalContribution(clanTag); + } + + @Get('/:clanTag/linked-members') + getLinkedMembers(@Param('clanTag') clanTag: string) { + return this.clansService.getCapitalContribution(clanTag); + } + + @Get('/:clanTag/wars/:warId') + getClanWar(@Param('clanTag') clanTag: string, @Param('warId') warId: string) { + return this.clansService.getClanWar(clanTag, warId); } } diff --git a/apps/service-auth/src/clans/clans.module.ts b/apps/service-auth/src/clans/clans.module.ts index 19e76e6..b005821 100644 --- a/apps/service-auth/src/clans/clans.module.ts +++ b/apps/service-auth/src/clans/clans.module.ts @@ -1,9 +1,9 @@ import { Module } from '@nestjs/common'; -import { ClansService } from './clans.service'; import { ClansController } from './clans.controller'; +import { ClansService } from './clans.service'; @Module({ - providers: [ClansService], controllers: [ClansController], + providers: [ClansService], }) export class ClansModule {} diff --git a/apps/service-auth/src/clans/clans.service.ts b/apps/service-auth/src/clans/clans.service.ts index 5a27cac..8cca64b 100644 --- a/apps/service-auth/src/clans/clans.service.ts +++ b/apps/service-auth/src/clans/clans.service.ts @@ -1,4 +1,14 @@ import { Injectable } from '@nestjs/common'; @Injectable() -export class ClansService {} +export class ClansService { + constructor() {} + + getCapitalContribution(clanTag: string) { + return { clanTag }; + } + + getClanWar(clanTag: string, warId: string) { + return { clanTag, warId }; + } +} diff --git a/apps/service-auth/src/links/links.controller.ts b/apps/service-auth/src/links/links.controller.ts index 414fcfb..57390a3 100644 --- a/apps/service-auth/src/links/links.controller.ts +++ b/apps/service-auth/src/links/links.controller.ts @@ -1,5 +1,5 @@ import { CurrentUser, JwtAuthGuard, JwtUser } from '@app/auth'; -import { Body, Controller, Delete, Get, Param, Post, UseGuards } from '@nestjs/common'; +import { Body, Controller, Delete, Get, HttpCode, Param, Post, UseGuards } from '@nestjs/common'; import { ApiBearerAuth, ApiTags } from '@nestjs/swagger'; import { BulkLinksDto } from './dto/bulk-links.dto'; import { CreateLinkInput } from './dto/create-links.dto'; @@ -29,6 +29,7 @@ export class LinksController { } @Post('/bulk') + @HttpCode(200) getLinks(@Body() body: BulkLinksDto) { return this.linksService.getLinks(body.input); } diff --git a/apps/service-auth/src/links/links.service.ts b/apps/service-auth/src/links/links.service.ts index 15bc1ff..734500b 100644 --- a/apps/service-auth/src/links/links.service.ts +++ b/apps/service-auth/src/links/links.service.ts @@ -17,6 +17,6 @@ export class LinksService { } getLinks(playerTags: string[]) { - return [playerTags]; + return playerTags; } } diff --git a/apps/service-auth/src/main.ts b/apps/service-auth/src/main.ts index 4954bdd..a73cd62 100644 --- a/apps/service-auth/src/main.ts +++ b/apps/service-auth/src/main.ts @@ -17,7 +17,7 @@ async function bootstrap() { const document = SwaggerModule.createDocument(app, config); SwaggerModule.setup('/', app, document); - app.useGlobalPipes(new ValidationPipe({ transform: true })); + app.useGlobalPipes(new ValidationPipe()); const port = process.env.PORT || 8081; await app.listen(port); diff --git a/apps/service-auth/src/players/players.controller.ts b/apps/service-auth/src/players/players.controller.ts new file mode 100644 index 0000000..5bace72 --- /dev/null +++ b/apps/service-auth/src/players/players.controller.ts @@ -0,0 +1,18 @@ +import { JwtAuthGuard } from '@app/auth'; +import { Controller, Get, UseGuards } from '@nestjs/common'; +import { ApiBearerAuth, ApiTags } from '@nestjs/swagger'; +import { PlayersService } from './players.service'; + +@ApiTags('PLAYERS') +@ApiBearerAuth() +@UseGuards(JwtAuthGuard) +@Controller('/players') +export class PlayersController { + constructor(private playersService: PlayersService) {} + + @Get('/:playerTag/clan-wars') + getWarHistory() {} + + @Get('/:playerTag/clan-war-league-stats') + getClanWarLeagueStats() {} +} diff --git a/apps/service-auth/src/players/players.module.ts b/apps/service-auth/src/players/players.module.ts new file mode 100644 index 0000000..cd26dc2 --- /dev/null +++ b/apps/service-auth/src/players/players.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { PlayersController } from './players.controller'; +import { PlayersService } from './players.service'; + +@Module({ + controllers: [PlayersController], + providers: [PlayersService], +}) +export class PlayersModule {} diff --git a/apps/service-auth/src/players/players.service.ts b/apps/service-auth/src/players/players.service.ts new file mode 100644 index 0000000..58760bb --- /dev/null +++ b/apps/service-auth/src/players/players.service.ts @@ -0,0 +1,4 @@ +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class PlayersService {}