Rework MapMarkerResponseDto

This commit is contained in:
Matthias Rupp 2023-05-07 07:00:06 -11:00
parent 6127d3f8f6
commit 7a8455c254
2 changed files with 15 additions and 12 deletions

View file

@ -96,24 +96,27 @@ export type MapMarkerResponseDto = [
];
export class MapMarkerResponseDtoDecorator {
private dto: MapMarkerResponseDto;
constructor(private assetId: string, private lat: number, private lon: number) {}
constructor(dto: MapMarkerResponseDto) {
this.dto = dto;
}
static map(response: object[]): MapMarkerResponseDtoDecorator[] {
return response.map(
(marker) => new MapMarkerResponseDtoDecorator(marker as unknown as MapMarkerResponseDto)
static from(response: object): MapMarkerResponseDtoDecorator {
const responseArray = response as MapMarkerResponseDto;
return new MapMarkerResponseDtoDecorator(
responseArray[0] as string,
responseArray[1] as number,
responseArray[2] as number
);
}
static fromMany(responses: object[]): MapMarkerResponseDtoDecorator[] {
return responses.map(MapMarkerResponseDtoDecorator.from);
}
public getAssetId(): string {
return this.dto[0];
return this.assetId;
}
public getLatLon(): [number, number] {
return [this.dto[1], this.dto[2]];
return [this.lat, this.lon];
}
}

View file

@ -18,14 +18,14 @@
let initialMapCenter: [number, number] = [48, 11];
onMount(async () => {
mapMarkers = MapMarkerResponseDtoDecorator.map(data.mapMarkers);
mapMarkers = MapMarkerResponseDtoDecorator.fromMany(data.mapMarkers);
if (mapMarkers.length) {
initialMapCenter = mapMarkers[0].getLatLon();
}
const markersResponse = (await api.assetApi.getMapMarkers()).data;
mapMarkers = MapMarkerResponseDtoDecorator.map(markersResponse);
mapMarkers = MapMarkerResponseDtoDecorator.fromMany(markersResponse);
});
let viewingAssets: string[] = [];