pockybot
Version:
Spark bot that handles team recognition
35 lines (34 loc) • 1.53 kB
TypeScript
import { QueryResult } from 'pg';
import Config from '../config-interface';
import { PegGiven, ResultRow } from '../../models/database';
import { DbUsers } from './db-interfaces';
import { PockyDB as PockyDbInterface } from './db-interfaces';
import QueryHandler from './query-handler-interface';
import Utilities from '../utilities';
export default class PockyDB implements PockyDbInterface {
private readonly sqlGivePegWithComment;
private readonly sqlPegsGiven;
private readonly sqlPegsReceived;
private readonly sqlReset;
private readonly sqlReturnResults;
private readonly sqlReturnGives;
private config;
private queryHandler;
private dbUsers;
private readonly utilities;
constructor(queryHandler: QueryHandler, dbUsers: DbUsers, utilities: Utilities);
loadConfig(config: Config): void;
/**
* Returns 0 on success,
* 1 on 'you have no more pegs left to give' failure
* 2 on error
*/
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[]>;
}