fix: corrige les associations constructeurs
This commit is contained in:
@@ -73,7 +73,7 @@ type MachineRecord = {
|
||||
id: string;
|
||||
name: string;
|
||||
reference: Nullable<string>;
|
||||
constructeurId: Nullable<string>;
|
||||
constructeurIds: string[];
|
||||
prix: Nullable<string>;
|
||||
siteId: string;
|
||||
typeMachineId: Nullable<string>;
|
||||
@@ -90,7 +90,7 @@ type ComposantRecord = {
|
||||
parentComposantId: Nullable<string>;
|
||||
typeComposantId: Nullable<string>;
|
||||
typeMachineComponentRequirementId: Nullable<string>;
|
||||
constructeurId: Nullable<string>;
|
||||
constructeurIds: string[];
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
};
|
||||
@@ -104,7 +104,7 @@ type PieceRecord = {
|
||||
composantId: Nullable<string>;
|
||||
typePieceId: Nullable<string>;
|
||||
typeMachinePieceRequirementId: Nullable<string>;
|
||||
constructeurId: Nullable<string>;
|
||||
constructeurIds: string[];
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
};
|
||||
@@ -638,11 +638,12 @@ class InMemoryPrismaService {
|
||||
machine = {
|
||||
create: async ({ data, include }: any) => {
|
||||
const now = new Date();
|
||||
const constructeurIds = this.extractConstructeurIds(data.constructeurs);
|
||||
const record: MachineRecord = {
|
||||
id: generateId('machine'),
|
||||
name: data.name,
|
||||
reference: data.reference ?? null,
|
||||
constructeurId: data.constructeurId ?? null,
|
||||
constructeurIds,
|
||||
prix: data.prix ?? null,
|
||||
siteId: data.siteId,
|
||||
typeMachineId: data.typeMachineId ?? null,
|
||||
@@ -683,6 +684,7 @@ class InMemoryPrismaService {
|
||||
composant = {
|
||||
create: async ({ data }: any) => {
|
||||
const now = new Date();
|
||||
const constructeurIds = this.extractConstructeurIds(data.constructeurs);
|
||||
const record: ComposantRecord = {
|
||||
id: generateId('component'),
|
||||
name: data.name,
|
||||
@@ -693,7 +695,7 @@ class InMemoryPrismaService {
|
||||
typeComposantId: data.typeComposantId ?? null,
|
||||
typeMachineComponentRequirementId:
|
||||
data.typeMachineComponentRequirementId ?? null,
|
||||
constructeurId: data.constructeurId ?? null,
|
||||
constructeurIds,
|
||||
createdAt: now,
|
||||
updatedAt: now,
|
||||
};
|
||||
@@ -719,6 +721,7 @@ class InMemoryPrismaService {
|
||||
piece = {
|
||||
create: async ({ data }: any) => {
|
||||
const now = new Date();
|
||||
const constructeurIds = this.extractConstructeurIds(data.constructeurs);
|
||||
const record: PieceRecord = {
|
||||
id: generateId('piece'),
|
||||
name: data.name,
|
||||
@@ -729,7 +732,7 @@ class InMemoryPrismaService {
|
||||
typePieceId: data.typePieceId ?? null,
|
||||
typeMachinePieceRequirementId:
|
||||
data.typeMachinePieceRequirementId ?? null,
|
||||
constructeurId: data.constructeurId ?? null,
|
||||
constructeurIds,
|
||||
createdAt: now,
|
||||
updatedAt: now,
|
||||
};
|
||||
@@ -767,7 +770,7 @@ class InMemoryPrismaService {
|
||||
prixOverride:
|
||||
data.prixOverride !== undefined && data.prixOverride !== null
|
||||
? String(data.prixOverride)
|
||||
: data.prixOverride ?? null,
|
||||
: (data.prixOverride ?? null),
|
||||
createdAt: now,
|
||||
updatedAt: now,
|
||||
};
|
||||
@@ -819,7 +822,7 @@ class InMemoryPrismaService {
|
||||
prixOverride:
|
||||
data.prixOverride !== undefined && data.prixOverride !== null
|
||||
? String(data.prixOverride)
|
||||
: data.prixOverride ?? null,
|
||||
: (data.prixOverride ?? null),
|
||||
createdAt: now,
|
||||
updatedAt: now,
|
||||
};
|
||||
@@ -848,7 +851,9 @@ class InMemoryPrismaService {
|
||||
(link) => link.parentLinkId === where.parentLinkId,
|
||||
);
|
||||
}
|
||||
return links.map((link) => this.buildMachinePieceLink(link, include ?? {}));
|
||||
return links.map((link) =>
|
||||
this.buildMachinePieceLink(link, include ?? {}),
|
||||
);
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1279,6 +1284,37 @@ class InMemoryPrismaService {
|
||||
return base;
|
||||
}
|
||||
|
||||
private extractConstructeurIds(input: any): string[] {
|
||||
if (!input) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const source = Array.isArray(input.set)
|
||||
? input.set
|
||||
: Array.isArray(input.connect)
|
||||
? input.connect
|
||||
: [];
|
||||
|
||||
return source
|
||||
.map((entry: any) => (typeof entry?.id === 'string' ? entry.id : null))
|
||||
.filter((id: string | null): id is string => Boolean(id));
|
||||
}
|
||||
|
||||
private mapConstructeurs(ids: string[] = []) {
|
||||
if (!Array.isArray(ids) || ids.length === 0) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return ids
|
||||
.map((id) =>
|
||||
this.constructeurs.find((constructeur) => constructeur.id === id),
|
||||
)
|
||||
.filter((item): item is (typeof this.constructeurs)[number] =>
|
||||
Boolean(item),
|
||||
)
|
||||
.map((item) => ({ ...item }));
|
||||
}
|
||||
|
||||
private buildMachine(machine: MachineRecord, include: any) {
|
||||
const base: any = { ...machine };
|
||||
|
||||
@@ -1309,8 +1345,8 @@ class InMemoryPrismaService {
|
||||
}
|
||||
}
|
||||
|
||||
if (include?.constructeur) {
|
||||
base.constructeur = null;
|
||||
if (include?.constructeurs) {
|
||||
base.constructeurs = this.mapConstructeurs(machine.constructeurIds);
|
||||
}
|
||||
|
||||
if (include?.componentLinks) {
|
||||
@@ -1389,19 +1425,19 @@ class InMemoryPrismaService {
|
||||
|
||||
if (include?.typeMachineComponentRequirement) {
|
||||
const requirement = link.typeMachineComponentRequirementId
|
||||
? this.typeMachineComponentRequirements.find(
|
||||
? (this.typeMachineComponentRequirements.find(
|
||||
(item) => item.id === link.typeMachineComponentRequirementId,
|
||||
) ?? null
|
||||
) ?? null)
|
||||
: null;
|
||||
base.typeMachineComponentRequirement = requirement
|
||||
? {
|
||||
...requirement,
|
||||
typeComposant:
|
||||
include.typeMachineComponentRequirement.include?.typeComposant
|
||||
? this.typeComposants.find(
|
||||
(item) => item.id === requirement.typeComposantId,
|
||||
) ?? null
|
||||
: undefined,
|
||||
typeComposant: include.typeMachineComponentRequirement.include
|
||||
?.typeComposant
|
||||
? (this.typeComposants.find(
|
||||
(item) => item.id === requirement.typeComposantId,
|
||||
) ?? null)
|
||||
: undefined,
|
||||
}
|
||||
: null;
|
||||
}
|
||||
@@ -1419,14 +1455,12 @@ class InMemoryPrismaService {
|
||||
return base;
|
||||
}
|
||||
|
||||
private buildMachinePieceLink(
|
||||
link: MachinePieceLinkRecord,
|
||||
include: any,
|
||||
) {
|
||||
private buildMachinePieceLink(link: MachinePieceLinkRecord, include: any) {
|
||||
const base: any = { ...link };
|
||||
|
||||
if (include?.piece) {
|
||||
const piece = this.pieces.find((item) => item.id === link.pieceId) ?? null;
|
||||
const piece =
|
||||
this.pieces.find((item) => item.id === link.pieceId) ?? null;
|
||||
base.piece = piece
|
||||
? this.buildPiece(piece, include.piece.include ?? {})
|
||||
: null;
|
||||
@@ -1434,19 +1468,18 @@ class InMemoryPrismaService {
|
||||
|
||||
if (include?.typeMachinePieceRequirement) {
|
||||
const requirement = link.typeMachinePieceRequirementId
|
||||
? this.typeMachinePieceRequirements.find(
|
||||
? (this.typeMachinePieceRequirements.find(
|
||||
(item) => item.id === link.typeMachinePieceRequirementId,
|
||||
) ?? null
|
||||
) ?? null)
|
||||
: null;
|
||||
base.typeMachinePieceRequirement = requirement
|
||||
? {
|
||||
...requirement,
|
||||
typePiece:
|
||||
include.typeMachinePieceRequirement.include?.typePiece
|
||||
? this.typePieces.find(
|
||||
(item) => item.id === requirement.typePieceId,
|
||||
) ?? null
|
||||
: undefined,
|
||||
typePiece: include.typeMachinePieceRequirement.include?.typePiece
|
||||
? (this.typePieces.find(
|
||||
(item) => item.id === requirement.typePieceId,
|
||||
) ?? null)
|
||||
: undefined,
|
||||
}
|
||||
: null;
|
||||
}
|
||||
@@ -1505,8 +1538,8 @@ class InMemoryPrismaService {
|
||||
);
|
||||
}
|
||||
|
||||
if (include?.constructeur) {
|
||||
base.constructeur = null;
|
||||
if (include?.constructeurs) {
|
||||
base.constructeurs = this.mapConstructeurs(component.constructeurIds);
|
||||
}
|
||||
|
||||
if (include?.pieces) {
|
||||
@@ -1536,8 +1569,8 @@ class InMemoryPrismaService {
|
||||
);
|
||||
}
|
||||
|
||||
if (include?.constructeur) {
|
||||
base.constructeur = null;
|
||||
if (include?.constructeurs) {
|
||||
base.constructeurs = this.mapConstructeurs(piece.constructeurIds);
|
||||
}
|
||||
|
||||
if (include?.typeMachinePieceRequirement) {
|
||||
|
||||
Reference in New Issue
Block a user