Skip to content

Commit

Permalink
Merge pull request #154 from klayrHQ/meta-account-controller
Browse files Browse the repository at this point in the history
📚 add meta data to swagger response for account controller
  • Loading branch information
Theezr authored Nov 18, 2024
2 parents 0b69146 + a4ec134 commit d0543f1
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 5 deletions.
4 changes: 2 additions & 2 deletions src/modules/account/account.controller.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Controller, Get, Query, UsePipes, ValidationPipe } from '@nestjs/common';
import { ApiResponse, ApiTags } from '@nestjs/swagger';
import { PrismaService } from '../prisma/prisma.service';
import { getAccountsResponse } from './dto/get-accounts-res.dto';
import { getAccountsRes } from './dto/get-accounts-res.dto';
import { GatewayResponse } from 'src/utils/controller-helpers';
import { GetAccountsDto } from './dto/get-accounts.dto';
import { Prisma } from '@prisma/client';
Expand All @@ -14,7 +14,7 @@ export class AccountController {

@Get()
@UsePipes(new ValidationPipe({ transform: true, whitelist: true, forbidNonWhitelisted: true }))
@ApiResponse(getAccountsResponse)
@ApiResponse(getAccountsRes)
async getAccounts(@Query() query: GetAccountsDto): Promise<GatewayResponse<any[]>> {
const { address, name, publicKey, offset, sort, limit } = query;
const [field, direction] = sort.split(':');
Expand Down
16 changes: 13 additions & 3 deletions src/modules/account/dto/get-accounts-res.dto.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { ApiResponseOptions } from '@nestjs/swagger';

export class GetAccountsResDto {
export class GetAccountsData {
address: string;
publicKey: string;
name: string;
Expand All @@ -10,9 +10,19 @@ export class GetAccountsResDto {
lockedBalance: string;
}

export const getAccountsResponse: ApiResponseOptions = {
export class GetAccountMeta {
count: number;
offset: number;
total: number;
}

export class GetAccountsResDto {
data: GetAccountsData[];
meta: GetAccountMeta;
}

export const getAccountsRes: ApiResponseOptions = {
status: 200,
description: 'The accounts have been successfully fetched.',
type: GetAccountsResDto,
isArray: true,
};

0 comments on commit d0543f1

Please sign in to comment.