import { Deed, OfficeFolder } from "le-coffre-resources/dist/Notary"; import BaseSuperAdmin from "../BaseSuperAdmin"; // TODO Type get query params -> Where + inclue + orderby export interface IGetDeedsParams { q?: {}; } // TODO Type getbyuid query params export type IPutDeedsParams = { uid?: OfficeFolder["uid"]; folder_number?: OfficeFolder["folder_number"]; name?: OfficeFolder["name"]; description?: OfficeFolder["description"]; archived_description?: OfficeFolder["archived_description"]; status?: OfficeFolder["status"]; deed_has_document_types?: Deed["deed_has_document_types"]; }; export default class Deeds extends BaseSuperAdmin { private static instance: Deeds; private readonly baseURl = this.namespaceUrl.concat("/deeds"); private constructor() { super(); } public static getInstance() { if (!this.instance) { return new this(); } else { return this.instance; } } /** * @description : Get all deeds */ public async get(q: IGetDeedsParams): Promise { const url = new URL(this.baseURl); Object.entries(q).forEach(([key, value]) => url.searchParams.set(key, JSON.stringify(value))); try { return await this.getRequest(url); } catch (err) { this.onError(err); return Promise.reject(err); } } /** * @description : Get a folder by uid */ public async getByUid(uid: string, q?: any): Promise { const url = new URL(this.baseURl.concat(`/${uid}`)); if (q) Object.entries(q).forEach(([key, value]) => url.searchParams.set(key, JSON.stringify(value))); try { return await this.getRequest(url); } catch (err) { this.onError(err); return Promise.reject(err); } } /** * @description : Create a deed */ // public async post(body: IPostDeedsParams): Promise { // const url = new URL(this.baseURl); // try { // return await this.postRequest(url, body); // } catch (err) { // this.onError(err); // return Promise.reject(err); // } // } /** * @description : Update the folder description */ public async put(uid: string, body: IPutDeedsParams): Promise { const url = new URL(this.baseURl.concat(`/${uid}`)); try { return await this.putRequest(url, body); } catch (err) { this.onError(err); return Promise.reject(err); } } }