Skip to content
Last updated

PERS SDK - v2.3.26 / Exports / BookingManager

Class: BookingManager

Booking Manager - High-level interface for booking operations

Provides a simplified API for managing bookings (hotel stays, reservations, etc.) Used for tracking user stays and eligibility checks on redemptions.

Example

// Get all bookings
const allBookings = await sdk.bookings.getAll();

// Filter by user
const userBookings = await sdk.bookings.getAll({ userId: 'user-123' });

// Filter by status
const activeBookings = await sdk.bookings.getAll({ status: 'active' });

Example

const booking = await sdk.bookings.create({
  userId: 'user-123',
  locationName: 'Grand Hotel',
  checkInDate: '2026-06-01',
  checkOutDate: '2026-06-05',
  guests: 2
});

Example

// Check if user has valid (active or future) booking
const hasBooking = await sdk.bookings.hasValidBooking('user-123');
if (hasBooking) {
  // User is eligible for booking-required redemption
}

Table of contents

Constructors

Methods

Constructors

constructor

new BookingManager(apiClient, events?): BookingManager

Parameters

NameType
apiClientPersApiClient
events?PersEventEmitter

Returns

BookingManager

Defined in

managers/booking-manager.ts:57

Methods

getAll

getAll(options?): Promise<BookingDTO[]>

Get all bookings with optional filters

Parameters

NameTypeDescription
options?BookingQueryOptionsFilter options (userId, businessId, status)

Returns

Promise<BookingDTO[]>

Promise resolving to array of bookings

Example

// All bookings
const bookings = await sdk.bookings.getAll();

// Filter by user
const userBookings = await sdk.bookings.getAll({ userId: 'user-123' });

// Filter by status
const activeBookings = await sdk.bookings.getAll({ status: 'active' });
const futureBookings = await sdk.bookings.getAll({ status: 'future' });
const pastBookings = await sdk.bookings.getAll({ status: 'past' });

Defined in

managers/booking-manager.ts:85


getByUser

getByUser(userId, status?): Promise<BookingDTO[]>

Get bookings for a specific user

Convenience method for filtering bookings by user ID.

Parameters

NameTypeDescription
userIdstringUser ID to filter by
status?BookingStatusOptional status filter

Returns

Promise<BookingDTO[]>

Promise resolving to user's bookings

Defined in

managers/booking-manager.ts:98


getByBusiness

getByBusiness(businessId, status?): Promise<BookingDTO[]>

Get bookings for a specific business

Convenience method for filtering bookings by business ID.

Parameters

NameTypeDescription
businessIdstringBusiness ID to filter by
status?BookingStatusOptional status filter

Returns

Promise<BookingDTO[]>

Promise resolving to business's bookings

Defined in

managers/booking-manager.ts:111


getById

getById(id): Promise<BookingDTO>

Get a single booking by ID

Parameters

NameTypeDescription
idstringBooking UUID

Returns

Promise<BookingDTO>

Promise resolving to booking data

Throws

When booking not found

Defined in

managers/booking-manager.ts:122


create

create(data): Promise<BookingDTO>

Create a new booking

Creates a booking for a user at a specific location. Used for tracking hotel stays, reservations, etc. for eligibility checks.

Parameters

NameTypeDescription
dataCreateBookingDTOBooking creation data

Returns

Promise<BookingDTO>

Promise resolving to created booking

Throws

When check-out date is not after check-in date

Example

const booking = await sdk.bookings.create({
  userId: 'user-123',
  locationName: 'Grand Hotel',
  locationType: 'hotel',
  checkInDate: '2026-06-01',
  checkOutDate: '2026-06-05',
  confirmationNumber: 'CONF123',
  guests: 2,
  notes: 'Ocean view room'
});

Defined in

managers/booking-manager.ts:150


update

update(id, data): Promise<BookingDTO>

Update an existing booking

Parameters

NameTypeDescription
idstringBooking UUID
dataUpdateBookingDTOBooking update data (partial update supported)

Returns

Promise<BookingDTO>

Promise resolving to updated booking

Throws

When booking not found

Throws

When check-out date is not after check-in date

Example

const updated = await sdk.bookings.update('booking-123', {
  checkInDate: '2026-06-02',
  checkOutDate: '2026-06-07'
});

Defined in

managers/booking-manager.ts:176


delete

delete(id): Promise<{ success: boolean }>

Delete a booking

Parameters

NameTypeDescription
idstringBooking UUID

Returns

Promise<{ success: boolean }>

Promise resolving to success status

Throws

When booking not found

Defined in

managers/booking-manager.ts:192


hasValidBooking

hasValidBooking(userId, options?): Promise<boolean>

Check if a user has a valid (active or future) booking

Useful for eligibility checks on redemptions that require a valid booking.

Parameters

NameTypeDescription
userIdstringUser ID to check
options?BookingValidationOptionsValidation options (status filter, business filter)

Returns

Promise<boolean>

Promise resolving to true if user has valid booking

Example

const hasBooking = await sdk.bookings.hasValidBooking('user-123');

if (!hasBooking) {
  console.log('User must have an active or upcoming booking');
}

// Check for active booking only
const hasActive = await sdk.bookings.hasValidBooking('user-123', { status: 'active' });

// Check for booking at specific business
const hasHotelBooking = await sdk.bookings.hasValidBooking('user-123', { 
  businessId: 'hotel-123' 
});

Defined in

managers/booking-manager.ts:227


getBookingService

getBookingService(): BookingService

Get the booking service for advanced operations

Returns

BookingService

BookingService instance with full API access

Defined in

managers/booking-manager.ts:236