Files
agent-park/src/app/api/admin/approvals/route.ts
T

41 lines
1.2 KiB
TypeScript

import { NextResponse } from 'next/server'
import { listApprovalTickets, listPolicyProposals } from '@/lib/agent-os/store'
import { requireAdminAccess } from '../_lib/auth'
export async function GET(request: Request) {
const auth = requireAdminAccess(request)
if (!auth.authorized) {
return auth.response
}
const proposals = listPolicyProposals()
const proposalById = new Map(proposals.map((proposal) => [proposal.id, proposal]))
const approvals = listApprovalTickets().map((ticket) => {
const proposal = proposalById.get(ticket.proposalId)
return {
approvalTicketId: ticket.id,
proposalId: ticket.proposalId,
approvalStatus: ticket.status,
requestedBy: ticket.requestedBy,
decidedBy: ticket.decidedBy || null,
decisionComment: ticket.decisionComment || null,
createdAt: ticket.createdAt,
updatedAt: ticket.updatedAt,
proposal: proposal
? {
title: proposal.title,
status: proposal.status,
targetType: proposal.targetType,
targetId: proposal.targetId,
}
: null,
}
})
return NextResponse.json({
success: true,
operator: auth.operator,
approvals,
})
}