chore: add invalidateSessions endpoint and query

This commit is contained in:
Matilda Landström
2024-05-14 08:51:31 +02:00
parent e00da4278d
commit 5c3a57c43a
2 changed files with 31 additions and 0 deletions

View File

@@ -9,6 +9,7 @@ export namespace endpoints {
profile = "profile/v1/Profile",
upcomingStays = "booking/v1/Stays/future",
previousStays = "booking/v1/Stays/past",
invalidateSessions = "profile/v1/Profile/invalidateSessions",
}
}

View File

@@ -21,6 +21,36 @@ function fakingRequest<T>(payload: T): Promise<T> {
}
export const userQueryRouter = router({
invalidateSessions: protectedProcedure.query(async function ({ ctx }) {
try {
const apiResponse = await api.post(api.endpoints.v1.invalidateSessions, {
cache: "no-store",
headers: {
Authorization: `Bearer ${ctx.session.token.access_token}`,
},
body: {},
})
if (!apiResponse.ok) {
switch (apiResponse.status) {
case 400:
throw badRequestError(apiResponse)
case 401:
throw unauthorizedError(apiResponse)
case 403:
throw forbiddenError(apiResponse)
default:
throw internalServerError(apiResponse)
}
}
return true
} catch (error) {
console.info(`Invalidate Sessions Error`)
console.error(error)
throw internalServerError()
}
}),
get: protectedProcedure.query(async function ({ ctx }) {
const apiResponse = await api.get(api.endpoints.v1.profile, {
cache: "no-store",