Cliente de Calendario
El Cliente de Calendario te permite interactuar con la API de calendarios de Onlive.
Instalación
Módulo ES6
Utilizando imports de módulos, debes crear el archivo .npmrc en la raíz del proyecto con el siguiente contenido:
@onlive.site:registry=https://gitlab.com/api/v4/projects/66230274/packages/npm/
Luego, puedes instalar el paquete con el siguiente comando:
npm install @onlive.site/calendar
import { CalendarClient } from "@onlive.site/calendar";
const client = new CalendarClient({
baseUrl: "https://example.com/api/v1",
organizationId: "<organizationId>",
});
UMD (Definición Universal de Módulo)
<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>
Uso
Constructor
Firma:
constructor(_options: ClientOptions)
- Inicializa una nueva instancia de
CalendarClient
. - Parámetros:
options
(ClientOptions): Objeto de configuración para el cliente, validado segúnClientOptionsSchema
.
Métodos
1. getAvailability
Descripción:
Recupera la disponibilidad de un servicio.
Firma:
public async getAvailability(options: GetAvailabilityOptions): Promise<AvailabilityResponse>
-
Parámetros:
options
: Las opciones deben cumplir conGetAvailabilityOptions
.serviceId
(string - UUID): Un ID requerido para el servicio.startDate
(string - datetime ISO, opcional): Fecha de inicio para consultar disponibilidad.endDate
(string - no vacío, opcional): Fecha final para consultar disponibilidad.calendarFilters
(object, opcional): Criterios de filtrado para el calendario.
-
Respuesta:
- Devuelve una promesa que se resuelve en un
AvailabilityResponse
, que es un array de objetos. Cada objeto tiene:availabilityTime
(string - datetime ISO): Hora de disponibilidad.owners
(string[]): Array de UUIDs de propietarios.assets
(string[]): Array de UUIDs de activos.
- Devuelve una promesa que se resuelve en un
Ejemplo:
import { CalendarClient } from "@onlive.site/calendar";
const client = new CalendarClient({
baseUrl: "https://example.com/api/v1",
organizationId: "<organizationId>",
});
client
.getAvailability({
serviceId: "SERVICE-UUID",
startDate: "2024-01-01T00:00:00Z",
endDate: "2024-01-02T00:00:00Z",
calendarFilters: {
model: "tavascan",
}
})
.then((response) => {
console.log("Respuesta de Disponibilidad:", response);
})
.catch((error) => {
console.error("Error al obtener disponibilidad:", error);
});