iceshrimp-legacy/packages/backend/src/server/api/endpoints/admin/invite.ts
ThatOneCalculator 7c2dabd047
no more eslint
2023-01-12 20:54:33 -08:00

52 lines
863 B
TypeScript

import rndstr from "rndstr";
import define from "../../define.js";
import { RegistrationTickets } from "@/models/index.js";
import { genId } from "@/misc/gen-id.js";
export const meta = {
tags: ["admin"],
requireCredential: true,
requireModerator: true,
res: {
type: "object",
optional: false,
nullable: false,
properties: {
code: {
type: "string",
optional: false,
nullable: false,
example: "2ERUA5VR",
maxLength: 8,
minLength: 8,
},
},
},
} as const;
export const paramDef = {
type: "object",
properties: {},
required: [],
} as const;
export default define(meta, paramDef, async () => {
const code = rndstr({
length: 8,
chars: "2-9A-HJ-NP-Z", // [0-9A-Z] w/o [01IO] (32 patterns)
});
await RegistrationTickets.insert({
id: genId(),
createdAt: new Date(),
code,
});
return {
code,
};
});