UNPKG

@paroicms/server

Version:
46 lines 1.8 kB
import { type } from "arktype"; import { saveFieldValues } from "../admin-backend/fields/save-fields.queries.js"; import { hashPassword } from "../helpers/passwordEncrypt-helper.js"; import { applyMarkdownToNativeForValues } from "./markdown-content.js"; export async function createAccountProgrammaticApi(siteContext, account, options) { const siteNodeId = siteContext.homeRoutingCluster.siteNodeId; const siteType = siteContext.siteSchema.nodeTypes._site; const { kind, email, name } = account; const InsertedIdAT = type({ id: "number", "+": "reject" }); const [inserted] = await siteContext .cn("PaAccount") .insert({ email, name, passwordHash: kind === "local" ? await hashPassword(account.password) : undefined, }) .returning("id"); const insertedId = String(InsertedIdAT.assert(inserted).id); if (account.roles.length > 0) { await siteContext .cn("PaAccountRole") .insert(account.roles.map((role) => ({ accountId: insertedId, role }))); } if (options?.asContactEmail) { await saveFieldValues(siteContext, { typeName: siteType.typeName, nodeId: siteNodeId, values: { contactEmail: email, }, force: true, }); } return insertedId; } export async function updateSiteFieldsProgrammaticApi(siteContext, language, values) { const processedValues = await applyMarkdownToNativeForValues(siteContext, values, "_site", language); await saveFieldValues(siteContext, { typeName: "_site", nodeId: siteContext.homeRoutingCluster.siteNodeId, language, values: processedValues, force: true, }); } //# sourceMappingURL=site-content-api.js.map