Merged in feature/SW-3572-hotel-data-endpoint (pull request #3051)

SW-3572 API route for listing hotels per city or country

* wip hotel data endpoint

* Correct route params type

* wip

* skip static paths call

* timeout when getting destinations take too long

* call noStore when we get a timeout

* add cache-control headers

* .

* .

* .

* wip

* wip

* wip

* wip

* add route for getting hotels per country

* include city when listing by country

* fix distance SI unit

* fix sorting

* Merge branch 'master' of bitbucket.org:scandic-swap/web into feature/SW-3572-hotel-data-endpoint

* packages/tracking passWithNoTests

* revalidate must be static value

* remove oxc reference

* cleanup

* cleanup hotel api route

* feat(SW-3572): cleanup error handling


Approved-by: Anton Gunnarsson
This commit is contained in:
Joakim Jäderberg
2025-11-03 12:10:22 +00:00
parent e8626d56af
commit 15a2da333d
25 changed files with 1227 additions and 249 deletions

View File

@@ -1,5 +1,13 @@
import { TRPCError } from "@trpc/server"
export function gatewayTimeout(cause?: unknown) {
return new TRPCError({
code: "GATEWAY_TIMEOUT",
message: `Gateway Timeout`,
cause,
})
}
export function unauthorizedError(cause?: unknown) {
return new TRPCError({
code: "UNAUTHORIZED",
@@ -76,6 +84,28 @@ export function publicUnauthorizedError() {
})
}
export function httpStatusByErrorCode(error: TRPCError) {
switch (error.code) {
case "BAD_REQUEST":
return 400
case "UNAUTHORIZED":
return 401
case "FORBIDDEN":
return 403
case "NOT_FOUND":
return 404
case "CONFLICT":
return 409
case "UNPROCESSABLE_CONTENT":
return 422
case "GATEWAY_TIMEOUT":
return 504
case "INTERNAL_SERVER_ERROR":
default:
return 500
}
}
export function serverErrorByStatus(status: number, cause?: unknown) {
switch (status) {
case 401: