forked from jappel/leistungsbilanz-ts
Persist project device synchronization
This commit is contained in:
parent
e930cb75b8
commit
3977a6e6e1
20 changed files with 300 additions and 747 deletions
|
|
@ -165,24 +165,9 @@ export interface ProjectDeviceSyncPreviewDto {
|
|||
rows: ProjectDeviceSyncRowDto[];
|
||||
}
|
||||
|
||||
export interface ProjectDeviceSyncRestoreRowDto {
|
||||
rowId: string;
|
||||
values: Partial<Record<ProjectDeviceSyncField, string | number | null>>;
|
||||
overriddenFields: ProjectDeviceSyncField[];
|
||||
}
|
||||
|
||||
export interface ProjectDeviceSyncResultDto {
|
||||
export interface ProjectDeviceSyncCommandResultDto
|
||||
extends ProjectCommandResultDto {
|
||||
preview: ProjectDeviceSyncPreviewDto;
|
||||
undo: {
|
||||
rows: ProjectDeviceSyncRestoreRowDto[];
|
||||
};
|
||||
}
|
||||
|
||||
export interface ProjectDeviceDisconnectResultDto {
|
||||
disconnectedRowIds: string[];
|
||||
undo: {
|
||||
rowIds: string[];
|
||||
};
|
||||
}
|
||||
|
||||
export interface CircuitTreeDeviceRowDto {
|
||||
|
|
|
|||
|
|
@ -12,10 +12,8 @@ import type {
|
|||
ProjectDeviceCommandResultDto,
|
||||
ProjectDeviceDto,
|
||||
ProjectHistoryStateDto,
|
||||
ProjectDeviceDisconnectResultDto,
|
||||
ProjectDeviceSyncCommandResultDto,
|
||||
ProjectDeviceSyncPreviewDto,
|
||||
ProjectDeviceSyncRestoreRowDto,
|
||||
ProjectDeviceSyncResultDto,
|
||||
ProjectDto,
|
||||
RoomDto,
|
||||
CircuitTreeResponseDto,
|
||||
|
|
@ -387,13 +385,14 @@ export function synchronizeProjectDeviceRows(
|
|||
projectId: string,
|
||||
projectDeviceId: string,
|
||||
rowIds: string[],
|
||||
fields: ProjectDeviceSyncField[]
|
||||
fields: ProjectDeviceSyncField[],
|
||||
expectedRevision: number
|
||||
) {
|
||||
return request<ProjectDeviceSyncResultDto>(
|
||||
return request<ProjectDeviceSyncCommandResultDto>(
|
||||
`/api/project-devices/projects/${projectId}/${projectDeviceId}/synchronize`,
|
||||
{
|
||||
method: "POST",
|
||||
body: JSON.stringify({ rowIds, fields }),
|
||||
body: JSON.stringify({ rowIds, fields, expectedRevision }),
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
@ -401,41 +400,14 @@ export function synchronizeProjectDeviceRows(
|
|||
export function disconnectProjectDeviceRows(
|
||||
projectId: string,
|
||||
projectDeviceId: string,
|
||||
rowIds: string[]
|
||||
rowIds: string[],
|
||||
expectedRevision: number
|
||||
) {
|
||||
return request<ProjectDeviceDisconnectResultDto>(
|
||||
return request<ProjectDeviceSyncCommandResultDto>(
|
||||
`/api/project-devices/projects/${projectId}/${projectDeviceId}/disconnect`,
|
||||
{
|
||||
method: "POST",
|
||||
body: JSON.stringify({ rowIds }),
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
export function restoreProjectDeviceRows(
|
||||
projectId: string,
|
||||
projectDeviceId: string,
|
||||
rows: ProjectDeviceSyncRestoreRowDto[]
|
||||
) {
|
||||
return request<ProjectDeviceSyncPreviewDto>(
|
||||
`/api/project-devices/projects/${projectId}/${projectDeviceId}/restore`,
|
||||
{
|
||||
method: "POST",
|
||||
body: JSON.stringify({ rows }),
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
export function reconnectProjectDeviceRows(
|
||||
projectId: string,
|
||||
projectDeviceId: string,
|
||||
rowIds: string[]
|
||||
) {
|
||||
return request<ProjectDeviceSyncPreviewDto>(
|
||||
`/api/project-devices/projects/${projectId}/${projectDeviceId}/reconnect`,
|
||||
{
|
||||
method: "POST",
|
||||
body: JSON.stringify({ rowIds }),
|
||||
body: JSON.stringify({ rowIds, expectedRevision }),
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue