@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
1 lines • 6.8 kB
Source Map (JSON)
{"version":3,"file":"user-tokens.mjs","names":["constants"],"sources":["../../../src/libs/repositories/user-tokens.ts"],"sourcesContent":["import z from \"zod\";\nimport constants from \"../../constants/constants.js\";\nimport type DatabaseAdapter from \"../db/adapter-base.js\";\nimport type { KyselyDB } from \"../db/types.js\";\nimport StaticRepository from \"./parents/static-repository.js\";\nimport type { QueryProps } from \"./types.js\";\n\nexport default class UserTokensRepository extends StaticRepository<\"lucid_user_tokens\"> {\n\tconstructor(db: KyselyDB, dbAdapter: DatabaseAdapter) {\n\t\tsuper(db, dbAdapter, \"lucid_user_tokens\");\n\t}\n\ttableSchema = z.object({\n\t\tid: z.number(),\n\t\tuser_id: z.number(),\n\t\ttoken_type: z.union([\n\t\t\tz.literal(constants.userTokens.passwordReset),\n\t\t\tz.literal(constants.userTokens.refresh),\n\t\t\tz.literal(constants.userTokens.invitation),\n\t\t\tz.literal(constants.userTokens.emailChangeConfirm),\n\t\t\tz.literal(constants.userTokens.emailChangeRevert),\n\t\t]),\n\t\ttoken: z.string(),\n\t\trevoked_at: z.union([z.string(), z.date()]).nullable(),\n\t\trevoke_reason: z.string().nullable(),\n\t\tconsumed_at: z.union([z.string(), z.date()]).nullable(),\n\t\treplaced_by_token_id: z.number().nullable(),\n\t\tcreated_at: z.union([z.string(), z.date()]).nullable(),\n\t\texpiry_date: z.union([z.string(), z.date()]),\n\t\t// user\n\t\tuser_email: z.email(),\n\t\tuser_first_name: z.string().nullable(),\n\t\tuser_last_name: z.string().nullable(),\n\t\tuser_invitation_accepted: z.union([\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.true),\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.false),\n\t\t]),\n\t\tuser_is_deleted: z.union([\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.true),\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.false),\n\t\t]),\n\t\tuser_is_locked: z.union([\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.true),\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.false),\n\t\t]),\n\t});\n\tcolumnFormats = {\n\t\tid: this.dbAdapter.getDataType(\"primary\"),\n\t\tuser_id: this.dbAdapter.getDataType(\"integer\"),\n\t\ttoken_type: this.dbAdapter.getDataType(\"varchar\", 255),\n\t\ttoken: this.dbAdapter.getDataType(\"varchar\", 255),\n\t\trevoked_at: this.dbAdapter.getDataType(\"timestamp\"),\n\t\trevoke_reason: this.dbAdapter.getDataType(\"varchar\", 255),\n\t\tconsumed_at: this.dbAdapter.getDataType(\"timestamp\"),\n\t\treplaced_by_token_id: this.dbAdapter.getDataType(\"integer\"),\n\t\tcreated_at: this.dbAdapter.getDataType(\"timestamp\"),\n\t\texpiry_date: this.dbAdapter.getDataType(\"timestamp\"),\n\t};\n\tqueryConfig = undefined;\n\n\t// ----------------------------------------\n\t// queries\n\tasync selectUserInvitation<V extends boolean = false>(\n\t\tprops: QueryProps<\n\t\t\tV,\n\t\t\t{\n\t\t\t\tid: number;\n\t\t\t}\n\t\t>,\n\t) {\n\t\tconst query = this.db\n\t\t\t.selectFrom(\"lucid_user_tokens\")\n\t\t\t.select([\n\t\t\t\t\"lucid_user_tokens.id\",\n\t\t\t\t\"lucid_user_tokens.user_id\",\n\t\t\t\t\"lucid_user_tokens.token_type\",\n\t\t\t\t\"lucid_user_tokens.token\",\n\t\t\t\t\"lucid_user_tokens.created_at\",\n\t\t\t\t\"lucid_user_tokens.expiry_date\",\n\t\t\t])\n\t\t\t.innerJoin(\"lucid_users\", \"lucid_users.id\", \"lucid_user_tokens.user_id\")\n\t\t\t.select([\n\t\t\t\t\"lucid_users.email as user_email\",\n\t\t\t\t\"lucid_users.first_name as user_first_name\",\n\t\t\t\t\"lucid_users.last_name as user_last_name\",\n\t\t\t\t\"lucid_users.invitation_accepted as user_invitation_accepted\",\n\t\t\t\t\"lucid_users.is_deleted as user_is_deleted\",\n\t\t\t\t\"lucid_users.is_locked as user_is_locked\",\n\t\t\t])\n\t\t\t.where(\"lucid_user_tokens.expiry_date\", \">\", new Date().toISOString())\n\t\t\t.where(\"lucid_user_tokens.revoked_at\", \"is\", null)\n\t\t\t.where(\"lucid_user_tokens.consumed_at\", \"is\", null)\n\t\t\t.where(\"lucid_user_tokens.id\", \"=\", props.id);\n\n\t\tconst exec = await this.executeQuery(() => query.executeTakeFirst(), {\n\t\t\tmethod: \"selectUserInvitation\",\n\t\t});\n\t\tif (exec.response.error) return exec.response;\n\n\t\treturn this.validateResponse(exec, {\n\t\t\t...props.validation,\n\t\t\tmode: \"single\",\n\t\t\tselect: [\n\t\t\t\t\"id\",\n\t\t\t\t\"user_id\",\n\t\t\t\t\"token_type\",\n\t\t\t\t\"token\",\n\t\t\t\t\"created_at\",\n\t\t\t\t\"expiry_date\",\n\t\t\t\t\"user_email\",\n\t\t\t\t\"user_first_name\",\n\t\t\t\t\"user_last_name\",\n\t\t\t\t\"user_invitation_accepted\",\n\t\t\t\t\"user_is_deleted\",\n\t\t\t\t\"user_is_locked\",\n\t\t\t],\n\t\t});\n\t}\n}\n"],"mappings":"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"}