Skip to content
/ api Public
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions hasura/metadata/databases/default/tables/public_tournaments.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,9 @@ insert_permissions:
columns:
- auto_start
- description
- discord_guild_id
- discord_notifications_enabled
- discord_voice_enabled
- discord_notify_Canceled
- discord_notify_Finished
- discord_notify_Forfeit
Expand Down Expand Up @@ -178,7 +180,9 @@ insert_permissions:
columns:
- auto_start
- description
- discord_guild_id
- discord_notifications_enabled
- discord_voice_enabled
- discord_notify_Canceled
- discord_notify_Finished
- discord_notify_Forfeit
Expand Down Expand Up @@ -227,7 +231,9 @@ insert_permissions:
columns:
- auto_start
- description
- discord_guild_id
- discord_notifications_enabled
- discord_voice_enabled
- discord_notify_Canceled
- discord_notify_Finished
- discord_notify_Forfeit
Expand Down Expand Up @@ -278,7 +284,9 @@ insert_permissions:
columns:
- auto_start
- description
- discord_guild_id
- discord_notifications_enabled
- discord_voice_enabled
- discord_notify_Canceled
- discord_notify_Finished
- discord_notify_Forfeit
Expand Down Expand Up @@ -325,7 +333,9 @@ insert_permissions:
columns:
- auto_start
- description
- discord_guild_id
- discord_notifications_enabled
- discord_voice_enabled
- discord_notify_Canceled
- discord_notify_Finished
- discord_notify_Forfeit
Expand Down Expand Up @@ -373,7 +383,9 @@ insert_permissions:
columns:
- auto_start
- description
- discord_guild_id
- discord_notifications_enabled
- discord_voice_enabled
- discord_notify_Canceled
- discord_notify_Finished
- discord_notify_Forfeit
Expand Down Expand Up @@ -429,7 +441,9 @@ select_permissions:
- auto_start
- created_at
- description
- discord_guild_id
- discord_notifications_enabled
- discord_voice_enabled
- discord_notify_Canceled
- discord_notify_Finished
- discord_notify_Forfeit
Expand Down Expand Up @@ -477,7 +491,9 @@ update_permissions:
columns:
- auto_start
- description
- discord_guild_id
- discord_notifications_enabled
- discord_voice_enabled
- discord_notify_Canceled
- discord_notify_Finished
- discord_notify_Forfeit
Expand All @@ -502,3 +518,15 @@ update_permissions:
is_organizer:
_eq: true
comment: ""
event_triggers:
- name: tournament_events
definition:
enable_manual: true
update:
columns:
- status
retry_conf:
interval_sec: 10
num_retries: 3
timeout_sec: 60
webhook: '{{HASURA_GRAPHQL_EVENT_HOOK}}'
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ALTER TABLE public.tournaments
DROP COLUMN IF EXISTS discord_guild_id,
DROP COLUMN IF EXISTS discord_voice_enabled;
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ALTER TABLE public.tournaments
ADD COLUMN IF NOT EXISTS discord_guild_id text,
ADD COLUMN IF NOT EXISTS discord_voice_enabled boolean NOT NULL DEFAULT false;
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import {
} from "discord.js";
import { ConfigService } from "@nestjs/config";
import { AppConfig } from "src/configs/types/AppConfig";
import { HasuraService } from "../../hasura/hasura.service";

@Injectable()
export class DiscordBotMessagingService {
Expand All @@ -21,6 +22,7 @@ export class DiscordBotMessagingService {
@Inject(forwardRef(() => DiscordBotService))
private readonly bot: DiscordBotService,
protected readonly config: ConfigService,
private readonly hasura: HasuraService,
) {}

public async getMatchChannel(matchId: string): Promise<TextChannel> {
Expand All @@ -46,7 +48,7 @@ export class DiscordBotMessagingService {

if (channel) {
const categoryChannel = await this.getCategory(
this.getArchiveCategoryName(),
await this.getArchiveCategoryName(),
channel.guild,
);
await channel.setParent(categoryChannel);
Expand Down Expand Up @@ -204,8 +206,23 @@ export class DiscordBotMessagingService {
return `bot:${matchId}:thread`;
}

private getArchiveCategoryName() {
return `${this.config.get<AppConfig>("app").name} Matches Archive`;
private async getArchiveCategoryName() {
const brandName = await this.cache.remember<string>(
"settings:brand_name",
async () => {
const { settings_by_pk } = await this.hasura.query({
settings_by_pk: {
__args: {
name: "public.brand_name",
},
value: true,
},
});
return settings_by_pk?.value || this.config.get<AppConfig>("app").name;
},
60 * 60,
);
return `${brandName} Matches Archive`;
}

public async removeArchivedThreads() {
Expand All @@ -219,7 +236,7 @@ export class DiscordBotMessagingService {

for (const guild of guilds) {
const categoryChannel = await this.getCategory(
this.getArchiveCategoryName(),
await this.getArchiveCategoryName(),
guild,
);
const channels = categoryChannel.children.cache.values();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,12 @@ export class DiscordBotVoiceChannelsService {
originalChannelId: string,
categoryChannelId: string,
lineupId: string,
channelName?: string,
) {
const guild = await this.getGuild(guildId);

const voiceChannel = await guild.channels.create<ChannelType.GuildVoice>({
name: `${lineupId} [${matchId}]`,
name: channelName || `${lineupId} [${matchId}]`,
parent: categoryChannelId,
type: ChannelType.GuildVoice,
permissionOverwrites: [
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { forwardRef, Module } from "@nestjs/common";
import { DiscordTournamentVoiceService } from "./discord-tournament-voice.service";
import { DiscordBotModule } from "../discord-bot.module";
import { HasuraModule } from "../../hasura/hasura.module";
import { CacheModule } from "../../cache/cache.module";
import { loggerFactory } from "../../utilities/LoggerFactory";

@Module({
imports: [
forwardRef(() => DiscordBotModule),
HasuraModule,
CacheModule,
],
providers: [DiscordTournamentVoiceService, loggerFactory()],
exports: [DiscordTournamentVoiceService],
})
export class DiscordTournamentVoiceModule {}
Loading
Loading