Calendar Client
Calendar Client allows you to interact with the Onlive calendars API.
Installation
ES6 Module
Using module imports, you need to create the .npmrc file at the root of the project with the following content:
@onlive.site:registry=https://gitlab.com/api/v4/projects/66230274/packages/npm/
Then, you can install the package with the following command:
npm install @onlive.site/calendar
import { CalendarClient } from "@onlive.site/calendar";
const client = new CalendarClient({
baseUrl: "https://example.com/api/v1",
organizationId: "<organizationId>",
});
UMD (Universal Module Definition)
<script src="https://cdn.onlive.site/@onlive.site/calendar@latest/index.iife.js"></script>
<script>
const { CalendarClient } = window.OnliveCalendar;
const client = new CalendarClient({
baseUrl: "https://example.com/api/v1",
organizationId: "<organizationId>",
});
</script>
Usage
Constructor
Signature:
constructor(_options: ClientOptions)
- Initializes a new instance of
CalendarClient
. - Parameters:
options
(ClientOptions): Configuration object for the client, validated according toClientOptionsSchema
.
Methods
1. getAvailability
Description:
Fetches the availability of a service.
Signature:
public async getAvailability(options: GetAvailabilityOptions): Promise<AvailabilityResponse>
-
Parameters:
options
: The options must adhere to theGetAvailabilityOptions
.serviceId
(string - UUID): A required ID for the service.startDate
(string - ISO datetime, optional): Start date for availability lookup.endDate
(string - non-empty, optional): End date for availability lookup.calendarFilters
(object, optional): Filter criteria for the calendar.
-
Response:
- Returns a promise that resolves to an
AvailabilityResponse
, which is an array of objects. Each object has:availabilityTime
(string - ISO datetime): Time of availability.owners
(string[]): Array of owner UUIDs.assets
(string[]): Array of asset UUIDs.
- Returns a promise that resolves to an
Example:
import { CalendarClient } from "@onlive.site/calendar";
const client = new CalendarClient({
baseUrl: "https://example.com/api/v1",
organizationId: "<organizationId>",
});
calendarClient
.getAvailability({
serviceId: "SERVICE-UUID",
startDate: "2024-01-01T00:00:00Z",
endDate: "2024-01-02T00:00:00Z",
calendarFilters: {
model: "tavascan",
}
})
.then((response) => {
console.log("Availability Response:", response);
})
.catch((error) => {
console.error("Error fetching availability:", error);
});