UNPKG

pockybot

Version:

Spark bot that handles team recognition

45 lines (44 loc) 2.32 kB
import { QueryResult } from 'pg'; import { ResultRow, PegGiven, UserRow, RolesRow, ConfigRow, StringConfigRow, Role, UserLocationRow } from '../../models/database'; import Config from '../config-interface'; export interface PockyDB { loadConfig: (config: Config) => void; givePegWithComment: (comment: string, receiver: string, sender: string) => Promise<number>; countPegsGiven: (user: string, keywords: string[], penaltyKeywords: string[]) => Promise<number>; countPenaltyPegsGiven: (user: string, keywords: string[], penaltyKeywords: string[]) => Promise<number>; countPegsReceived: (user: string) => Promise<number>; senderCanPeg: (user: string, comment: string) => Promise<boolean>; reset: () => Promise<QueryResult>; returnResults: () => Promise<ResultRow[]>; getPegsGiven: (user: string) => Promise<PegGiven[]>; } export interface DbUsers { createUser: (userid: string) => Promise<QueryResult>; updateUser: (username: string, userid: string) => Promise<number>; getUsers: () => Promise<UserRow[]>; getUser: (userid: string) => Promise<UserRow>; existsOrCanBeCreated: (userid: string) => Promise<boolean>; exists: (userid: string) => Promise<boolean>; deleteUser: (userid: string) => Promise<void>; } export interface DbConfig { getRoles: () => Promise<RolesRow[]>; getConfig: () => Promise<ConfigRow[]>; getStringConfig: () => Promise<StringConfigRow[]>; setRoles: (userid: string, role: Role) => Promise<void>; setConfig: (config: string, value: number) => Promise<void>; setStringConfig: (config: string, value: string) => Promise<void>; deleteRole: (userid: string, role: Role) => Promise<void>; deleteConfig: (config: string) => Promise<void>; deleteStringConfig: (config: string, value: string) => Promise<void>; } export interface DbLocation { getUserLocation: (userid: string) => Promise<UserLocationRow>; getAllUserLocations: () => Promise<UserLocationRow[]>; getLocations: () => Promise<string[]>; getUsersWithoutLocation: () => Promise<UserRow[]>; setUserLocation: (userid: string, location: string) => Promise<void>; setLocation: (name: string) => Promise<void>; deleteUserLocation: (userid: string) => Promise<void>; deleteLocation: (name: string) => Promise<void>; }