Skip to content

Commit bb86e7e

Browse files
authored
fix(queue-config): cleanup queue config module (#2792)
1 parent f2f8585 commit bb86e7e

27 files changed

+51
-104
lines changed

src/game-configs/services/game-configs.service.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Tf2ClassName } from '@/shared/models/tf2-class-name';
22
import { Test, TestingModule } from '@nestjs/testing';
33
import { GameConfigsService } from './game-configs.service';
4-
import { QUEUE_CONFIG } from '@/queue-config/queue-config.token';
4+
import { QUEUE_CONFIG } from '@/queue-config/tokens/queue-config.token';
55

66
describe('GameConfigsService', () => {
77
let service: GameConfigsService;

src/game-configs/services/game-configs.service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import { join } from 'path';
33
import { compile } from 'handlebars';
44
import { readFile } from 'fs/promises';
55
import { isEmpty } from 'lodash';
6-
import { QueueConfig } from '@/queue-config/interfaces/queue-config';
7-
import { QUEUE_CONFIG } from '@/queue-config/queue-config.token';
6+
import { QueueConfig } from '@/queue-config/types/queue-config';
7+
import { QUEUE_CONFIG } from '@/queue-config/tokens/queue-config.token';
88

99
@Injectable()
1010
export class GameConfigsService implements OnModuleInit {

src/games/services/games-configuration.service.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { ConfigurationService } from '@/configuration/services/configuration.service';
22
import { Test, TestingModule } from '@nestjs/testing';
33
import { GamesConfigurationService } from './games-configuration.service';
4-
import { QUEUE_CONFIG } from '@/queue-config/queue-config.token';
4+
import { QUEUE_CONFIG } from '@/queue-config/tokens/queue-config.token';
55

66
jest.mock('@/configuration/services/configuration.service');
77

src/games/services/games-configuration.service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import { milliseconds } from 'date-fns';
66
import { z } from 'zod';
77
import { LogsTfUploadMethod } from '../types/logs-tf-upload-method';
88
import { VoiceServerType } from '../types/voice-server-type';
9-
import { QueueConfig } from '@/queue-config/interfaces/queue-config';
10-
import { QUEUE_CONFIG } from '@/queue-config/queue-config.token';
9+
import { QueueConfig } from '@/queue-config/types/queue-config';
10+
import { QUEUE_CONFIG } from '@/queue-config/tokens/queue-config.token';
1111

1212
@Injectable()
1313
export class GamesConfigurationService implements OnModuleInit {

src/players/controllers/players.controller.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ import { LinkedProfileProviderName } from '../types/linked-profile-provider-name
1313
import { Types } from 'mongoose';
1414
import { ImportExportSkillService } from '../services/import-export-skill.service';
1515
import { PlayerSkillRecordMalformedError } from '../errors/player-skill-record-malformed.error';
16-
import { QueueConfig } from '@/queue-config/interfaces/queue-config';
16+
import { QueueConfig } from '@/queue-config/types/queue-config';
1717
import { PlayerId } from '../types/player-id';
1818
import { CacheModule } from '@nestjs/cache-manager';
19-
import { QUEUE_CONFIG } from '@/queue-config/queue-config.token';
19+
import { QUEUE_CONFIG } from '@/queue-config/tokens/queue-config.token';
2020

2121
jest.mock('../services/linked-profiles.service');
2222
jest.mock('../services/import-export-skill.service');

src/players/pipes/validate-skill.pipe.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { QueueConfig } from '@/queue-config/interfaces/queue-config';
1+
import { QueueConfig } from '@/queue-config/types/queue-config';
22
import { Tf2ClassName } from '@/shared/models/tf2-class-name';
33
import { BadRequestException } from '@nestjs/common';
44
import { ValidateSkillPipe } from './validate-skill.pipe';

src/players/pipes/validate-skill.pipe.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { QueueConfig } from '@/queue-config/interfaces/queue-config';
2-
import { QUEUE_CONFIG } from '@/queue-config/queue-config.token';
1+
import { QueueConfig } from '@/queue-config/types/queue-config';
2+
import { QUEUE_CONFIG } from '@/queue-config/tokens/queue-config.token';
33
import { Tf2ClassName } from '@/shared/models/tf2-class-name';
44
import {
55
BadRequestException,

src/players/services/import-export-skill.service.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Test, TestingModule } from '@nestjs/testing';
33
import { PlayerSkillRecordMalformedError } from '../errors/player-skill-record-malformed.error';
44
import { FuturePlayerSkillService } from './future-player-skill.service';
55
import { ImportExportSkillService } from './import-export-skill.service';
6-
import { QUEUE_CONFIG } from '@/queue-config/queue-config.token';
6+
import { QUEUE_CONFIG } from '@/queue-config/tokens/queue-config.token';
77

88
jest.mock('./future-player-skill.service');
99

src/players/services/import-export-skill.service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import { QueueConfig } from '@/queue-config/interfaces/queue-config';
1+
import { QueueConfig } from '@/queue-config/types/queue-config';
22
import { Inject, Injectable } from '@nestjs/common';
33
import { PlayerSkillRecordMalformedError } from '../errors/player-skill-record-malformed.error';
44
import { FuturePlayerSkillService } from './future-player-skill.service';
5-
import { QUEUE_CONFIG } from '@/queue-config/queue-config.token';
5+
import { QUEUE_CONFIG } from '@/queue-config/tokens/queue-config.token';
66

77
@Injectable()
88
export class ImportExportSkillService {

src/plugins/discord/services/queue-prompts.service.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import { QueueService } from '@/queue/services/queue.service';
2323
import { Tf2ClassName } from '@/shared/models/tf2-class-name';
2424
import { Cache } from 'cache-manager';
2525
import { DISCORD_CLIENT } from '../discord-client.token';
26-
import { QUEUE_CONFIG } from '@/queue-config/queue-config.token';
26+
import { QUEUE_CONFIG } from '@/queue-config/tokens/queue-config.token';
2727

2828
jest.mock('@/configuration/services/configuration.service');
2929
jest.mock('@/players/services/players.service');

src/plugins/discord/services/queue-prompts.service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Environment } from '@/environment/environment';
22
import { Events } from '@/events/events';
3-
import { QueueConfig } from '@/queue-config/interfaces/queue-config';
3+
import { QueueConfig } from '@/queue-config/types/queue-config';
44
import { Inject, Injectable, Logger, OnModuleInit } from '@nestjs/common';
55
import { catchError, concatMap, debounceTime, from, map, of } from 'rxjs';
66
import { queuePreview } from '../notifications';
@@ -21,7 +21,7 @@ import { Cron, CronExpression } from '@nestjs/schedule';
2121
import { QueueService } from '@/queue/services/queue.service';
2222
import { QueueSlot } from '@/queue/queue-slot';
2323
import { DISCORD_CLIENT } from '../discord-client.token';
24-
import { QUEUE_CONFIG } from '@/queue-config/queue-config.token';
24+
import { QUEUE_CONFIG } from '@/queue-config/tokens/queue-config.token';
2525

2626
const queuePromptMessageIdCacheKey = (guildId: string) =>
2727
`queue-prompt-message-id/${guildId}`;

src/profile/services/profile.service.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { Types } from 'mongoose';
1919
import { Subject } from 'rxjs';
2020
import { RestrictionReason } from '../interfaces/restriction';
2121
import { ProfileService } from './profile.service';
22-
import { QUEUE_CONFIG } from '@/queue-config/queue-config.token';
22+
import { QUEUE_CONFIG } from '@/queue-config/tokens/queue-config.token';
2323

2424
jest.mock('@/players/services/online-players.service');
2525
jest.mock('@/players/services/linked-profiles.service');

src/profile/services/profile.service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { Player } from '@/players/models/player';
55
import { LinkedProfilesService } from '@/players/services/linked-profiles.service';
66
import { OnlinePlayersService } from '@/players/services/online-players.service';
77
import { PlayerBansService } from '@/players/services/player-bans.service';
8-
import { QueueConfig } from '@/queue-config/interfaces/queue-config';
8+
import { QueueConfig } from '@/queue-config/types/queue-config';
99
import { MapVoteService } from '@/queue/services/map-vote.service';
1010
import { WebsocketEvent } from '@/websocket-event';
1111
import { Inject, Injectable, OnModuleInit } from '@nestjs/common';
@@ -14,7 +14,7 @@ import { ProfileDto } from '../dto/profile.dto';
1414
import { Restriction, RestrictionReason } from '../interfaces/restriction';
1515
import { serialize } from '@/shared/serialize';
1616
import { isUndefined } from 'lodash';
17-
import { QUEUE_CONFIG } from '@/queue-config/queue-config.token';
17+
import { QUEUE_CONFIG } from '@/queue-config/tokens/queue-config.token';
1818

1919
const playersEqual = (a: Player, b: Player) => {
2020
return a.name === b.name;

src/queue-config/interfaces/game-class.ts

Lines changed: 0 additions & 7 deletions
This file was deleted.

src/queue-config/interfaces/queue-config.ts

Lines changed: 0 additions & 9 deletions
This file was deleted.

src/queue-config/parse-queue-config.ts

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/queue-config/queue-config.module.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,13 @@ import { Environment } from '@/environment/environment';
22
import { Module, Provider } from '@nestjs/common';
33
import { readFile } from 'fs/promises';
44
import { join } from 'path';
5-
import { parseQueueConfig } from './parse-queue-config';
6-
import { QUEUE_CONFIG_JSON } from './queue-config-json.token';
7-
import { QUEUE_CONFIG } from './queue-config.token';
5+
import { QUEUE_CONFIG_JSON } from './tokens/queue-config-json.token';
6+
import { QUEUE_CONFIG } from './tokens/queue-config.token';
7+
import { QueueConfig } from './types/queue-config';
8+
import { queueConfigSchema } from './schemas/queue-config.schema';
9+
10+
const parseQueueConfig = (json: string): QueueConfig =>
11+
queueConfigSchema.parse(JSON.parse(json));
812

913
const queueConfigJsonProvider: Provider = {
1014
provide: QUEUE_CONFIG_JSON,

src/queue-config/queue-config.schema.json

Lines changed: 0 additions & 48 deletions
This file was deleted.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { Tf2ClassName } from '@/shared/models/tf2-class-name';
2+
import { z } from 'zod';
3+
4+
export const queueConfigSchema = z.object({
5+
teamCount: z.literal(2),
6+
classes: z.array(
7+
z.object({
8+
name: z.nativeEnum(Tf2ClassName),
9+
count: z.number().gte(1),
10+
canMakeFriendsWith: z.array(z.nativeEnum(Tf2ClassName)).optional(),
11+
}),
12+
),
13+
});
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { z } from 'zod';
2+
import { queueConfigSchema } from '../schemas/queue-config.schema';
3+
4+
export type QueueConfig = z.infer<typeof queueConfigSchema>;

src/queue/controllers/queue-wrapper.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Serializable } from '@/shared/serializable';
22
import { QueueDto } from '../dto/queue.dto';
33
import { MapVoteResult } from '../map-vote-result';
4-
import { QueueConfig } from '../../queue-config/interfaces/queue-config';
4+
import { QueueConfig } from '@/queue-config/types/queue-config';
55
import { QueueSlot } from '../queue-slot';
66
import { QueueState } from '../queue-state';
77
import { Friendship } from '../services/friends.service';

src/queue/controllers/queue.controller.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { MapPoolEntry } from '../models/map-pool-entry';
1111
import { Player } from '@/players/models/player';
1212
import { Types } from 'mongoose';
1313
import { PlayerId } from '@/players/types/player-id';
14-
import { QUEUE_CONFIG } from '@/queue-config/queue-config.token';
14+
import { QUEUE_CONFIG } from '@/queue-config/tokens/queue-config.token';
1515

1616
jest.mock('../services/queue.service');
1717
jest.mock('../services/map-vote.service');

src/queue/controllers/queue.controller.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ import { QueueWrapper } from './queue-wrapper';
2727
import { MapPoolEntryDto } from '../dto/map-pool-item.dto';
2828
import { User } from '@/auth/decorators/user.decorator';
2929
import { Player } from '@/players/models/player';
30-
import { QueueConfig } from '@/queue-config/interfaces/queue-config';
30+
import { QueueConfig } from '@/queue-config/types/queue-config';
3131
import { MongoDbErrorFilter } from '@/shared/filters/mongo-db-error.filter';
32-
import { QUEUE_CONFIG } from '@/queue-config/queue-config.token';
32+
import { QUEUE_CONFIG } from '@/queue-config/tokens/queue-config.token';
3333

3434
@Controller('queue')
3535
export class QueueController {

src/queue/services/queue.service.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { QueueSlot } from '../queue-slot';
1313
import { ConfigurationService } from '@/configuration/services/configuration.service';
1414
import { PlayerBanId } from '@/players/types/player-ban-id';
1515
import { PlayerId } from '@/players/types/player-id';
16-
import { QUEUE_CONFIG } from '@/queue-config/queue-config.token';
16+
import { QUEUE_CONFIG } from '@/queue-config/tokens/queue-config.token';
1717

1818
jest.mock('@/configuration/services/configuration.service', () => ({
1919
ConfigurationService: jest.fn().mockImplementation(() => {

src/queue/services/queue.service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ import { PlayerNotInTheQueueError } from '../errors/player-not-in-the-queue.erro
1616
import { WrongQueueStateError } from '../errors/wrong-queue-state.error';
1717
import { CannotJoinAtThisQueueStateError } from '../errors/cannot-join-at-this-queue-state.error';
1818
import { Cache } from 'cache-manager';
19-
import { QueueConfig } from '@/queue-config/interfaces/queue-config';
19+
import { QueueConfig } from '@/queue-config/types/queue-config';
2020
import { ConfigurationService } from '@/configuration/services/configuration.service';
2121
import { PlayerId } from '@/players/types/player-id';
2222
import { Tf2ClassName } from '@/shared/models/tf2-class-name';
2323
import { Types } from 'mongoose';
2424
import { CACHE_MANAGER } from '@nestjs/cache-manager';
25-
import { QUEUE_CONFIG } from '@/queue-config/queue-config.token';
25+
import { QUEUE_CONFIG } from '@/queue-config/tokens/queue-config.token';
2626

2727
interface Queue {
2828
slots: {

0 commit comments

Comments
 (0)