From 9605ff8c92a3abd523b1959d352e456d6266aad5 Mon Sep 17 00:00:00 2001 From: knotteye Date: Tue, 13 Oct 2020 15:48:39 -0500 Subject: [PATCH] Add a way to generate invites from the command line. Add database migration script. --- package.json | 5 +++-- src/api.ts | 4 ++-- src/cli.ts | 13 ++++++++++++- src/db/2.ts | 8 ++++++++ 4 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 src/db/2.ts diff --git a/package.json b/package.json index 6c3531f..8d685ac 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,10 @@ "author": "knotteye", "scripts": { "start": "ts-node src/index.ts", - "user": "ts-node src/cli.ts", + "cli": "ts-node src/cli.ts", "setup": "sh install/setup.sh", - "migrate": "ts-node src/migrate.ts" + "migrate": "ts-node src/migrate.ts", + "invite": "ts-node src/cli.ts --invite" }, "repository": { "type": "git", diff --git a/src/api.ts b/src/api.ts index abf2e94..55d6437 100644 --- a/src/api.ts +++ b/src/api.ts @@ -98,9 +98,9 @@ async function getConfig(username: string, all?: boolean): Promise{ return t; } -async function genInvite(user: string): Promise{ +async function genInvite(): Promise{ var invitecode: string = base64id.generateId(); - await db.query('INSERT INTO invites (code) VALUES ('+invitecode+')'); + await db.query('INSERT INTO invites (code) VALUES (\"'+invitecode+'\")'); return invitecode; } diff --git a/src/cli.ts b/src/cli.ts index 110ecc6..1109154 100644 --- a/src/cli.ts +++ b/src/cli.ts @@ -1,4 +1,5 @@ -import * as db from "./database" +import * as db from "./database"; +import * as api from "./api"; import * as flags from "flags"; db.init(); @@ -6,6 +7,7 @@ db.init(); flags.defineString('adduser', '', 'User to add'); flags.defineString('rmuser', '', 'User to remove'); flags.defineString('password', '', 'password to hash'); +flags.defineBoolean('invite', false, 'generate invite code'); flags.parse(); @@ -23,4 +25,13 @@ if(flags.get('rmuser') !== ''){ else console.log("Could not remove user."); process.exit(); }); +} + +if(flags.get('invite')){ + var config = require("./config").config; + api.genInvite().then((r: string) => { + console.log('invite code: '+r); + console.log('Direct the user to https://'+config['satyr']['domain']+'/invite/'+r); + process.exit(); + }); } \ No newline at end of file diff --git a/src/db/2.ts b/src/db/2.ts new file mode 100644 index 0000000..cfe7ae0 --- /dev/null +++ b/src/db/2.ts @@ -0,0 +1,8 @@ +import * as db from "../database"; + +async function run () { + await db.query('CREATE TABLE IF NOT EXISTS invites(code VARCHAR(150))'); + await db.query('INSERT INTO db_meta (version) VALUES (2)'); +} + +export { run } \ No newline at end of file