From 5ce92d2ca4c81ccf53ec7545f70dc144b8e5b903 Mon Sep 17 00:00:00 2001 From: Matthieu Date: Fri, 26 Sep 2025 08:52:10 +0200 Subject: [PATCH] linter --- README.md | 5 ++-- src/common/mappers/model-type.mapper.spec.ts | 4 ++- src/common/mappers/model-type.mapper.ts | 4 ++- .../mappers/type-machine.mapper.spec.ts | 4 ++- src/common/mappers/type-machine.mapper.ts | 28 ++++++++++--------- .../repositories/model-types.repository.ts | 4 ++- .../type-machines.repository.spec.ts | 4 ++- src/machines/machines.service.ts | 12 ++------ src/model-type/dto/update-model-type.dto.ts | 1 - src/model-type/model-type.service.ts | 4 ++- src/types/services/piece-model.service.ts | 5 +++- src/types/services/type-component.service.ts | 6 +++- src/types/services/type-piece.service.ts | 9 ++++-- test-api.sh | 3 +- test-complete-api.sh | 7 +---- 15 files changed, 56 insertions(+), 44 deletions(-) diff --git a/README.md b/README.md index 673a683..2633871 100644 --- a/README.md +++ b/README.md @@ -97,14 +97,13 @@ Lors de la création d'une machine à partir d'un type, il est possible de fourn "definition": { "name": "Bloc moteur série X", "reference": "COMP-001", - "emplacement": "Module A", "prix": "12000.00", "customFields": [ { "name": "Puissance nominale", "type": "text", "required": true, - "defaultValue": "7 kW" + "value": "7 kW" } ] } @@ -121,7 +120,7 @@ Lors de la création d'une machine à partir d'un type, il est possible de fourn { "name": "Référence fournisseur", "type": "text", - "defaultValue": "STD-002" + "value": "STD-002" } ] } diff --git a/src/common/mappers/model-type.mapper.spec.ts b/src/common/mappers/model-type.mapper.spec.ts index 1524ed4..7d0207f 100644 --- a/src/common/mappers/model-type.mapper.spec.ts +++ b/src/common/mappers/model-type.mapper.spec.ts @@ -5,7 +5,9 @@ describe('ModelTypeMapper', () => { const dto = { name: 'Comp', description: 'Desc', - customFields: [{ name: 'Field', type: 'string', required: false, options: [] }], + customFields: [ + { name: 'Field', type: 'string', required: false, options: [] }, + ], } as any; const input = ModelTypeMapper.toComponentCreateInput(dto, 'code'); diff --git a/src/common/mappers/model-type.mapper.ts b/src/common/mappers/model-type.mapper.ts index 059be19..8e94ee1 100644 --- a/src/common/mappers/model-type.mapper.ts +++ b/src/common/mappers/model-type.mapper.ts @@ -96,7 +96,9 @@ export class ModelTypeMapper { }; } - static toPieceUpdateInput(dto: UpdateTypePieceDto): Prisma.ModelTypeUpdateInput { + static toPieceUpdateInput( + dto: UpdateTypePieceDto, + ): Prisma.ModelTypeUpdateInput { const { customFields, description, name } = dto; const data: Prisma.ModelTypeUpdateInput = {}; diff --git a/src/common/mappers/type-machine.mapper.spec.ts b/src/common/mappers/type-machine.mapper.spec.ts index bf101dc..ba30d5b 100644 --- a/src/common/mappers/type-machine.mapper.spec.ts +++ b/src/common/mappers/type-machine.mapper.spec.ts @@ -50,7 +50,9 @@ describe('TypeMachineMapper', () => { }); it('should map custom field inputs for create many', () => { - const result = TypeMachineMapper.mapCustomFieldInputs(baseDto.customFields as any); + const result = TypeMachineMapper.mapCustomFieldInputs( + baseDto.customFields as any, + ); expect(result).toEqual([ { name: 'Field', diff --git a/src/common/mappers/type-machine.mapper.ts b/src/common/mappers/type-machine.mapper.ts index e61924b..d2cc228 100644 --- a/src/common/mappers/type-machine.mapper.ts +++ b/src/common/mappers/type-machine.mapper.ts @@ -40,12 +40,16 @@ export class TypeMachineMapper { return { ...data, customFields: this.mapCustomFields(customFields), - componentRequirements: this.mapComponentRequirements(componentRequirements), + componentRequirements: this.mapComponentRequirements( + componentRequirements, + ), pieceRequirements: this.mapPieceRequirements(pieceRequirements), }; } - static toUpdateData(dto: UpdateTypeMachineDto): Prisma.TypeMachineUpdateInput { + static toUpdateData( + dto: UpdateTypeMachineDto, + ): Prisma.TypeMachineUpdateInput { const { customFields, componentRequirements, pieceRequirements, ...data } = dto; @@ -83,9 +87,7 @@ export class TypeMachineMapper { }; } - static mapCustomFieldInputs( - fields?: CreateTypeMachineDto['customFields'], - ) { + static mapCustomFieldInputs(fields?: CreateTypeMachineDto['customFields']) { if (!fields || fields.length === 0) { return []; } @@ -100,7 +102,9 @@ export class TypeMachineMapper { static mapComponentRequirements( requirements?: RequirementDto[] | null, - ): Prisma.TypeMachineComponentRequirementCreateNestedManyWithoutTypeMachineInput | undefined { + ): + | Prisma.TypeMachineComponentRequirementCreateNestedManyWithoutTypeMachineInput + | undefined { if (!requirements || requirements.length === 0) { return undefined; } @@ -125,9 +129,7 @@ export class TypeMachineMapper { }; } - static mapComponentRequirementInputs( - requirements?: RequirementDto[] | null, - ) { + static mapComponentRequirementInputs(requirements?: RequirementDto[] | null) { if (!requirements || requirements.length === 0) { return []; } @@ -144,7 +146,9 @@ export class TypeMachineMapper { static mapPieceRequirements( requirements?: RequirementDto[] | null, - ): Prisma.TypeMachinePieceRequirementCreateNestedManyWithoutTypeMachineInput | undefined { + ): + | Prisma.TypeMachinePieceRequirementCreateNestedManyWithoutTypeMachineInput + | undefined { if (!requirements || requirements.length === 0) { return undefined; } @@ -169,9 +173,7 @@ export class TypeMachineMapper { }; } - static mapPieceRequirementInputs( - requirements?: RequirementDto[] | null, - ) { + static mapPieceRequirementInputs(requirements?: RequirementDto[] | null) { if (!requirements || requirements.length === 0) { return []; } diff --git a/src/common/repositories/model-types.repository.ts b/src/common/repositories/model-types.repository.ts index d601e1c..abb3608 100644 --- a/src/common/repositories/model-types.repository.ts +++ b/src/common/repositories/model-types.repository.ts @@ -28,7 +28,9 @@ export class ModelTypesRepository { let candidate = base; let suffix = 1; - while (await this.client.modelType.findUnique({ where: { code: candidate } })) { + while ( + await this.client.modelType.findUnique({ where: { code: candidate } }) + ) { candidate = `${base}-${suffix++}`; } diff --git a/src/common/repositories/type-machines.repository.spec.ts b/src/common/repositories/type-machines.repository.spec.ts index b56b827..41039ac 100644 --- a/src/common/repositories/type-machines.repository.spec.ts +++ b/src/common/repositories/type-machines.repository.spec.ts @@ -91,7 +91,9 @@ describe('TypeMachinesRepository', () => { }, ]); - expect(prismaMock.typeMachinePieceRequirement.createMany).toHaveBeenCalledWith({ + expect( + prismaMock.typeMachinePieceRequirement.createMany, + ).toHaveBeenCalledWith({ data: [ { label: 'Piece', diff --git a/src/machines/machines.service.ts b/src/machines/machines.service.ts index 69a847a..f476331 100644 --- a/src/machines/machines.service.ts +++ b/src/machines/machines.service.ts @@ -231,7 +231,7 @@ export class MachinesService { .map((selection) => selection.pieceModelId) .filter(Boolean), ), - ) as string[]; + ); const pieceModels = pieceModelIds.length ? await this.prisma.pieceModel.findMany({ where: { id: { in: pieceModelIds } }, @@ -286,7 +286,6 @@ export class MachinesService { `Le groupe de pièces "${requirement.label || requirement.typePiece?.name || requirement.id}" ne peut pas dépasser ${max} sélection(s).`, ); } - } for (const selection of componentSelections) { @@ -481,10 +480,7 @@ export class MachinesService { } private extractCustomFieldValue(field: any): string | undefined { - if ( - field && - Object.prototype.hasOwnProperty.call(field, 'value') - ) { + if (field && Object.prototype.hasOwnProperty.call(field, 'value')) { const rawValue = field.value; return rawValue === undefined || rawValue === null ? '' @@ -545,9 +541,7 @@ export class MachinesService { model?: any, ): any { if (!model) { - throw new Error( - `Modèle de pièce introuvable: ${selection.pieceModelId}`, - ); + throw new Error(`Modèle de pièce introuvable: ${selection.pieceModelId}`); } const baseDefinition = model.structure ?? {}; diff --git a/src/model-type/dto/update-model-type.dto.ts b/src/model-type/dto/update-model-type.dto.ts index 012bdd4..d447a5e 100644 --- a/src/model-type/dto/update-model-type.dto.ts +++ b/src/model-type/dto/update-model-type.dto.ts @@ -1,5 +1,4 @@ import { PartialType } from '@nestjs/mapped-types'; import { CreateModelTypeDto } from './create-model-type.dto'; -// eslint-disable-next-line @typescript-eslint/no-unsafe-call export class UpdateModelTypeDto extends PartialType(CreateModelTypeDto) {} diff --git a/src/model-type/model-type.service.ts b/src/model-type/model-type.service.ts index c7fec94..039abe9 100644 --- a/src/model-type/model-type.service.ts +++ b/src/model-type/model-type.service.ts @@ -108,7 +108,9 @@ export class ModelTypeService { data: { ...dto, description: - dto.description === undefined ? undefined : dto.description ?? null, + dto.description === undefined + ? undefined + : (dto.description ?? null), }, }); } catch (error) { diff --git a/src/types/services/piece-model.service.ts b/src/types/services/piece-model.service.ts index 95b8009..0fcb5a2 100644 --- a/src/types/services/piece-model.service.ts +++ b/src/types/services/piece-model.service.ts @@ -1,6 +1,9 @@ import { Injectable } from '@nestjs/common'; import { PieceModelsRepository } from '../../common/repositories/piece-models.repository'; -import { CreatePieceModelDto, UpdatePieceModelDto } from '../../shared/dto/type.dto'; +import { + CreatePieceModelDto, + UpdatePieceModelDto, +} from '../../shared/dto/type.dto'; const PIECE_MODEL_INCLUDE = { typePiece: true, diff --git a/src/types/services/type-component.service.ts b/src/types/services/type-component.service.ts index 3a526f8..bdc219f 100644 --- a/src/types/services/type-component.service.ts +++ b/src/types/services/type-component.service.ts @@ -38,7 +38,11 @@ export class TypeComponentService { } const data = ModelTypeMapper.toComponentUpdateInput(dto); - return this.repository.updateComponentType(id, data, COMPONENT_TYPE_INCLUDE); + return this.repository.updateComponentType( + id, + data, + COMPONENT_TYPE_INCLUDE, + ); } async remove(id: string) { diff --git a/src/types/services/type-piece.service.ts b/src/types/services/type-piece.service.ts index d5feb36..5036717 100644 --- a/src/types/services/type-piece.service.ts +++ b/src/types/services/type-piece.service.ts @@ -17,7 +17,10 @@ export class TypePieceService { const code = await this.repository.generateUniqueCode(dto.name); const data = ModelTypeMapper.toPieceCreateInput(dto, code); - const created = await this.repository.createPieceType(data, PIECE_TYPE_INCLUDE); + const created = await this.repository.createPieceType( + data, + PIECE_TYPE_INCLUDE, + ); return ModelTypeMapper.mapPieceModelType(created); } @@ -34,7 +37,9 @@ export class TypePieceService { async update(id: string, dto: UpdateTypePieceDto) { if (dto.customFields !== undefined) { await this.repository.deletePieceTypeCustomFields(id); - const fields = ModelTypeMapper.mapPieceCustomFieldInputs(dto.customFields); + const fields = ModelTypeMapper.mapPieceCustomFieldInputs( + dto.customFields, + ); await this.repository.createPieceTypeCustomFields(id, fields); } diff --git a/test-api.sh b/test-api.sh index ab2bb1d..5643efd 100755 --- a/test-api.sh +++ b/test-api.sh @@ -48,8 +48,7 @@ if [ -n "$SITE_ID" ]; then \"siteId\": \"$SITE_ID\", \"reference\": \"HP-2000-001\", \"constructeur\": \"IndustriePress\", - \"prix\": \"150000.00\", - \"emplacement\": \"Zone A - Secteur 3\" + \"prix\": \"150000.00\" }") echo "Réponse création machine: $MACHINE_RESPONSE" diff --git a/test-complete-api.sh b/test-complete-api.sh index e1b665a..b2389bb 100755 --- a/test-complete-api.sh +++ b/test-complete-api.sh @@ -111,7 +111,6 @@ MACHINE_RESPONSE=$(curl -s -X POST $BASE_URL/machines \ \"reference\": \"CB-500-001\", \"constructeur\": \"TransportTech\", \"prix\": \"75000.00\", - \"emplacement\": \"Zone B - Secteur 1\", \"typeMachineId\": \"$TYPE_MACHINE_ID\" }") @@ -135,7 +134,6 @@ COMPOSANT_RESPONSE=$(curl -s -X POST $BASE_URL/composants \ \"reference\": \"MP-001\", \"constructeur\": \"MotorTech\", \"prix\": \"15000.00\", - \"emplacement\": \"Zone moteur\", \"typeComposantId\": \"$TYPE_COMPOSANT_ID\" }") @@ -157,7 +155,6 @@ SOUS_COMPOSANT_RESPONSE=$(curl -s -X POST $BASE_URL/composants \ \"reference\": \"RV-001\", \"constructeur\": \"GearTech\", \"prix\": \"8000.00\", - \"emplacement\": \"Zone réducteur\", \"typeComposantId\": \"$TYPE_COMPOSANT_ID\" }") @@ -189,7 +186,6 @@ PIECE_MACHINE_RESPONSE=$(curl -s -X POST $BASE_URL/pieces \ \"reference\": \"BT-001\", \"constructeur\": \"BeltTech\", \"prix\": \"5000.00\", - \"emplacement\": \"Zone bande\", \"typePieceId\": \"$TYPE_PIECE_ID\" }") @@ -210,7 +206,6 @@ PIECE_COMPOSANT_RESPONSE=$(curl -s -X POST $BASE_URL/pieces \ \"reference\": \"RM-001\", \"constructeur\": \"BearingTech\", \"prix\": \"500.00\", - \"emplacement\": \"Zone roulement\", \"typePieceId\": \"$TYPE_PIECE_ID\" }") @@ -319,4 +314,4 @@ echo "✅ GET /api/documents/machine/:machineId" echo -e "\n🚀 API prête pour le développement frontend !" echo "📋 URL de base : $BASE_URL" -echo "🔗 Documentation : http://localhost:3000/api (à implémenter avec Swagger)" \ No newline at end of file +echo "🔗 Documentation : http://localhost:3000/api (à implémenter avec Swagger)"