add uuid to account

This commit is contained in:
Brian Cao 2022-09-30 22:27:47 -07:00
parent d4abe51331
commit adb0a06006
3 changed files with 26 additions and 8 deletions

View File

@ -0,0 +1,12 @@
-- AlterTable
ALTER TABLE "account" ADD COLUMN "account_uuid" UUID NULL;
-- Backfill UUID
UPDATE "account" SET account_uuid = gen_random_uuid();
-- AlterTable
ALTER TABLE "account" ALTER COLUMN "account_uuid" SET NOT NULL;
-- CreateIndex
CREATE UNIQUE INDEX "account_account_uuid_key" ON "account"("account_uuid");

View File

@ -8,13 +8,14 @@ datasource db {
} }
model account { model account {
user_id Int @id @default(autoincrement()) user_id Int @id @default(autoincrement())
username String @unique @db.VarChar(255) username String @unique @db.VarChar(255)
password String @db.VarChar(60) password String @db.VarChar(60)
is_admin Boolean @default(false) is_admin Boolean @default(false)
created_at DateTime? @default(now()) @db.Timestamptz(6) created_at DateTime? @default(now()) @db.Timestamptz(6)
updated_at DateTime? @default(now()) @db.Timestamptz(6) updated_at DateTime? @default(now()) @db.Timestamptz(6)
website website[] account_uuid String @unique @db.Uuid
website website[]
} }
model event { model event {

View File

@ -1,6 +1,7 @@
import { ok, unauthorized, methodNotAllowed, badRequest, hashPassword } from 'next-basics'; import { ok, unauthorized, methodNotAllowed, badRequest, hashPassword } from 'next-basics';
import { getAccountById, getAccountByUsername, updateAccount, createAccount } from 'queries'; import { getAccountById, getAccountByUsername, updateAccount, createAccount } from 'queries';
import { useAuth } from 'lib/middleware'; import { useAuth } from 'lib/middleware';
import { uuid } from 'lib/crypto';
export default async (req, res) => { export default async (req, res) => {
await useAuth(req, res); await useAuth(req, res);
@ -47,7 +48,11 @@ export default async (req, res) => {
return badRequest(res, 'Account already exists'); return badRequest(res, 'Account already exists');
} }
const created = await createAccount({ username, password: hashPassword(password) }); const created = await createAccount({
username,
password: hashPassword(password),
account_uuid: uuid(),
});
return ok(res, created); return ok(res, created);
} }