hostex-ts
Version:
TypeScript client library for the Hostex API v3.0.0 (Beta)
85 lines • 3.82 kB
TypeScript
/**
* Hostex API Client
* TypeScript client library for Hostex API v3.0.0 (Beta)
*/
import { HostexAPIResponse, Property, RoomType, Reservation, Conversation, Review, Webhook, CustomChannel, IncomeMethod, ListPropertiesParams, ListRoomTypesParams, ListReservationsParams, CreateReservationData, ListAvailabilitiesParams, UpdateAvailabilitiesData, GetListingCalendarData, UpdateListingPricesData, UpdateListingInventoriesData, UpdateListingRestrictionsData, ListConversationsParams, SendMessageData, ListReviewsParams, CreateReviewData, PostGuestReviewData, LoginData } from './types.js';
export interface HostexClientConfig {
accessToken: string;
baseUrl?: string;
webAppBaseUrl?: string;
operatorId?: string;
timeout?: number;
}
export declare class HostexClient {
private accessToken;
private baseUrl;
private webAppBaseUrl;
private operatorId;
private timeout;
private sessionCookies;
constructor(config: HostexClientConfig);
private request;
private webAppRequest;
listProperties(params?: ListPropertiesParams): Promise<HostexAPIResponse<{
properties: Property[];
total: number;
}>>;
listRoomTypes(params?: ListRoomTypesParams): Promise<HostexAPIResponse<{
room_types: RoomType[];
total: number;
}>>;
listReservations(params?: ListReservationsParams): Promise<HostexAPIResponse<{
reservations: Reservation[];
total: number;
}>>;
createReservation(data: CreateReservationData): Promise<HostexAPIResponse<{
reservation: Reservation;
}>>;
cancelReservation(reservationCode: string): Promise<HostexAPIResponse>;
updateLockCode(stayCode: string, lockCode: string): Promise<HostexAPIResponse>;
getCustomFields(stayCode: string): Promise<HostexAPIResponse<{
custom_fields: Record<string, any>;
}>>;
updateCustomFields(stayCode: string, customFields: Record<string, any>): Promise<HostexAPIResponse>;
listAvailabilities(params: ListAvailabilitiesParams): Promise<HostexAPIResponse<{
listings: any[];
}>>;
updateAvailabilities(data: UpdateAvailabilitiesData): Promise<HostexAPIResponse>;
getListingCalendar(data: GetListingCalendarData): Promise<HostexAPIResponse<{
listings: any[];
}>>;
updateListingPrices(data: UpdateListingPricesData): Promise<HostexAPIResponse>;
updateListingInventories(data: UpdateListingInventoriesData): Promise<HostexAPIResponse>;
updateListingRestrictions(data: UpdateListingRestrictionsData): Promise<HostexAPIResponse>;
listConversations(params?: ListConversationsParams): Promise<HostexAPIResponse<{
conversations: Conversation[];
total: number;
}>>;
getConversation(conversationId: string): Promise<HostexAPIResponse<{
guest: any;
channel_type: string;
messages: any[];
}>>;
sendMessage(conversationId: string, data: SendMessageData): Promise<HostexAPIResponse>;
listReviews(params?: ListReviewsParams): Promise<HostexAPIResponse<{
reviews: Review[];
total: number;
}>>;
createReview(reservationCode: string, data: CreateReviewData): Promise<HostexAPIResponse>;
login(data: LoginData): Promise<HostexAPIResponse>;
postGuestReview(data: PostGuestReviewData): Promise<HostexAPIResponse>;
listWebhooks(): Promise<HostexAPIResponse<{
webhooks: Webhook[];
}>>;
createWebhook(url: string): Promise<HostexAPIResponse<{
webhook: Webhook;
}>>;
deleteWebhook(webhookId: number): Promise<HostexAPIResponse>;
listCustomChannels(): Promise<HostexAPIResponse<{
custom_channels: CustomChannel[];
}>>;
listIncomeMethods(): Promise<HostexAPIResponse<{
income_methods: IncomeMethod[];
}>>;
}
//# sourceMappingURL=client.d.ts.map