pockybot
Version:
Spark bot that handles team recognition
45 lines (44 loc) • 2.32 kB
TypeScript
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>;
}