feat: update current & surprise queries to support new endpoint

This commit is contained in:
Chuma McPhoy
2024-11-12 14:28:52 +01:00
parent 48af26a772
commit 31a94cfa6a
3 changed files with 89 additions and 28 deletions
+29 -10
View File
@@ -14,7 +14,12 @@ import {
rewardsCurrentInput,
rewardsUpdateInput,
} from "./input"
import { Reward, SurpriseReward, validateApiRewardSchema } from "./output"
import {
Reward,
SurpriseReward,
validateApiRewardSchema,
validateCategorizedRewardsSchema,
} from "./output"
import {
getAllCachedApiRewards,
getAllRewardCounter,
@@ -33,6 +38,8 @@ import {
import { Surprise } from "@/types/components/blocks/surprises"
const ONE_HOUR = 60 * 60
export const rewardQueryRouter = router({
all: contentStackBaseWithServiceProcedure
.input(rewardsAllInput)
@@ -154,12 +161,17 @@ export const rewardQueryRouter = router({
const { limit, cursor } = input
const apiResponse = await api.get(api.endpoints.v1.Profile.reward, {
const isNewEndpoint = !!env.USE_NEW_REWARDS_ENDPOINT
const endpoint = isNewEndpoint
? api.endpoints.v1.Profile.Reward.reward
: api.endpoints.v1.Profile.reward
const apiResponse = await api.get(endpoint, {
cache: undefined, // override defaultOptions
headers: {
Authorization: `Bearer ${ctx.session.token.access_token}`,
},
next: { revalidate: 60 * 60 },
next: { revalidate: ONE_HOUR },
})
if (!apiResponse.ok) {
@@ -186,8 +198,9 @@ export const rewardQueryRouter = router({
}
const data = await apiResponse.json()
const validatedApiRewards = validateApiRewardSchema.safeParse(data)
const validatedApiRewards = isNewEndpoint
? validateCategorizedRewardsSchema.safeParse(data)
: validateApiRewardSchema.safeParse(data)
if (!validatedApiRewards.success) {
getCurrentRewardFailCounter.add(1, {
@@ -243,12 +256,17 @@ export const rewardQueryRouter = router({
surprises: contentStackBaseWithProtectedProcedure.query(async ({ ctx }) => {
getCurrentRewardCounter.add(1)
const apiResponse = await api.get(api.endpoints.v1.Profile.reward, {
cache: undefined, // override defaultOptions
const isNewEndpoint = !!env.USE_NEW_REWARDS_ENDPOINT
const endpoint = isNewEndpoint
? api.endpoints.v1.Profile.Reward.reward
: api.endpoints.v1.Profile.reward
const apiResponse = await api.get(endpoint, {
cache: undefined,
headers: {
Authorization: `Bearer ${ctx.session.token.access_token}`,
},
next: { revalidate: 60 * 60 },
next: { revalidate: ONE_HOUR },
})
if (!apiResponse.ok) {
@@ -275,8 +293,9 @@ export const rewardQueryRouter = router({
}
const data = await apiResponse.json()
const validatedApiRewards = validateApiRewardSchema.safeParse(data)
const validatedApiRewards = isNewEndpoint
? validateCategorizedRewardsSchema.safeParse(data)
: validateApiRewardSchema.safeParse(data)
if (!validatedApiRewards.success) {
getCurrentRewardFailCounter.add(1, {