mirror of
https://github.com/alkimake/paperclip.git
synced 2026-06-15 18:30:39 +09:00
Add org chart image export support
This commit is contained in:
parent
53249c00cf
commit
b20675b7b5
6 changed files with 469 additions and 17 deletions
|
|
@ -47,6 +47,7 @@ import { assertBoard, assertCompanyAccess, getActorInfo } from "./authz.js";
|
|||
import { findServerAdapter, listAdapterModels } from "../adapters/index.js";
|
||||
import { redactEventPayload } from "../redaction.js";
|
||||
import { redactCurrentUserValue } from "../log-redaction.js";
|
||||
import { renderOrgChartSvg, renderOrgChartPng, type OrgNode } from "./org-chart-svg.js";
|
||||
import { runClaudeLogin } from "@paperclipai/adapter-claude-local/server";
|
||||
import {
|
||||
DEFAULT_CODEX_LOCAL_BYPASS_APPROVALS_AND_SANDBOX,
|
||||
|
|
@ -821,6 +822,28 @@ export function agentRoutes(db: Db) {
|
|||
res.json(leanTree);
|
||||
});
|
||||
|
||||
router.get("/companies/:companyId/org.svg", async (req, res) => {
|
||||
const companyId = req.params.companyId as string;
|
||||
assertCompanyAccess(req, companyId);
|
||||
const tree = await svc.orgForCompany(companyId);
|
||||
const leanTree = tree.map((node) => toLeanOrgNode(node as Record<string, unknown>));
|
||||
const svg = renderOrgChartSvg(leanTree as unknown as OrgNode[]);
|
||||
res.setHeader("Content-Type", "image/svg+xml");
|
||||
res.setHeader("Cache-Control", "no-cache");
|
||||
res.send(svg);
|
||||
});
|
||||
|
||||
router.get("/companies/:companyId/org.png", async (req, res) => {
|
||||
const companyId = req.params.companyId as string;
|
||||
assertCompanyAccess(req, companyId);
|
||||
const tree = await svc.orgForCompany(companyId);
|
||||
const leanTree = tree.map((node) => toLeanOrgNode(node as Record<string, unknown>));
|
||||
const png = await renderOrgChartPng(leanTree as unknown as OrgNode[]);
|
||||
res.setHeader("Content-Type", "image/png");
|
||||
res.setHeader("Cache-Control", "no-cache");
|
||||
res.send(png);
|
||||
});
|
||||
|
||||
router.get("/companies/:companyId/agent-configurations", async (req, res) => {
|
||||
const companyId = req.params.companyId as string;
|
||||
await assertCanReadConfigurations(req, companyId);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue