DocWeave / frontend /src /api /proposals.js
shak3008's picture
feat: proposal archive/restore governance, knowledge derived status, documents live polling, yellow archive UI
ca2b2b6
Raw
History Blame Contribute Delete
1.42 kB
import { apiRequest } from "./client";
/**
* GET /proposals?workspace_id={uuid}&document_version_id={uuid}
* Workspace-scoped, PENDING only (server-side filtered).
* If documentVersionId is provided, results are scoped to that document.
*/
export async function listPendingProposals(workspaceId, documentVersionId = null) {
let url = `/proposals?workspace_id=${encodeURIComponent(workspaceId)}`;
if (documentVersionId) {
url += `&document_version_id=${encodeURIComponent(documentVersionId)}`;
}
return apiRequest(url);
}
/**
* POST /proposals/{proposal_id}/approve
* β†’ CommitResponse
*/
export async function approveProposal(proposalId, comments = null) {
return apiRequest(`/proposals/${proposalId}/approve`, "POST", { comments });
}
/**
* POST /proposals/{proposal_id}/reject
* β†’ ReviewResponse
*/
export async function rejectProposal(proposalId, comments = null) {
return apiRequest(`/proposals/${proposalId}/reject`, "POST", { comments });
}
/**
* POST /proposals/{proposal_id}/archive
* β†’ ProposalResponse
*/
export async function archiveProposal(proposalId, comments = null) {
return apiRequest(`/proposals/${proposalId}/archive`, "POST", { comments });
}
/**
* POST /proposals/{proposal_id}/restore
* β†’ ProposalResponse
*/
export async function restoreProposal(proposalId) {
return apiRequest(`/proposals/${proposalId}/restore`, "POST");
}