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