147 lines
3.6 KiB
TypeScript
147 lines
3.6 KiB
TypeScript
import { cache } from "react"
|
|
|
|
import { Lang } from "@/constants/languages"
|
|
import {
|
|
GetRoomsAvailabilityInput,
|
|
GetSelectedRoomAvailabilityInput,
|
|
HotelIncludeEnum,
|
|
} from "@/server/routers/hotels/input"
|
|
|
|
import { serverClient } from "../server"
|
|
|
|
import type { BreackfastPackagesInput } from "@/types/requests/packages"
|
|
|
|
export const getLocations = cache(async function getMemoizedLocations() {
|
|
return serverClient().hotel.locations.get()
|
|
})
|
|
|
|
export const getProfile = cache(async function getMemoizedProfile() {
|
|
return serverClient().user.get()
|
|
})
|
|
|
|
export const getName = cache(async function getMemoizedName() {
|
|
return serverClient().user.name()
|
|
})
|
|
|
|
export const getProfileSafely = cache(
|
|
async function getMemoizedProfileSafely() {
|
|
return serverClient().user.getSafely()
|
|
}
|
|
)
|
|
|
|
export const getCreditCardsSafely = cache(
|
|
async function getMemoizedCreditCardsSafely() {
|
|
return serverClient().user.safeCreditCards()
|
|
}
|
|
)
|
|
|
|
export const getMembershipLevel = cache(
|
|
async function getMemoizedMembershipLevel() {
|
|
return serverClient().user.membershipLevel()
|
|
}
|
|
)
|
|
|
|
export const getMembershipLevelSafely = cache(
|
|
async function getMemoizedMembershipLevelSafely() {
|
|
return serverClient().user.safeMembershipLevel()
|
|
}
|
|
)
|
|
|
|
export const getMembershipCards = cache(
|
|
async function getMemoizedMembershipCards() {
|
|
return serverClient().user.membershipCards()
|
|
}
|
|
)
|
|
|
|
export const getUserTracking = cache(async function getMemoizedUserTracking() {
|
|
return serverClient().user.tracking()
|
|
})
|
|
|
|
export const getHotelData = cache(async function getMemoizedHotelData({
|
|
hotelId,
|
|
language,
|
|
isCardOnlyPayment,
|
|
}: {
|
|
hotelId: string
|
|
language: string
|
|
isCardOnlyPayment?: boolean
|
|
}) {
|
|
return serverClient().hotel.hotelData.get({
|
|
hotelId,
|
|
language,
|
|
isCardOnlyPayment,
|
|
})
|
|
})
|
|
|
|
export const getRoomAvailability = cache(
|
|
async function getMemoizedRoomAvailability({
|
|
hotelId,
|
|
adults,
|
|
roomStayStartDate,
|
|
roomStayEndDate,
|
|
children,
|
|
promotionCode,
|
|
rateCode,
|
|
}: GetRoomsAvailabilityInput) {
|
|
return serverClient().hotel.availability.rooms({
|
|
hotelId,
|
|
adults,
|
|
roomStayStartDate,
|
|
roomStayEndDate,
|
|
children,
|
|
promotionCode,
|
|
rateCode,
|
|
})
|
|
}
|
|
)
|
|
|
|
export const getSelectedRoomAvailability = cache(
|
|
async function getMemoizedRoomAvailability(
|
|
args: GetSelectedRoomAvailabilityInput
|
|
) {
|
|
return serverClient().hotel.availability.room(args)
|
|
}
|
|
)
|
|
|
|
export const getFooter = cache(async function getMemoizedFooter() {
|
|
return serverClient().contentstack.base.footer()
|
|
})
|
|
|
|
export const getHeader = cache(async function getMemoizedHeader() {
|
|
return serverClient().contentstack.base.header()
|
|
})
|
|
|
|
export const getCurrentHeader = cache(async function getMemoizedCurrentHeader(
|
|
lang: Lang
|
|
) {
|
|
return serverClient().contentstack.base.currentHeader({ lang })
|
|
})
|
|
|
|
export const getCurrentFooter = cache(async function getMemoizedCurrentFooter(
|
|
lang: Lang
|
|
) {
|
|
return serverClient().contentstack.base.currentFooter({ lang })
|
|
})
|
|
|
|
export const getMyPagesNavigation = cache(
|
|
async function getMemoizedMyPagesNavigation() {
|
|
return serverClient().contentstack.myPages.navigation.get()
|
|
}
|
|
)
|
|
|
|
export const getLanguageSwitcher = cache(
|
|
async function getMemoizedLanguageSwitcher() {
|
|
return serverClient().contentstack.languageSwitcher.get()
|
|
}
|
|
)
|
|
|
|
export const getSiteConfig = cache(async function getMemoizedSiteConfig() {
|
|
return serverClient().contentstack.base.siteConfig()
|
|
})
|
|
|
|
export const getBreakfastPackages = cache(async function getMemoizedPackages(
|
|
input: BreackfastPackagesInput
|
|
) {
|
|
return serverClient().hotel.packages.breakfast(input)
|
|
})
|