2023-01-11 15:06:20 -08:00
import config from '../config.ts' ;
import { Client } from '../deps.ts' ;
import { LOCALMODE } from '../flags.ts' ;
2023-01-28 17:59:39 -08:00
import { DBGuildSettings , LfgChannelSetting } from './types/commandTypes.ts' ;
2023-01-11 15:06:20 -08:00
export const dbClient = await new Client ( ) . connect ( {
hostname : LOCALMODE ? config.db.localhost : config.db.host ,
port : config.db.port ,
db : config.db.name ,
username : config.db.username ,
password : config.db.password ,
} ) ;
export const queries = {
callIncCnt : ( cmdName : string ) = > ` CALL INC_CNT(" ${ cmdName } "); ` ,
2023-04-28 12:53:17 -07:00
selectEvents : ( notifiedFlag : number , lockedFlag : number ) = > ` SELECT * FROM active_events WHERE notifiedFlag = ${ notifiedFlag } AND lockedFlag = ${ lockedFlag } AND eventTime < ? ` ,
selectFailedEvents : 'SELECT * FROM active_events WHERE (notifiedFlag = -1 OR lockedFlag = -1) AND eventTime < ?' ,
2023-04-20 23:41:37 -07:00
insertEvent : 'INSERT INTO active_events(messageId,channelId,guildId,ownerId,eventTime) values(?,?,?,?,?)' ,
2023-04-28 12:53:17 -07:00
updateEventTime : 'UPDATE active_events SET eventTime = ? WHERE channelId = ? AND messageId = ?' ,
2023-04-28 20:27:42 -07:00
updateEventFlags : ( notifiedFlag : number , lockedFlag : number ) = > ` UPDATE active_events SET notifiedFlag = ${ notifiedFlag } , lockedFlag = ${ lockedFlag } WHERE channelId = ? AND messageId = ? ` ,
2023-04-20 23:41:37 -07:00
deleteEvent : 'DELETE FROM active_events WHERE channelId = ? AND messageId = ?' ,
2023-04-29 00:57:18 -07:00
insertCustomActivity : 'INSERT INTO custom_activities(activityTitle,activitySubtitle,maxMembers) values(?,?,?)' ,
2023-01-11 15:06:20 -08:00
} ;
2023-01-11 18:21:43 -08:00
2023-01-28 17:58:24 -08:00
export const lfgChannelSettings : Map < string , LfgChannelSetting > = new Map ( ) ;
2023-04-09 01:12:53 -07:00
export const generateGuildSettingKey = ( guildId : bigint , channelId : bigint ) = > ` ${ guildId } - ${ channelId } ` ;
2023-01-28 17:58:24 -08:00
const getGuildSettings = await dbClient . query ( 'SELECT * FROM guild_settings' ) ;
getGuildSettings . forEach ( ( g : DBGuildSettings ) = > {
2023-04-09 01:12:53 -07:00
lfgChannelSettings . set ( generateGuildSettingKey ( g . guildId , g . lfgChannelId ) , {
managed : g.managerRoleId !== 0 n && g . logChannelId !== 0 n ,
2023-01-28 17:58:24 -08:00
managerRoleId : g.managerRoleId ,
logChannelId : g.logChannelId ,
} ) ;
} ) ;