Skip to content

Commit 8c9718d

Browse files
authored
Update with new common tabular DTO (#3346)
Signed-off-by: David BRAQUART <[email protected]>
1 parent d7a2f76 commit 8c9718d

File tree

4 files changed

+41
-88
lines changed

4 files changed

+41
-88
lines changed

src/components/dialogs/network-modifications/limit-sets/limit-sets-modification-dialog.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ export function LimitSetsModificationDialog({
100100
modificationType,
101101
modifications,
102102
modificationUuid: editData?.uuid,
103-
type: ModificationType.LIMIT_SETS_TABULAR_MODIFICATION,
103+
tabularType: ModificationType.LIMIT_SETS_TABULAR_MODIFICATION,
104104
csvFilename: formData[CSV_FILENAME],
105105
}).catch((error) => {
106106
snackError({

src/components/dialogs/network-modifications/tabular/tabular-common.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,22 +36,14 @@ import {
3636
import yup from 'components/utils/yup-config';
3737
import type { UUID } from 'node:crypto';
3838

39-
type TabularModificationCommonType = {
39+
export type TabularModificationEditDataType = {
4040
uuid: UUID;
41+
type: ModificationType.TABULAR_MODIFICATION | ModificationType.TABULAR_CREATION;
4142
properties: TabularProperty[];
4243
csvFilename: string;
43-
};
44-
export type TabularModificationModificationType = TabularModificationCommonType & {
45-
type: 'TABULAR_MODIFICATION';
4644
modificationType: ModificationType;
4745
modifications: Modification[];
4846
};
49-
export type TabularModificationCreationType = TabularModificationCommonType & {
50-
type: 'TABULAR_CREATION';
51-
creationType: ModificationType;
52-
creations: Modification[];
53-
};
54-
export type TabularModificationEditDataType = TabularModificationModificationType | TabularModificationCreationType;
5547

5648
export enum TabularModificationType {
5749
CREATION = 'creation',

src/components/dialogs/network-modifications/tabular/tabular-dialog.tsx

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { useOpenShortWaitFetching } from 'components/dialogs/commons/handle-modi
1313
import { FORM_LOADING_DELAY } from 'components/network/constants.js';
1414
import { TABULAR_PROPERTIES, MODIFICATIONS_TABLE, CSV_FILENAME, TYPE } from 'components/utils/field-constants.js';
1515
import { ModificationDialog } from 'components/dialogs/commons/modificationDialog.js';
16-
import { createTabularCreation, createTabularModification } from 'services/study/network-modifications.js';
16+
import { createTabularModification } from 'services/study/network-modifications.js';
1717
import { FetchStatus } from 'services/utils.type';
1818
import {
1919
convertGeneratorOrBatteryModificationFromBackToFront,
@@ -32,9 +32,7 @@ import {
3232
Modification,
3333
tabularFormSchema,
3434
TabularFormType,
35-
TabularModificationCreationType,
3635
TabularModificationEditDataType,
37-
TabularModificationModificationType,
3836
TabularModificationType,
3937
transformProperties,
4038
} from './tabular-common.js';
@@ -51,12 +49,12 @@ import { NetworkModificationDialogProps } from '../../../graph/menus/network-mod
5149
function convertCreations(creations: Modification[]): Modification[] {
5250
return creations.map((creat: Modification) => {
5351
let creation: Modification = {};
54-
Object.keys(formatModification(creat)).forEach((key) => {
52+
for (const key of Object.keys(formatModification(creat))) {
5553
const entry = convertCreationFieldFromBackToFront(key, creat[key]);
56-
(Array.isArray(entry) ? entry : [entry]).forEach((item) => {
54+
for (const item of Array.isArray(entry) ? entry : [entry]) {
5755
creation[item.key] = item.value;
58-
});
59-
});
56+
}
57+
}
6058
creation = addPropertiesFromBack(creation, creat?.[TABULAR_PROPERTIES]);
6159
return creation;
6260
});
@@ -98,7 +96,7 @@ export function TabularDialog({
9896
const disableSave = Object.keys(errors).length > 0;
9997

10098
const initTabularModificationData = useCallback(
101-
(editData: TabularModificationModificationType) => {
99+
(editData: TabularModificationEditDataType) => {
102100
const modificationType = editData.modificationType;
103101
const modifications = editData.modifications.map((modif: Modification) => {
104102
let modification = formatModification(modif);
@@ -108,9 +106,9 @@ export function TabularDialog({
108106
) {
109107
modification = convertGeneratorOrBatteryModificationFromBackToFront(modification);
110108
} else {
111-
Object.keys(modification).forEach((key) => {
109+
for (const key of Object.keys(modification)) {
112110
modification[key] = convertInputValues(getFieldType(modificationType, key), modif[key]);
113-
});
111+
}
114112
}
115113
modification = addPropertiesFromBack(modification, modif?.[TABULAR_PROPERTIES]);
116114
return modification;
@@ -126,9 +124,9 @@ export function TabularDialog({
126124
);
127125

128126
const initTabularCreationData = useCallback(
129-
(editData: TabularModificationCreationType) => {
130-
const equipmentType = getEquipmentTypeFromCreationType(editData?.creationType);
131-
const creations = convertCreations(editData?.creations);
127+
(editData: TabularModificationEditDataType) => {
128+
const equipmentType = getEquipmentTypeFromCreationType(editData?.modificationType);
129+
const creations = convertCreations(editData?.modifications);
132130
reset({
133131
[TYPE]: equipmentType,
134132
[MODIFICATIONS_TABLE]: creations,
@@ -142,9 +140,9 @@ export function TabularDialog({
142140
useEffect(() => {
143141
if (editData) {
144142
if (dialogMode === TabularModificationType.CREATION) {
145-
initTabularCreationData(editData as TabularModificationCreationType);
143+
initTabularCreationData(editData);
146144
} else {
147-
initTabularModificationData(editData as TabularModificationModificationType);
145+
initTabularModificationData(editData);
148146
}
149147
}
150148
}, [editData, dialogMode, initTabularCreationData, initTabularModificationData]);
@@ -162,7 +160,7 @@ export function TabularDialog({
162160
modificationType,
163161
modifications,
164162
modificationUuid: editData?.uuid,
165-
type: ModificationType.TABULAR_MODIFICATION,
163+
tabularType: ModificationType.TABULAR_MODIFICATION,
166164
csvFilename: formData[CSV_FILENAME],
167165
properties: formData[TABULAR_PROPERTIES],
168166
}).catch((error) => {
@@ -177,21 +175,24 @@ export function TabularDialog({
177175

178176
const submitTabularCreation = useCallback(
179177
(formData: TabularFormType) => {
180-
const creationType = TABULAR_CREATION_TYPES[formData[TYPE]];
181-
const creations = formData[MODIFICATIONS_TABLE]?.map((row) => {
178+
const modificationType = TABULAR_CREATION_TYPES[formData[TYPE]];
179+
const modifications = formData[MODIFICATIONS_TABLE]?.map((row) => {
182180
const creation: Modification = {
183-
type: creationType,
181+
type: modificationType,
184182
};
185183
// first transform and clean "property_*" fields
186184
const propertiesModifications = transformProperties(row);
187185

188186
// then transform all other fields
189-
Object.keys(row).forEach((key) => {
187+
for (const key of Object.keys(row)) {
190188
const entry = convertCreationFieldFromFrontToBack(key, row[key]);
191189
creation[entry.key] = entry.value;
192-
});
190+
}
193191
// For now, we do not manage reactive limits by diagram
194-
if (creationType === 'GENERATOR_CREATION' || creationType === 'BATTERY_CREATION') {
192+
if (
193+
modificationType === ModificationType.GENERATOR_CREATION ||
194+
modificationType === ModificationType.BATTERY_CREATION
195+
) {
195196
convertReactiveCapabilityCurvePointsFromFrontToBack(creation);
196197
}
197198

@@ -200,12 +201,13 @@ export function TabularDialog({
200201
}
201202
return creation;
202203
});
203-
createTabularCreation({
204+
createTabularModification({
204205
studyUuid,
205206
nodeUuid: currentNodeUuid,
206-
creationType,
207-
creations,
207+
modificationType,
208+
modifications,
208209
modificationUuid: editData?.uuid,
210+
tabularType: ModificationType.TABULAR_CREATION,
209211
csvFilename: formData[CSV_FILENAME],
210212
properties: formData[TABULAR_PROPERTIES],
211213
}).catch((error) => {

src/services/study/network-modifications.ts

Lines changed: 11 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1109,7 +1109,10 @@ export interface CreateTabularModificationProps {
11091109
modificationType: string;
11101110
modifications: Modification[];
11111111
modificationUuid: UUID;
1112-
type: ModificationType;
1112+
tabularType:
1113+
| ModificationType.LIMIT_SETS_TABULAR_MODIFICATION
1114+
| ModificationType.TABULAR_MODIFICATION
1115+
| ModificationType.TABULAR_CREATION;
11131116
csvFilename?: string;
11141117
properties?: TabularProperty[];
11151118
}
@@ -1120,27 +1123,27 @@ export function createTabularModification({
11201123
modificationType,
11211124
modifications,
11221125
modificationUuid,
1123-
type,
1126+
tabularType,
11241127
csvFilename,
11251128
properties,
11261129
}: CreateTabularModificationProps) {
1127-
let createTabularModificationUrl = getNetworkModificationUrl(studyUuid, nodeUuid);
1130+
let tabularModificationUrl = getNetworkModificationUrl(studyUuid, nodeUuid);
11281131
const isUpdate = !!modificationUuid;
11291132
if (isUpdate) {
1130-
createTabularModificationUrl += '/' + encodeURIComponent(modificationUuid);
1131-
console.info('Updating tabular modification');
1133+
tabularModificationUrl += '/' + encodeURIComponent(modificationUuid);
1134+
console.info('Updating ' + tabularType);
11321135
} else {
1133-
console.info('Creating tabular modification');
1136+
console.info('Creating ' + tabularType);
11341137
}
11351138

1136-
return backendFetchText(createTabularModificationUrl, {
1139+
return backendFetchText(tabularModificationUrl, {
11371140
method: isUpdate ? 'PUT' : 'POST',
11381141
headers: {
11391142
Accept: 'application/json',
11401143
'Content-Type': 'application/json',
11411144
},
11421145
body: JSON.stringify({
1143-
type: type,
1146+
type: tabularType,
11441147
modificationType: modificationType,
11451148
modifications: modifications,
11461149
properties: properties,
@@ -2052,50 +2055,6 @@ export function modifyByAssignment(
20522055
});
20532056
}
20542057

2055-
export interface CreateTabularCreationProps {
2056-
studyUuid: UUID;
2057-
nodeUuid: UUID;
2058-
creationType: string;
2059-
creations: Modification[];
2060-
modificationUuid: UUID;
2061-
csvFilename?: string;
2062-
properties?: TabularProperty[];
2063-
}
2064-
2065-
export function createTabularCreation({
2066-
studyUuid,
2067-
nodeUuid,
2068-
creationType,
2069-
creations,
2070-
modificationUuid,
2071-
csvFilename,
2072-
properties,
2073-
}: CreateTabularCreationProps) {
2074-
let createTabularCreationUrl = getNetworkModificationUrl(studyUuid, nodeUuid);
2075-
const isUpdate = !!modificationUuid;
2076-
if (isUpdate) {
2077-
createTabularCreationUrl += '/' + encodeURIComponent(modificationUuid);
2078-
console.info('Updating tabular creation');
2079-
} else {
2080-
console.info('Creating tabular creation');
2081-
}
2082-
2083-
return backendFetchText(createTabularCreationUrl, {
2084-
method: isUpdate ? 'PUT' : 'POST',
2085-
headers: {
2086-
Accept: 'application/json',
2087-
'Content-Type': 'application/json',
2088-
},
2089-
body: JSON.stringify({
2090-
type: MODIFICATION_TYPES.TABULAR_CREATION.type,
2091-
creationType: creationType,
2092-
creations: creations,
2093-
properties: properties,
2094-
csvFilename: csvFilename,
2095-
}),
2096-
});
2097-
}
2098-
20992058
export function createCouplingDevice({
21002059
createCouplingDeviceInfos,
21012060
studyUuid,

0 commit comments

Comments
 (0)