Skip to content

Commit 4a62930

Browse files
committed
Enrich /GET competitions endpoints
1 parent c04524a commit 4a62930

File tree

4 files changed

+37
-6
lines changed

4 files changed

+37
-6
lines changed

src/app.controller.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import {plainToInstance} from "class-transformer";
2626
import {JwtUserAccount} from "./entities/user-account.entity";
2727
import {GetWinnerLiquidityProvisionsDto} from "./dto/winner.liquidity.dto";
2828
import {CacheTTL} from "@nestjs/common/cache";
29+
import {GetCompetitionsDto} from "./dto/competition.dto";
2930

3031
@SkipThrottle()
3132
@ApiTags('app')
@@ -99,8 +100,8 @@ export class AppController {
99100

100101
@CacheTTL(200)
101102
@Get('/competitions')
102-
getCompetitions() {
103-
return this.appService.getCompetitions()
103+
getCompetitions(@Query() dto: GetCompetitionsDto) {
104+
return this.appService.getCompetitions(dto)
104105
}
105106

106107
@CacheTTL(200)

src/app.service.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {GetCandlesDto, GetTradesDto} from "./dto/trade.dto";
1616
import {UserService} from "./user/user.service";
1717
import {Candle} from "./types";
1818
import {GetWinnerLiquidityProvisionsDto} from "./dto/winner.liquidity.dto";
19+
import {GetCompetitionsDto} from "./dto/competition.dto";
1920

2021
@Injectable()
2122
export class AppService {
@@ -109,13 +110,19 @@ export class AppService {
109110
})
110111
}
111112

112-
async getCompetitions() {
113+
async getCompetitions(dto: GetCompetitionsDto = {}) {
114+
const {offset = 0, limit = 100, competitionId} = dto
115+
113116
return await this.dataSource.manager.find(CompetitionEntity, {
114117
relations: ['winnerToken'],
115-
where: {},
118+
where: {
119+
competitionId
120+
},
116121
order: {
117122
competitionId: 'desc'
118-
}
123+
},
124+
skip: offset,
125+
take: limit
119126
})
120127
}
121128

src/dto/competition.dto.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import {ApiProperty} from "@nestjs/swagger";
2+
import {Type} from "class-transformer";
3+
import {IsOptional, IsString} from "class-validator";
4+
5+
export class GetCompetitionsDto {
6+
@ApiProperty({ type: Number, required: false })
7+
@IsOptional()
8+
competitionId?: number;
9+
10+
@ApiProperty({ type: Number, required: false, default: '100' })
11+
// @Transform((limit) => limit.value.toNumber())
12+
@Type(() => String)
13+
@IsString()
14+
@IsOptional()
15+
limit?: number;
16+
17+
@ApiProperty({ type: Number, required: false, default: '0' })
18+
// @Transform((offset) => offset.value.toNumber())
19+
@Type(() => String)
20+
@IsString()
21+
@IsOptional()
22+
offset?: number;
23+
}

src/indexer/indexer.service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ export class IndexerService {
387387
const competitionId = Number(values['competitionId'] as bigint)
388388
const timestamp = Number(values['timestamp'] as bigint)
389389

390-
const competitions = await this.appService.getCompetitions()
390+
const competitions = await this.appService.getCompetitions({ limit: 1 })
391391
if(competitions.length > 0) {
392392
const currentCompetition = competitions[0]
393393
if(currentCompetition) {

0 commit comments

Comments
 (0)