Files
web/lib/api/endpoints.ts
Anton Gunnarsson 340f6d1714 Merged in feat/SW-1488-unlink-sas-account (pull request #1349)
Implement unlink SAS flow

Approved-by: Joakim Jäderberg
2025-02-20 15:09:06 +00:00

207 lines
7.2 KiB
TypeScript

/**
* Nested enum requires namespace
*/
export namespace endpoints {
namespace base {
export const enum path {
availability = "availability",
booking = "booking",
hotel = "hotel",
package = "package",
profile = "profile",
}
export const enum enitity {
Ancillary = "Ancillary",
Availabilities = "availabilities",
Bookings = "Bookings",
Breakfast = "breakfast",
Cities = "Cities",
Countries = "Countries",
Hotels = "Hotels",
Locations = "Locations",
Packages = "packages",
Profile = "Profile",
Reward = "Reward",
Stays = "Stays",
Transaction = "Transaction",
}
}
export namespace v1 {
const version = "v1"
/**
* availability (Swagger)
* https://tstapi.scandichotels.com/availability/swagger/v1/index.html
*/
export namespace Availability {
export function city(cityId: string) {
return `${base.path.availability}/${version}/${base.enitity.Availabilities}/city/${cityId}`
}
export function hotels() {
return `${base.path.availability}/${version}/${base.enitity.Availabilities}/hotels`
}
export function hotel(hotelId: string) {
return `${base.path.availability}/${version}/${base.enitity.Availabilities}/hotel/${hotelId}`
}
}
/**
* booking (Swagger)
* https://tstapi.scandichotels.com/booking/swagger/v1/index.html
*/
export namespace Booking {
export const bookings = `${base.path.booking}/${version}/${base.enitity.Bookings}`
export function booking(confirmationNumber: string) {
return `${bookings}/${confirmationNumber}`
}
export function cancel(confirmationNumber: string) {
return `${bookings}/${confirmationNumber}/cancel`
}
export function status(confirmationNumber: string) {
return `${bookings}/${confirmationNumber}/status`
}
export function priceChange(confirmationNumber: string) {
return `${bookings}/${confirmationNumber}/priceChange`
}
export const enum Stays {
future = `${base.path.booking}/${version}/${base.enitity.Stays}/future`,
past = `${base.path.booking}/${version}/${base.enitity.Stays}/past`,
}
}
/**
* hotel (Swagger)
* https://tstapi.scandichotels.com/hotel/swagger/v1/index.html
*/
export namespace Hotel {
export const cities = `${base.path.hotel}/${version}/${base.enitity.Cities}`
export namespace Cities {
export function city(cityId: string) {
return `${cities}/${cityId}`
}
export function country(countryId: string) {
return `${cities}/country/${countryId}`
}
export function hotel(hotelId: string) {
return `${cities}/hotel/${hotelId}`
}
}
export const countries = `${base.path.hotel}/${version}/${base.enitity.Countries}`
export namespace Countries {
export function country(countryId: string) {
return `${countries}/${countryId}`
}
}
export const hotels = `${base.path.hotel}/${version}/${base.enitity.Hotels}`
export namespace Hotels {
export function hotel(hotelId: string) {
return `${hotels}/${hotelId}`
}
export function meetingRooms(hotelId: string) {
return `${hotels}/${hotelId}/meetingRooms`
}
export function merchantInformation(hotelId: string) {
return `${hotels}/${hotelId}/merchantInformation`
}
export function nearbyHotels(hotelId: string) {
return `${hotels}/${hotelId}/nearbyHotels`
}
export function restaurants(hotelId: string) {
return `${hotels}/${hotelId}/restaurants`
}
export function roomCategories(hotelId: string) {
return `${hotels}/${hotelId}/roomCategories`
}
export function additionalData(hotelId: string) {
return `${hotels}/${hotelId}/additionalData`
}
}
export const locations = `${base.path.hotel}/${version}/${base.enitity.Locations}`
}
/**
* package (Swagger)
* https://tstapi.scandichotels.com/package/swagger/v1/index.html
*/
export namespace Package {
export namespace Ancillary {
export function hotel(hotelId: string) {
return `${base.path.package}/${version}/${base.enitity.Ancillary}/hotel/${hotelId}`
}
export function hotelAncillaries(hotelId: string) {
return `${base.path.package}/${version}/${base.enitity.Ancillary}/hotel/${hotelId}/ancillaries`
}
}
export namespace Breakfast {
export function hotel(hotelId: string) {
return `${base.path.package}/${version}/${base.enitity.Breakfast}/hotel/${hotelId}`
}
}
export namespace Packages {
export function hotel(hotelId: string) {
return `${base.path.package}/${version}/${base.enitity.Packages}/hotel/${hotelId}`
}
}
}
/**
* profile (Swagger)
* https://tstapi.scandichotels.com/profile/swagger/v1/index.html
*/
export namespace Profile {
export const invalidateSessions = `${base.path.profile}/${version}/${base.enitity.Profile}/invalidateSessions`
export const membership = `${base.path.profile}/${version}/${base.enitity.Profile}/membership`
export const profile = `${base.path.profile}/${version}/${base.enitity.Profile}`
export const subscriberId = `${base.path.profile}/${version}/${base.enitity.Profile}/SubscriberId`
export const link = `${base.path.profile}/${version}/${base.enitity.Profile}/link`
export const unlink = `${base.path.profile}/${version}/${base.enitity.Profile}/Unlink`
// TODO: Remove once new endpoints are out in production.
export const reward = `${base.path.profile}/${version}/${base.enitity.Profile}/reward`
export const tierRewards = `${base.path.profile}/${version}/${base.enitity.Profile}/tierRewards`
export function deleteProfile(profileId: string) {
return `${profile}/${profileId}`
}
export const creditCards = `${base.path.profile}/${version}/${base.enitity.Profile}/creditCards`
export namespace CreditCards {
export const initiateSaveCard = `${creditCards}/initiateSaveCard`
export function deleteCreditCard(creditCardId: string) {
return `${creditCards}/${creditCardId}`
}
export function transaction(transactionId: string) {
return `${creditCards}/${transactionId}`
}
}
export namespace Reward {
export const allTiers = `${base.path.profile}/${version}/${base.enitity.Reward}/allTiers`
export const reward = `${base.path.profile}/${version}/${base.enitity.Reward}`
export const redeem = `${base.path.profile}/${version}/${base.enitity.Reward}/redeem`
export const unwrap = `${base.path.profile}/${version}/${base.enitity.Reward}/unwrap`
export function claim(rewardId: string) {
return `${base.path.profile}/${version}/${base.enitity.Reward}/Claim/${rewardId}`
}
}
export const enum Transaction {
friendTransactions = `${base.path.profile}/${version}/${base.enitity.Transaction}/friendTransactions`,
}
}
}
}
export type Endpoint = string