import {instance} from "./axios";
import {DuaDocument, getFormRes, JsonForm} from "../models/JsonForms";
import {RecordsResponse} from "../models/Axios";


export async function createForm(formI: JsonForm) {
    return instance.post("api/", formI);
}

export async function getAllForms() {
    return instance.get("api/dynamic/forms");
}

export async function getForm(id: string) {
    return instance.get<getFormRes>("api/dynamic/forms/" + id);
}

export async function createDocument(saveFormParams: any) {
    return instance.post("api/dynamic/forms/store", saveFormParams, {
        headers: {
            'Content-Type': 'multipart/form-data'
        }
    });
}

export async function editDocument(id: string, data: any) {
    return instance.post("api/documents/update/" + id, data, {
        headers:{
            'Content-Type': 'multipart/form-data'
        }
    });
}

export async function getMyDocuments(getDocsParams: any) {
    return instance.get<RecordsResponse<DuaDocument>>("api/documents", {params: getDocsParams});
}

export async function getDocument(id: string) {
    return instance.get<getFormRes>("api/documents/" + id);
}

export async function getDocumentPublic(id: string) {
    return instance.get<getFormRes>("public-api/documents/" + id);
}

export async function deleteDocument(id: string) {
    return instance.post("api/documents/delete/" + id);
}


export async function getPetitionPdf(id: string) {
    return instance.get("api/dynamic/forms/download/" + id, {responseType: 'arraybuffer'});
}

export async function getSealedPetitionPdf(id: string) {
    return instance.get("api/dynamic/forms/download-stamped/" + id, {responseType: 'arraybuffer'});
}
