NobGit
public anord read

Ledger

Why work hard when you can work easier?

Languages

Repository composition by tracked source files.

TypeScript
TypeScript 86% CSS 10% SQL 3% Shell 1% HTML 0%
Create file Wiki Documentation
Clone
https://nobgit.com/orgs/anord/ledger.git
ssh://[email protected]:2222/orgs/anord/ledger.git
setup.ts
import { Router } from "express";
import { z } from "zod";
import { env, isProduction } from "../../config/env.js";
import { initializeLedger, getSetupStatus } from "../../services/setup.js";

const setupSchema = z.object({
  siteName: z.string().min(2),
  brandColor: z.string().regex(/^#[0-9a-fA-F]{6}$/),
  publicKnowledgeBaseEnabled: z.boolean(),
  ownerEmail: z.string().email(),
  ownerDisplayName: z.string().min(2),
  password: z.string().min(8)
});

export const setupRouter = Router();

setupRouter.get("/status", async (_req, res) => {
  const status = await getSetupStatus();
  return res.json(status);
});

setupRouter.post("/initialize", async (req, res) => {
  const input = setupSchema.parse(req.body);
  const result = await initializeLedger(input);

  res.cookie(env.SESSION_COOKIE_NAME, result.token, {
    httpOnly: true,
    sameSite: "lax",
    secure: isProduction
  });

  return res.status(201).json({ user: result.user });
});