refactor: create page specific tRPC requests

This commit is contained in:
Arvid Norlin
2024-04-19 14:10:04 +02:00
parent 990b84e0cb
commit b21c2640c2
3 changed files with 35 additions and 12 deletions

View File

@@ -8,10 +8,11 @@ import type { LangParams, PageArgs } from "@/types/params"
export default async function BenefitsPage({ params }: PageArgs<LangParams>) {
const user = await serverClient().user.get()
const accountPage = await serverClient().contentstack.accountPage.get({
lang: params.lang,
uri: "/my-pages/benefits",
})
const accountPage = await serverClient().contentstack.accountPage.getBenefits(
{
lang: params.lang,
}
)
return (
<main className={styles.container}>

View File

@@ -10,10 +10,11 @@ import type { LangParams, PageArgs } from "@/types/params"
export default async function MyPageOverview({ params }: PageArgs<LangParams>) {
const user = await serverClient().user.get()
const accountPage = await serverClient().contentstack.accountPage.get({
uri: "/my-pages/overview",
lang: params.lang,
})
const accountPage = await serverClient().contentstack.accountPage.getOverview(
{
lang: params.lang,
}
)
return (
<MaxWidth className={styles.blocks} tag="main">

View File

@@ -6,17 +6,38 @@ import { Lang } from "@/constants/languages"
import GetAccountPage from "@/lib/graphql/Query/AccountPage.graphql"
import type { GetAccountPageData } from "@/types/requests/myPages/accountpage"
export const accountPageQueryRouter = router({
get: publicProcedure
.input(z.object({ uri: z.string(), lang: z.nativeEnum(Lang) }))
getOverview: publicProcedure
.input(z.object({ lang: z.nativeEnum(Lang) }))
.query(async ({ input }) => {
const url = "/my-pages/overview"
const accountPage = await request<GetAccountPageData>(
GetAccountPage,
{
locale: input.lang,
url: input.uri,
url,
},
{
tags: [`${input.uri}-${input.lang}`],
tags: [`${url}-${input.lang}`],
}
)
if (accountPage.data && accountPage.data.all_account_page.total) {
return accountPage.data.all_account_page.items[0]
}
throw badRequestError()
}),
getBenefits: publicProcedure
.input(z.object({ lang: z.nativeEnum(Lang) }))
.query(async ({ input }) => {
const url = "/my-pages/overview"
const accountPage = await request<GetAccountPageData>(
GetAccountPage,
{
locale: input.lang,
url,
},
{
tags: [`${url}-${input.lang}`],
}
)
if (accountPage.data && accountPage.data.all_account_page.total) {