✨ post folders
This commit is contained in:
parent
a58a08a603
commit
b05d69e80f
@ -1,5 +1,5 @@
|
|||||||
import { Service } from "typedi";
|
import { Service } from "typedi";
|
||||||
import { OfficeFolder } from "le-coffre-resources/dist/Notary";
|
import User, { DeedType, Office, OfficeFolder } from "le-coffre-resources/dist/Notary";
|
||||||
import BaseSuperAdmin from "../BaseSuperAdmin";
|
import BaseSuperAdmin from "../BaseSuperAdmin";
|
||||||
import { EFolderStatus } from "le-coffre-resources/dist/Customer/OfficeFolder";
|
import { EFolderStatus } from "le-coffre-resources/dist/Customer/OfficeFolder";
|
||||||
|
|
||||||
@ -11,19 +11,24 @@ export interface IGetFoldersParams {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO Type getbyuid query searchParams
|
export interface IPostFoldersParams {
|
||||||
export type IPostFoldersParams = {
|
|
||||||
folder_number: OfficeFolder["folder_number"];
|
folder_number: OfficeFolder["folder_number"];
|
||||||
name: OfficeFolder["name"];
|
name: OfficeFolder["name"];
|
||||||
description: OfficeFolder["description"];
|
description: OfficeFolder["description"];
|
||||||
archived_description: OfficeFolder["archived_description"];
|
deed: {
|
||||||
status: OfficeFolder["status"];
|
deed_type: {
|
||||||
deed: OfficeFolder["deed"];
|
uid: DeedType["uid"];
|
||||||
office: OfficeFolder["office"];
|
|
||||||
office_folder_has_customers?: OfficeFolder["office_folder_has_customers"];
|
|
||||||
office_folder_has_stakeholder?: OfficeFolder["office_folder_has_stakeholder"];
|
|
||||||
documents?: OfficeFolder["documents"];
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
office: {
|
||||||
|
uid: Office["uid"];
|
||||||
|
};
|
||||||
|
office_folder_has_stakeholder: {
|
||||||
|
user_stakeholder: {
|
||||||
|
uid: User["uid"];
|
||||||
|
};
|
||||||
|
}[];
|
||||||
|
}
|
||||||
|
|
||||||
export type IPutFoldersParams = {
|
export type IPutFoldersParams = {
|
||||||
uid?: OfficeFolder["uid"];
|
uid?: OfficeFolder["uid"];
|
||||||
@ -84,6 +89,7 @@ export default class Folders extends BaseSuperAdmin {
|
|||||||
*/
|
*/
|
||||||
public async post(body: any): Promise<OfficeFolder> {
|
public async post(body: any): Promise<OfficeFolder> {
|
||||||
const url = new URL(this.baseURl);
|
const url = new URL(this.baseURl);
|
||||||
|
console.log(body);
|
||||||
try {
|
try {
|
||||||
return await this.postRequest<OfficeFolder>(url, body);
|
return await this.postRequest<OfficeFolder>(url, body);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
@ -112,7 +112,7 @@ export default class DepositDocument extends React.Component<IProps, IState> {
|
|||||||
this.setState({
|
this.setState({
|
||||||
files: this.props.defaultFiles.map((file) => ({
|
files: this.props.defaultFiles.map((file) => ({
|
||||||
index: this.index++,
|
index: this.index++,
|
||||||
file: new File([""], file.file_path, {}),
|
file: new File([""], file.file_path ?? "", {}),
|
||||||
})),
|
})),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -85,7 +85,7 @@ class DocumentNotaryClass extends React.Component<IPropsClass, IState> {
|
|||||||
|
|
||||||
private onOpenDeletionModal(): void {
|
private onOpenDeletionModal(): void {
|
||||||
if (!this.props.openDeletionModal) return;
|
if (!this.props.openDeletionModal) return;
|
||||||
this.props.openDeletionModal(this.props.document.uid);
|
this.props.openDeletionModal(this.props.document.uid ?? "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,18 @@
|
|||||||
import { ECustomerStatus } from "le-coffre-resources/dist/Customer/Customer";
|
import { ECustomerStatus } from "le-coffre-resources/dist/Customer/Customer";
|
||||||
import { EFolderStatus } from "le-coffre-resources/dist/Customer/OfficeFolder";
|
import { EFolderStatus } from "le-coffre-resources/dist/Customer/OfficeFolder";
|
||||||
import { Address, Contact, Customer, Deed, DeedType, Document, DocumentType, File, Office, OfficeFolder, OfficeFolderHasCustomer } from "le-coffre-resources/dist/Notary";
|
import {
|
||||||
|
Address,
|
||||||
|
Contact,
|
||||||
|
Customer,
|
||||||
|
Deed,
|
||||||
|
DeedType,
|
||||||
|
Document,
|
||||||
|
DocumentType,
|
||||||
|
File,
|
||||||
|
Office,
|
||||||
|
OfficeFolder,
|
||||||
|
OfficeFolderHasCustomer,
|
||||||
|
} from "le-coffre-resources/dist/Notary";
|
||||||
|
|
||||||
export const address: Address = {
|
export const address: Address = {
|
||||||
uid: "a&2azedzaa3",
|
uid: "a&2azedzaa3",
|
||||||
@ -72,7 +84,7 @@ export const docType: DocumentType = {
|
|||||||
public_description: "Acte de naissance public description",
|
public_description: "Acte de naissance public description",
|
||||||
private_description: "Acte de naissance private description",
|
private_description: "Acte de naissance private description",
|
||||||
archived_at: new Date(),
|
archived_at: new Date(),
|
||||||
office: office,
|
// office: office,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const identityDocType: DocumentType = {
|
export const identityDocType: DocumentType = {
|
||||||
@ -83,7 +95,7 @@ export const identityDocType: DocumentType = {
|
|||||||
public_description: "Carte d'identité public description",
|
public_description: "Carte d'identité public description",
|
||||||
private_description: "Carte d'identité private description",
|
private_description: "Carte d'identité private description",
|
||||||
archived_at: new Date(),
|
archived_at: new Date(),
|
||||||
office: office,
|
// office: office,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const customer: Customer = {
|
export const customer: Customer = {
|
||||||
@ -115,8 +127,6 @@ export const folder: OfficeFolder = {
|
|||||||
archived_description: "Archived description",
|
archived_description: "Archived description",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export const document: Document = {
|
export const document: Document = {
|
||||||
uid: "fzeafergreztyzgrf",
|
uid: "fzeafergreztyzgrf",
|
||||||
depositor: customer2_mock,
|
depositor: customer2_mock,
|
||||||
@ -150,7 +160,7 @@ export const identityFile: File = {
|
|||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
document: document,
|
document: document,
|
||||||
file_path: "https://minteed-stg-euwest3-s3.s3.eu-west-3.amazonaws.com/cni_fake_c7259d4923.png"
|
file_path: "https://minteed-stg-euwest3-s3.s3.eu-west-3.amazonaws.com/cni_fake_c7259d4923.png",
|
||||||
};
|
};
|
||||||
|
|
||||||
export const documentIdentity: Document = {
|
export const documentIdentity: Document = {
|
||||||
|
@ -13,12 +13,12 @@ import { ActionMeta, MultiValue } from "react-select";
|
|||||||
|
|
||||||
import BasePage from "../../Base";
|
import BasePage from "../../Base";
|
||||||
import classes from "./classes.module.scss";
|
import classes from "./classes.module.scss";
|
||||||
import { Deed, DeedType, OfficeFolder, OfficeFolderHasStakeholder } from "le-coffre-resources/dist/Notary";
|
import { DeedType, OfficeFolder, OfficeFolderHasStakeholder } from "le-coffre-resources/dist/Notary";
|
||||||
import DeedTypes from "@Front/Api/LeCoffreApi/SuperAdmin/DeedTypes/DeedTypes";
|
import DeedTypes from "@Front/Api/LeCoffreApi/SuperAdmin/DeedTypes/DeedTypes";
|
||||||
import Users from "@Front/Api/LeCoffreApi/SuperAdmin/Users/Users";
|
import Users from "@Front/Api/LeCoffreApi/SuperAdmin/Users/Users";
|
||||||
import User from "le-coffre-resources/dist/Notary";
|
import User from "le-coffre-resources/dist/Notary";
|
||||||
import Folders from "@Front/Api/LeCoffreApi/SuperAdmin/Folders/Folders";
|
import Folders, { IPostFoldersParams } from "@Front/Api/LeCoffreApi/SuperAdmin/Folders/Folders";
|
||||||
import { EFolderStatus } from "le-coffre-resources/dist/Customer/OfficeFolder";
|
import { NextRouter, useRouter } from "next/router";
|
||||||
|
|
||||||
type IFormValues = {
|
type IFormValues = {
|
||||||
folder_number: number;
|
folder_number: number;
|
||||||
@ -29,6 +29,11 @@ type IFormValues = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
type IProps = {};
|
type IProps = {};
|
||||||
|
|
||||||
|
type IPropsClass = IProps & {
|
||||||
|
router: NextRouter;
|
||||||
|
};
|
||||||
|
|
||||||
type IState = {
|
type IState = {
|
||||||
folder_access: string;
|
folder_access: string;
|
||||||
formValues: IFormValues;
|
formValues: IFormValues;
|
||||||
@ -37,8 +42,8 @@ type IState = {
|
|||||||
collaborators: User[];
|
collaborators: User[];
|
||||||
collaboratorsOptions: IOption[];
|
collaboratorsOptions: IOption[];
|
||||||
};
|
};
|
||||||
export default class CreateFolder extends BasePage<IProps, IState> {
|
class CreateFolderClass extends BasePage<IPropsClass, IState> {
|
||||||
public constructor(props: IProps) {
|
public constructor(props: IPropsClass) {
|
||||||
super(props);
|
super(props);
|
||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
@ -211,68 +216,46 @@ export default class CreateFolder extends BasePage<IProps, IState> {
|
|||||||
[key: string]: any;
|
[key: string]: any;
|
||||||
},
|
},
|
||||||
) {
|
) {
|
||||||
const selectedDeedType: DeedType | undefined = this.state.deedTypes.find(
|
const selectedDeedTypeUid: DeedType | undefined = this.state.deedTypes.find(
|
||||||
(deedType) => deedType.uid === this.state.formValues.act_typ?.value,
|
(deedType) => deedType.uid === this.state.formValues.act_typ?.value,
|
||||||
);
|
);
|
||||||
|
|
||||||
// const selectedCollaborator: User | undefined = this.state.collaborators?.find(
|
/**
|
||||||
// (deedType) => deedType.uid === this.state.formValues.act_typ?.value,
|
* MOCK DATA
|
||||||
// );
|
*/
|
||||||
|
|
||||||
let collaborators: User[] = this.state.collaborators;
|
|
||||||
|
|
||||||
if (!selectedDeedType) return;
|
|
||||||
const deed = Deed.hydrate<Deed>({
|
|
||||||
deed_type: selectedDeedType,
|
|
||||||
});
|
|
||||||
let office_folder_has_stakeholders = collaborators.map((collaborator) => {
|
|
||||||
return OfficeFolderHasStakeholder.hydrate<OfficeFolderHasStakeholder>({
|
|
||||||
office_folder: new OfficeFolder(),
|
|
||||||
user_stakeholder: collaborator,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
if (this.state.folder_access === "select_collaborators") {
|
|
||||||
office_folder_has_stakeholders = office_folder_has_stakeholders.filter((collaborator) => {
|
|
||||||
return this.state.formValues.collaborators?.some((selectedCollaborator) => {
|
|
||||||
return selectedCollaborator.value === collaborator.user_stakeholder.uid;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const usersMock = await Users.getInstance().get({ q: { include: { office_membership: true } } });
|
const usersMock = await Users.getInstance().get({ q: { include: { office_membership: true } } });
|
||||||
const userMock = usersMock[0];
|
const userMock = usersMock[0];
|
||||||
|
// -----
|
||||||
|
if (!selectedDeedTypeUid) return;
|
||||||
|
if (!userMock?.office_membership.uid) return;
|
||||||
|
|
||||||
values["deed"] = deed;
|
let stakeholders = this.getStakeholders();
|
||||||
values["archived_description"] = "";
|
let test = stakeholders.map((stakeholder) => ({
|
||||||
values["status"] = EFolderStatus.LIVE;
|
user_stakeholder: {
|
||||||
values["office"] = userMock?.office_membership;
|
uid: stakeholder.user_stakeholder.uid,
|
||||||
values["office_folder_has_stakeholder"] = values["office_folder_has_stakeholders"] = office_folder_has_stakeholders;
|
},
|
||||||
|
}));
|
||||||
|
|
||||||
const newobject = {
|
const output: IPostFoldersParams = {
|
||||||
folder_number: "12312",
|
folder_number: values["folder_number"],
|
||||||
name: "Mon folder",
|
name: values["name"],
|
||||||
description: "dazdazf",
|
description: values["description"],
|
||||||
deed: {
|
deed: {
|
||||||
deed_type: {
|
deed_type: {
|
||||||
uid: "neNTaiiNVp",
|
uid: selectedDeedTypeUid.uid,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
office: {
|
office: {
|
||||||
uid: "R34T9DZ5ov",
|
uid: userMock?.office_membership.uid,
|
||||||
},
|
},
|
||||||
office_folder_has_stakeholder: [
|
office_folder_has_stakeholder: test,
|
||||||
{
|
|
||||||
user_stakeholder: {
|
|
||||||
uid: "WYBnSyguqP",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
};
|
||||||
|
|
||||||
console.log(newobject);
|
console.log(output);
|
||||||
const created = await Folders.getInstance().post(newobject as any);
|
const created = await Folders.getInstance().post(output);
|
||||||
console.log(">>> ", created);
|
if (created) {
|
||||||
|
this.props.router.push(`/folders/${created.uid}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private isFormSubmittable(): boolean {
|
private isFormSubmittable(): boolean {
|
||||||
@ -297,4 +280,29 @@ export default class CreateFolder extends BasePage<IProps, IState> {
|
|||||||
folder_access: e.target.value,
|
folder_access: e.target.value,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private getStakeholders() {
|
||||||
|
let collaborators: User[] = this.state.collaborators;
|
||||||
|
|
||||||
|
let office_folder_has_stakeholders = collaborators.map((collaborator) => {
|
||||||
|
return OfficeFolderHasStakeholder.hydrate<OfficeFolderHasStakeholder>({
|
||||||
|
office_folder: new OfficeFolder(),
|
||||||
|
user_stakeholder: collaborator,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
if (this.state.folder_access === "select_collaborators") {
|
||||||
|
office_folder_has_stakeholders = office_folder_has_stakeholders.filter((collaborator) => {
|
||||||
|
return this.state.formValues.collaborators?.some((selectedCollaborator) => {
|
||||||
|
return selectedCollaborator.value === collaborator.user_stakeholder.uid;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return office_folder_has_stakeholders;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function CreateFolder(props: IProps): JSX.Element {
|
||||||
|
const router = useRouter();
|
||||||
|
return <CreateFolderClass {...props} router={router} />;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user