Curated, product-agnostic snapshot of the post-story-04 tree: demo content deleted, auth-only reference feature, web-next shell, all gates green. Product-specific docs, ADRs 027-029, PRDs/epics/archive, editor library traces, and product naming are curated out; generic template repairs (coverage provider devDeps, root test:coverage script, live lint fixes, root-only release-please) are kept. See TEMPLATE.md for provenance, curation list, and usage. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016j8z4VHjedXDTjEDNg7qHK
19 lines
557 B
TypeScript
19 lines
557 B
TypeScript
import type { IProcessingRestriction } from "../processing-restriction.interface";
|
|
import type { HandlerResponse } from "./handler-types";
|
|
|
|
export type RestrictHandlerInput = {
|
|
subjectId: string;
|
|
granted: boolean;
|
|
};
|
|
|
|
export function createRestrictHandler(
|
|
processingRestriction: IProcessingRestriction,
|
|
) {
|
|
return async (
|
|
input: RestrictHandlerInput,
|
|
): Promise<HandlerResponse<{ ok: true }>> => {
|
|
await processingRestriction.setRestriction(input.subjectId, input.granted);
|
|
return { status: 200, body: { ok: true as const } };
|
|
};
|
|
}
|