Update the Nightbot command to use the async'd DB
This commit is contained in:
parent
bca094c832
commit
3c293d371a
1 changed files with 17 additions and 19 deletions
|
|
@ -4,20 +4,20 @@ import { database } from "$/main";
|
||||||
import boom from "@hapi/boom";
|
import boom from "@hapi/boom";
|
||||||
import Joi from "joi";
|
import Joi from "joi";
|
||||||
|
|
||||||
function subtractHandler(request: Request, meta: subcommandMetadata, args: string[]) {
|
async function subtractHandler(request: Request, meta: subcommandMetadata, args: string[]) {
|
||||||
// args: !cmd sub <counter:string> [delta:integer]
|
// args: !cmd sub <counter:string> [delta:integer]
|
||||||
// args: !cmd remove <counter:string> [delta:integer]
|
// args: !cmd remove <counter:string> [delta:integer]
|
||||||
let { channel } = meta;
|
let { channel } = meta;
|
||||||
let counter = args[1].toLowerCase();
|
let counter = args[1].toLowerCase();
|
||||||
let delta = args[2] ? parseInt(args[2]) : 1;
|
let delta = args[2] ? parseInt(args[2]) : 1;
|
||||||
|
|
||||||
if (!database.counterExists(channel, counter)) {
|
if (!await database.counterExists(channel, counter)) {
|
||||||
throw new Error(`No counter exists with that name`);
|
throw new Error(`No counter exists with that name`);
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
value: database.changeCount(channel, counter, -delta),
|
value: await database.changeCount(channel, counter, -delta),
|
||||||
message: database.getMessage(channel, counter)
|
message: await database.getMessage(channel, counter)
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -28,19 +28,19 @@ interface subcommandMetadata {
|
||||||
const subcommands: {[index: string]: any} = {
|
const subcommands: {[index: string]: any} = {
|
||||||
"add": {
|
"add": {
|
||||||
argc: 1,
|
argc: 1,
|
||||||
handler(request: Request, meta: subcommandMetadata, args: string[]) {
|
async handler(request: Request, meta: subcommandMetadata, args: string[]) {
|
||||||
// args: !cmd add <counter:string> [delta:integer]
|
// args: !cmd add <counter:string> [delta:integer]
|
||||||
let { channel } = meta;
|
let { channel } = meta;
|
||||||
let counter = args[1].toLowerCase();
|
let counter = args[1].toLowerCase();
|
||||||
let delta = args[2] ? parseInt(args[2]) : 1;
|
let delta = args[2] ? parseInt(args[2]) : 1;
|
||||||
|
|
||||||
if (!database.counterExists(channel, counter)) {
|
if (!await database.counterExists(channel, counter)) {
|
||||||
throw new Error(`No counter exists with that name`);
|
throw new Error(`No counter exists with that name`);
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
value: database.changeCount(channel, counter, delta),
|
value: await database.changeCount(channel, counter, delta),
|
||||||
message: database.getMessage(channel, counter),
|
message: await database.getMessage(channel, counter),
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -48,11 +48,11 @@ const subcommands: {[index: string]: any} = {
|
||||||
"remove": { argc: 1, handler: subtractHandler, },
|
"remove": { argc: 1, handler: subtractHandler, },
|
||||||
"new": {
|
"new": {
|
||||||
argc: 1,
|
argc: 1,
|
||||||
handler(request: Request, meta: subcommandMetadata, args: string[]) {
|
async handler(request: Request, meta: subcommandMetadata, args: string[]) {
|
||||||
// args: !cmd new <counter:string>
|
// args: !cmd new <counter:string>
|
||||||
let { channel } = meta;
|
let { channel } = meta;
|
||||||
let counter = args[1].toLowerCase();
|
let counter = args[1].toLowerCase();
|
||||||
database.addCounter(channel, counter);
|
await database.addCounter(channel, counter);
|
||||||
return {
|
return {
|
||||||
message: `Counter ${counter} created successfully.`,
|
message: `Counter ${counter} created successfully.`,
|
||||||
value: 0
|
value: 0
|
||||||
|
|
@ -61,19 +61,19 @@ const subcommands: {[index: string]: any} = {
|
||||||
},
|
},
|
||||||
"default": {
|
"default": {
|
||||||
argc: 0,
|
argc: 0,
|
||||||
handler(request: Request, meta: subcommandMetadata, args: string[]) {
|
async handler(request: Request, meta: subcommandMetadata, args: string[]) {
|
||||||
// args: !cmd <counter:string> [delta:number]
|
// args: !cmd <counter:string> [delta:number]
|
||||||
let { channel } = meta;
|
let { channel } = meta;
|
||||||
let counter = args[0].toLowerCase();
|
let counter = args[0].toLowerCase();
|
||||||
let delta = args[1] ? parseInt(args[1]) : 1;
|
let delta = args[1] ? parseInt(args[1]) : 1;
|
||||||
|
|
||||||
if (!database.counterExists(channel, counter)) {
|
if (!await database.counterExists(channel, counter)) {
|
||||||
throw new Error(`No counter exists with that name`);
|
throw new Error(`No counter exists with that name`);
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
value: database.changeCount(channel, counter, delta),
|
value: await database.changeCount(channel, counter, delta),
|
||||||
message: database.getMessage(channel, counter)
|
message: await database.getMessage(channel, counter)
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -111,16 +111,14 @@ const route: ServerRoute = {
|
||||||
if (!user) { throw boom.badData(`Missing user name`) };
|
if (!user) { throw boom.badData(`Missing user name`) };
|
||||||
|
|
||||||
|
|
||||||
if (!database.channelExists(channel)) {
|
if (!await database.channelExists(channel)) {
|
||||||
return `The channel isn't setup to use the counter system`;
|
return `The channel isn't setup to use the counter system`;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (database.isUserIgnored(channel, user)) { return `Invalid permissions`; };
|
if (await database.isUserIgnored(channel, user)) { return `Invalid permissions`; };
|
||||||
|
|
||||||
console.log(`[${channel}] ${user} is running command with args: ${args}`);
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
var { message, value } = sc.handler(
|
var { message, value } = await sc.handler(
|
||||||
request,
|
request,
|
||||||
{ channel, user },
|
{ channel, user },
|
||||||
args
|
args
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue