import type { IDataDelete } from "../data-delete.interface";
import type { DeletionMode, DeletionCertificate } from "../dsr-types";
import type { HandlerResponse } from "./handler-types";

export type DeleteHandlerInput = {
  subjectId: string;
  mode: DeletionMode;
};

export function createDeleteHandler(dataDelete: IDataDelete) {
  return async (
    input: DeleteHandlerInput,
  ): Promise<HandlerResponse<DeletionCertificate>> => {
    const cert = await dataDelete.deleteSubjectData(
      input.subjectId,
      input.mode,
    );
    return { status: 200, body: cert };
  };
}
