Merged in feat/SW-1007-saved-cards-filtering (pull request #980)

Feat/SW-1007 saved payment cards now shown based on supported cards by hotel

* fix(SW-1007): refactored savedCards to only show supported payment cards

* fix(SW-1007): show error message even if metadata is null

* fix: merge changes that were missed

* fix: remove use server


Approved-by: Christel Westerberg
This commit is contained in:
Tobias Johansson
2024-11-28 08:08:39 +00:00
parent 8f3d203b70
commit 9b90e99adf
10 changed files with 494 additions and 433 deletions

View File

@@ -13,7 +13,11 @@ import { countries } from "@/components/TempDesignSystem/Form/Country/countries"
import * as maskValue from "@/utils/maskValue"
import { getMembership, getMembershipCards } from "@/utils/user"
import { friendTransactionsInput, staysInput } from "./input"
import {
friendTransactionsInput,
getSavedPaymentCardsInput,
staysInput,
} from "./input"
import {
creditCardsSchema,
getFriendTransactionsSchema,
@@ -752,13 +756,26 @@ export const userQueryRouter = router({
creditCards: protectedProcedure.query(async function ({ ctx }) {
return await getCreditCards({ session: ctx.session })
}),
safeCreditCards: safeProtectedProcedure.query(async function ({ ctx }) {
if (!ctx.session) {
return null
}
safePaymentCards: safeProtectedProcedure
.input(getSavedPaymentCardsInput)
.query(async function ({ ctx, input }) {
if (!ctx.session) {
return null
}
return await getCreditCards({ session: ctx.session, onlyNonExpired: true })
}),
const savedCards = await getCreditCards({
session: ctx.session,
onlyNonExpired: true,
})
if (!savedCards) {
return null
}
return savedCards.filter((card) =>
input.supportedCards.includes(card.type)
)
}),
membershipCards: protectedProcedure.query(async function ({ ctx }) {
getProfileCounter.add(1)