91 lines
2.3 KiB
TypeScript
91 lines
2.3 KiB
TypeScript
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<Deed[]> {
|
|
const url = new URL(this.baseURl);
|
|
Object.entries(q).forEach(([key, value]) => url.searchParams.set(key, JSON.stringify(value)));
|
|
try {
|
|
return await this.getRequest<Deed[]>(url);
|
|
} catch (err) {
|
|
this.onError(err);
|
|
return Promise.reject(err);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @description : Get a folder by uid
|
|
*/
|
|
public async getByUid(uid: string, q?: any): Promise<Deed> {
|
|
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<Deed>(url);
|
|
} catch (err) {
|
|
this.onError(err);
|
|
return Promise.reject(err);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @description : Create a deed
|
|
*/
|
|
// public async post(body: IPostDeedsParams): Promise<OfficeFolder> {
|
|
// const url = new URL(this.baseURl);
|
|
// try {
|
|
// return await this.postRequest<OfficeFolder>(url, body);
|
|
// } catch (err) {
|
|
// this.onError(err);
|
|
// return Promise.reject(err);
|
|
// }
|
|
// }
|
|
|
|
/**
|
|
* @description : Update the folder description
|
|
*/
|
|
public async put(uid: string, body: IPutDeedsParams): Promise<Deed> {
|
|
const url = new URL(this.baseURl.concat(`/${uid}`));
|
|
try {
|
|
return await this.putRequest<Deed>(url, body);
|
|
} catch (err) {
|
|
this.onError(err);
|
|
return Promise.reject(err);
|
|
}
|
|
}
|
|
}
|