add direction decoder

This commit is contained in:
sbriat
2023-08-21 16:00:37 +02:00
parent 1dd44b1425
commit e93d8b0c9d
5 changed files with 29 additions and 1 deletions

View File

@@ -2,4 +2,5 @@ import { Coordinates } from '../types/coordinates.type';
export interface DirectionEncoderPort {
encode(coordinates: Coordinates[]): string;
decode(direction: string): Coordinates[];
}

View File

@@ -10,4 +10,14 @@ export class PostgresDirectionEncoder implements DirectionEncoderPort {
coordinates.map((point) => [point.lon, point.lat].join(' ')).join(),
")'",
].join('');
decode = (direction: string): Coordinates[] =>
direction
.split('(')[1]
.split(')')[0]
.split(',')
.map((coordinates) => coordinates.split(' '))
.map((point) => ({
lon: parseFloat(point[0]),
lat: parseFloat(point[1]),
}));
}