From 7fa22080797720f9c9d8e4051b9f44c58ae1bd04 Mon Sep 17 00:00:00 2001 From: Candid Dauth Date: Sun, 21 Apr 2024 19:55:09 +0200 Subject: [PATCH] Rename PadNotFoundError to MapNotFoundError --- client/src/client.ts | 4 ++-- docs/src/developers/client/changelog.md | 2 +- frontend/src/lib/components/client-provider.vue | 4 ++-- server/src/socket/socket-v2.ts | 13 +++++++++++-- server/src/socket/socket-v3.ts | 4 ++-- types/src/errors.ts | 4 ++-- 6 files changed, 20 insertions(+), 11 deletions(-) diff --git a/client/src/client.ts b/client/src/client.ts index fbbfa223..596d95a9 100644 --- a/client/src/client.ts +++ b/client/src/client.ts @@ -1,5 +1,5 @@ import { io, type ManagerOptions, type Socket as SocketIO, type SocketOptions } from "socket.io-client"; -import { type Bbox, type BboxWithZoom, type CRU, type EventHandler, type EventName, type FindOnMapQuery, type FindMapsQuery, type FindMapsResult, type FindQuery, type GetMapQuery, type HistoryEntry, type ID, type Line, type LineExportRequest, type LineTemplateRequest, type LineToRouteCreate, type SocketEvents, type Marker, type MultipleEvents, type ObjectWithId, type MapData, type MapId, type PagedResults, type SocketRequest, type SocketRequestName, type SocketResponse, type Route, type RouteClear, type RouteCreate, type RouteExportRequest, type RouteInfo, type RouteRequest, type SearchResult, type SocketVersion, type TrackPoint, type Type, type View, type Writable, type SocketClientToServerEvents, type SocketServerToClientEvents, type LineTemplate, type LinePointsEvent, PadNotFoundError, type SetLanguageRequest } from "facilmap-types"; +import { type Bbox, type BboxWithZoom, type CRU, type EventHandler, type EventName, type FindOnMapQuery, type FindMapsQuery, type FindMapsResult, type FindQuery, type GetMapQuery, type HistoryEntry, type ID, type Line, type LineExportRequest, type LineTemplateRequest, type LineToRouteCreate, type SocketEvents, type Marker, type MultipleEvents, type ObjectWithId, type MapData, type MapId, type PagedResults, type SocketRequest, type SocketRequestName, type SocketResponse, type Route, type RouteClear, type RouteCreate, type RouteExportRequest, type RouteInfo, type RouteRequest, type SearchResult, type SocketVersion, type TrackPoint, type Type, type View, type Writable, type SocketClientToServerEvents, type SocketServerToClientEvents, type LineTemplate, type LinePointsEvent, MapNotFoundError, type SetLanguageRequest } from "facilmap-types"; import { deserializeError, errorConstructors, serializeError } from "serialize-error"; export interface ClientEventsInterface extends SocketEvents { @@ -68,7 +68,7 @@ interface ClientData { routes: Record; } -errorConstructors.set("PadNotFoundError", PadNotFoundError as any); +errorConstructors.set("MapNotFoundError", MapNotFoundError as any); class Client { private socket: SocketIO, SocketClientToServerEvents>; diff --git a/docs/src/developers/client/changelog.md b/docs/src/developers/client/changelog.md index eab8a5ac..445f2d41 100644 --- a/docs/src/developers/client/changelog.md +++ b/docs/src/developers/client/changelog.md @@ -5,7 +5,7 @@ The websocket on the FacilMap server provides different API versions (implemente ## v5.0.0 (API v3) * “symbol” was renamed to “icon” everywhere. This applies to `Marker.symbol`, `Type.defaultSymbol`, `Type.symbolFixed`, `Type.fields[].controlSymbol` and `Type.fields[].options[].symbol`. -* “pad” was renamed “map” everywhere. This applies to the `padData` and `deletePad` socket events and `getPad` (including its `padId` request property), `findPads`, `createPad`, `editPad`, `deletePad`, `setPadId` client/socket methods. +* “pad” was renamed “map” everywhere. This applies to the `padData` and `deletePad` socket events and `getPad` (including its `padId` request property), the `findPads`, `createPad`, `editPad`, `deletePad`, `setPadId` client/socket methods, the `PadNotFoundError`. ## v4.0.0 (API v2) diff --git a/frontend/src/lib/components/client-provider.vue b/frontend/src/lib/components/client-provider.vue index 3aba167b..e0c4f77b 100644 --- a/frontend/src/lib/components/client-provider.vue +++ b/frontend/src/lib/components/client-provider.vue @@ -1,7 +1,7 @@ diff --git a/server/src/socket/socket-v2.ts b/server/src/socket/socket-v2.ts index ddfcd7b9..0f6a26de 100644 --- a/server/src/socket/socket-v2.ts +++ b/server/src/socket/socket-v2.ts @@ -1,4 +1,4 @@ -import { SocketVersion, type SocketEvents, type MultipleEvents, type FindOnMapResult, type SocketServerToClientEmitArgs, legacyV2MarkerToCurrent, currentMarkerToLegacyV2, currentTypeToLegacyV2, legacyV2TypeToCurrent, mapHistoryEntry } from "facilmap-types"; +import { SocketVersion, type SocketEvents, type MultipleEvents, type FindOnMapResult, type SocketServerToClientEmitArgs, legacyV2MarkerToCurrent, currentMarkerToLegacyV2, currentTypeToLegacyV2, legacyV2TypeToCurrent, mapHistoryEntry, MapNotFoundError } from "facilmap-types"; import { mapMultipleEvents, type SocketConnection, type SocketHandlers } from "./socket-common"; import { SocketConnectionV3 } from "./socket-v3"; import type Database from "../database/database"; @@ -71,7 +71,16 @@ export class SocketConnectionV2 implements SocketConnection { createPad: async (mapData) => prepareMultiple(await socketHandlersV3.createMap(mapData)), editPad: async (mapData) => await socketHandlersV3.editMap(mapData), deletePad: async (data) => await socketHandlersV3.deleteMap(data), - setPadId: async (mapId) => prepareMultiple(await socketHandlersV3.setMapId(mapId)), + setPadId: async (mapId) => { + try { + return prepareMultiple(await socketHandlersV3.setMapId(mapId)); + } catch (err: any) { + if (err instanceof MapNotFoundError) { + err.name = "PadNotFoundError"; + } + throw err; + } + }, updateBbox: async (bbox) => prepareMultiple(await socketHandlersV3.updateBbox(bbox)), listenToHistory: async (data) => prepareMultiple(await socketHandlersV3.listenToHistory(data)), diff --git a/server/src/socket/socket-v3.ts b/server/src/socket/socket-v3.ts index b8e3e2b7..1be88168 100644 --- a/server/src/socket/socket-v3.ts +++ b/server/src/socket/socket-v3.ts @@ -6,7 +6,7 @@ import { find } from "../search.js"; import { geoipLookup } from "../geoip.js"; import { cloneDeep, isEqual, omit } from "lodash-es"; import Database, { type DatabaseEvents } from "../database/database.js"; -import { type Bbox, type BboxWithZoom, type SocketEvents, type MultipleEvents, type MapData, type MapId, SocketVersion, Writable, PadNotFoundError, type SocketServerToClientEmitArgs, type EventName } from "facilmap-types"; +import { type Bbox, type BboxWithZoom, type SocketEvents, type MultipleEvents, type MapData, type MapId, SocketVersion, Writable, MapNotFoundError, type SocketServerToClientEmitArgs, type EventName } from "facilmap-types"; import { calculateRoute, prepareForBoundingBox } from "../routing/routing.js"; import type { RouteWithId } from "../database/route.js"; import { type SocketConnection, type DatabaseHandlers, type SocketHandlers } from "./socket-common.js"; @@ -108,7 +108,7 @@ export class SocketConnectionV3 implements SocketConnection { map = omit({ ...read, writable: Writable.READ }, ["writeId", "adminId"]); else { this.mapId = undefined; - throw new PadNotFoundError(getI18n().t("socket.map-not-exist-error")); + throw new MapNotFoundError(getI18n().t("socket.map-not-exist-error")); } this.mapId = map.id; diff --git a/types/src/errors.ts b/types/src/errors.ts index 4c321102..b6c87f12 100644 --- a/types/src/errors.ts +++ b/types/src/errors.ts @@ -1,3 +1,3 @@ -export class PadNotFoundError extends Error { - name = "PadNotFoundError"; +export class MapNotFoundError extends Error { + name = "MapNotFoundError"; } \ No newline at end of file