From 20d998bc3e8c6476027694185e17ec66c71e4c07 Mon Sep 17 00:00:00 2001 From: Badi Ifaoui Date: Mon, 28 Jul 2025 10:45:43 +0100 Subject: [PATCH 1/2] feat: add API tags and operation IDs to analytics controller for improved Swagger documentation --- src/analytics/controllers/analytic.controller.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/analytics/controllers/analytic.controller.ts b/src/analytics/controllers/analytic.controller.ts index 6407d26..553180a 100644 --- a/src/analytics/controllers/analytic.controller.ts +++ b/src/analytics/controllers/analytic.controller.ts @@ -2,11 +2,12 @@ import { BadRequestException, Controller, Get, Query } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Between, Repository } from 'typeorm'; import { Analytic } from '../entities/analytic.entity'; -import { ApiQuery } from '@nestjs/swagger'; +import { ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger'; import moment from 'moment'; import { CacheDailyAnalyticsDataService } from '../services/cache-daily-analytics-data.service'; @Controller('analytics') +@ApiTags('Analytics') export class AnalyticController { constructor( @InjectRepository(Analytic) @@ -21,6 +22,9 @@ export class AnalyticController { @ApiQuery({ name: 'start_date', type: 'string', required: false }) @ApiQuery({ name: 'end_date', type: 'string', required: false }) @ApiQuery({ name: 'force_pull', type: 'boolean', required: false }) + @ApiOperation({ + operationId: 'getAnalyticsData', + }) async getAnalyticsData( @Query('start_date') start_date: string, @Query('end_date') end_date: string, @@ -53,6 +57,9 @@ export class AnalyticController { } @Get('past-24-hours') + @ApiOperation({ + operationId: 'getPast24HoursAnalytics', + }) async getPast24HoursAnalytics() { const startDate = moment().subtract(24, 'hours').toDate(); const endDate = moment().add(1, 'day').toDate(); From b013e3ee5c55bde15c47ab6b0e34181b4430855f Mon Sep 17 00:00:00 2001 From: Badi Ifaoui Date: Tue, 29 Jul 2025 09:19:02 +0100 Subject: [PATCH 2/2] feat: enhance token ranking retrieval in AccountTokensController to include ranks in token response --- src/tokens/account-tokens.controller.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/tokens/account-tokens.controller.ts b/src/tokens/account-tokens.controller.ts index 3c81429..ee1d3bf 100644 --- a/src/tokens/account-tokens.controller.ts +++ b/src/tokens/account-tokens.controller.ts @@ -85,11 +85,22 @@ export class AccountTokensController { address: owner_address || creator_address, }); + const tokenIds = tokensQueryResult.items + .map((holder) => holder.address) + .filter((address): address is string => address !== undefined); + + const tokenRanks = await this.tokensService.getTokenRanksByAex9Address( + tokenIds as any, + ); + const holdings = await tokenHoldersQueryBuilder.getMany(); return { ...tokensQueryResult, items: tokensQueryResult.items?.map((token) => ({ - token, + token: { + ...token, + rank: tokenRanks.get(token.address as any), + }, address: owner_address || creator_address, balance: holdings.find((holder) => holder.aex9_address === token.address)