Merged in feat/LOY-364-promo-activation-flow (pull request #2872)

Feat/LOY-364 promo activation flow

* feat(LOY-364): add promo activation flow

* chore(LOY-371): add tracking

Approved-by: Chuma Mcphoy (We Ahead)
This commit is contained in:
Matilda Landström
2025-10-01 06:39:35 +00:00
parent 8ac9e82476
commit 72d62e6868
17 changed files with 373 additions and 35 deletions

View File

@@ -9,6 +9,7 @@ import { serverErrorByStatus } from "../../errors"
import { protectedProcedure, serviceProcedure } from "../../procedures"
import {
addCreditCardInput,
addPromoCampaignInput,
deleteCreditCardInput,
saveCreditCardInput,
signupInput,
@@ -216,4 +217,48 @@ export const userMutationRouter = router({
redirectUrl: signupVerify[input.language],
}
}),
promoCampaign: router({
add: protectedProcedure
.input(addPromoCampaignInput)
.mutation(async function ({ ctx, input }) {
userMutationLogger.info("api.user.promoCampaign.add start")
const apiResponse = await api.post(
api.endpoints.v2.Profile.promoCampaign,
{
headers: {
Authorization: `Bearer ${ctx.session.token.access_token}`,
},
body: {
promotionId: input.promotionId,
},
}
)
if (!apiResponse.ok) {
const text = await apiResponse.text()
userMutationLogger.error(
"api.user.promoCampaign.add error",
JSON.stringify({
query: {
promotionId: input.promotionId,
},
error: {
status: apiResponse.status,
statusText: apiResponse.statusText,
text,
},
})
)
return false
}
userMutationLogger.info(
"api.user.promoCampaign.add success",
JSON.stringify({
query: { promotionId: input.promotionId },
})
)
return true
}),
}),
})