Merged in fix/sw-1664-sas-link-otp-error-handling (pull request #1354)

Update SAS OTP error handling

Approved-by: Joakim Jäderberg
This commit is contained in:
Anton Gunnarsson
2025-02-17 11:40:00 +00:00
parent c93381ca80
commit 9b61417264

View File

@@ -1,5 +1,4 @@
import { TRPCError } from "@trpc/server" import { TRPCError } from "@trpc/server"
import { cookies } from "next/headers"
import { z } from "zod" import { z } from "zod"
import { env } from "@/env/server" import { env } from "@/env/server"
@@ -27,7 +26,7 @@ const outputSchema = z.object({
"NULL", "NULL",
"NOTSENT", "NOTSENT",
]), ]),
referenceId: z.string().uuid(), referenceId: z.string().uuid().optional(),
databaseUUID: z.string().uuid().optional(), databaseUUID: z.string().uuid().optional(),
}) })
@@ -47,19 +46,27 @@ export const verifyOtp = protectedProcedure
verifyResponse.status, verifyResponse.status,
verifyResponse.statusText verifyResponse.statusText
) )
if (!verifyResponse.ok) {
const errorBody = await verifyResponse.json() if (verifyResponse.status > 499) {
console.error("[SAS] verifyOTP error", errorBody) console.error("[SAS] verifyOTP error", await verifyResponse.text())
throw createError(errorBody) throw new TRPCError({
code: "SERVICE_UNAVAILABLE",
message: "Error from downstream SAS service",
})
}
const data = await verifyResponse.json()
console.log("[SAS] verifyOTP data", data)
const result = outputSchema.safeParse(data)
if (!result.success) {
console.error("[SAS] verifyOTP error", result.error)
throw createError(data)
} }
console.log("[SAS] verifyOTP success") console.log("[SAS] verifyOTP success")
const verifyData = await verifyResponse.json() console.log("[SAS] verifyOTP responding", result.data)
console.log("[SAS] verifyOTP data", verifyData)
const response = outputSchema.parse(verifyData)
console.log("[SAS] verifyOTP responding", response)
return response return result.data
}) })
async function fetchVerifyOtp(input: z.infer<typeof inputSchema>) { async function fetchVerifyOtp(input: z.infer<typeof inputSchema>) {