chore: add invalidateSessions endpoint and query
This commit is contained in:
@@ -9,6 +9,7 @@ export namespace endpoints {
|
|||||||
profile = "profile/v1/Profile",
|
profile = "profile/v1/Profile",
|
||||||
upcomingStays = "booking/v1/Stays/future",
|
upcomingStays = "booking/v1/Stays/future",
|
||||||
previousStays = "booking/v1/Stays/past",
|
previousStays = "booking/v1/Stays/past",
|
||||||
|
invalidateSessions = "profile/v1/Profile/invalidateSessions",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,36 @@ function fakingRequest<T>(payload: T): Promise<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const userQueryRouter = router({
|
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 }) {
|
get: protectedProcedure.query(async function ({ ctx }) {
|
||||||
const apiResponse = await api.get(api.endpoints.v1.profile, {
|
const apiResponse = await api.get(api.endpoints.v1.profile, {
|
||||||
cache: "no-store",
|
cache: "no-store",
|
||||||
|
|||||||
Reference in New Issue
Block a user