slotify-sdk

1.0.3 • Public • Published

Slotify Javascript SDK

The Slotify SDK is a TypeScript-based API client designed to simplify interactions with the Slotify scheduling app API. It provides a flexible and easy-to-use interface for making HTTP requests, managing configurations, and handling API responses, tailored specifically for Slotify's scheduling features.

Dependencies

The following libraries are bundled together with the SDK:

Features

  • Configurable Base URL and API Version: Easily set the base URL, API version, and other global configurations.
  • CRUD Operations: Perform Create, Read, Update, and Delete operations on Slotify resources like bookings.
  • Method Chaining: Chain methods for building complex queries with ease.
  • Include Related Data: Fetch related data (e.g., users, events) with a single request.
  • Built-in Axios Integration: Powered by Axios for handling HTTP requests.

Installation

The library is hosted on NPM, so you can simply run:

# using npm
npm install slotify-sdk

# using yarn
yarn add slotify-sdk

# using bun
bun add slotify-sdk

Module loading

Using api key, you can access app level data only. You can not use same key for multiple apps.

import SlotifyAPI from 'slotify-sdk';

const slotifyApi = new SlotifyAPI({
  apiKey: '8c99a81c-dcbb-4de3-b316-f43b8a902cae',
});

Usage (endpoints)

Documentation : https://slotify.ca/api

Endpoints/methods:

  // app endpoints
  slotifyApi.getApps(params: any): Promise<any>;

  // customer endpoints
  slotifyApi.getCustomers(): Promise<any>;
  slotifyApi.getCustomer(uuid: string): Promise<any>;
  slotifyApi.createCustomer(params: any): Promise<any>;
  slotifyApi.deleteCustomer(uuid: string): Promise<any>;
  slotifyApi.updateCustomer(uuid: string, params?: any): Promise<any>;

  // groups endpoints
  slotifyApi.getGroups(): Promise<any>;
  slotifyApi.getGroup(uuid: string): Promise<any>;
  slotifyApi.createGroup(params: any): Promise<any>;
  slotifyApi.deleteGroup(uuid: string): Promise<any>;
  slotifyApi.updateGroup(uuid: string, params?: any): Promise<any>;

  // resource endpoints
  slotifyApi.getResources(): Promise<any>;
  slotifyApi.getResource(uuid: string): Promise<any>;
  slotifyApi.createResource(params: any): Promise<any>;
  slotifyApi.deleteResource(uuid: string): Promise<any>;
  slotifyApi.updateResource(uuid: string, params?: any): Promise<any>;

  // scheduler endpoints
  slotifyApi.getSchedulers(): Promise<any>;
  slotifyApi.getScheduler(uuid: string): Promise<any>;
  slotifyApi.createScheduler(params: any): Promise<any>;
  slotifyApi.deleteScheduler(uuid: string): Promise<any>;
  slotifyApi.updateScheduler(uuid: string, params?: any): Promise<any>;

  // booking endpoints
  slotifyApi.getBookings(): Promise<any>;
  slotifyApi.getBooking(uuid: string): Promise<any>;
  slotifyApi.createBooking(params: any): Promise<any>;
  slotifyApi.deleteBooking(uuid: string): Promise<any>;
  slotifyApi.updateBooking(uuid: string, params?: any): Promise<any>;

  // booking actions endpoints
  slotifyApi.completeBooking(uuid: string): Promise<any>;
  slotifyApi.bookCustomer(uuid: string, params: any): Promise<any>;
  slotifyApi.confirmBooking(uuid: string, params: any): Promise<any>;
  slotifyApi.declineBooking(uuid: string, params: any): Promise<any>;
  slotifyApi.reassignBooking(uuid: string, params: any): Promise<any>;
  slotifyApi.cancelBookingByCustomer(uuid: string, params: any): Promise<any>;
  slotifyApi.cancelBookingByResource(uuid: string, params: any): Promise<any>;
  slotifyApi.rescheduleBookingByCustomer(uuid: string, params: any): Promise<any>;

  // event endpoints
  slotifyApi.getEvents(): Promise<any>;
  slotifyApi.getEvent(uuid: string): Promise<any>;
  slotifyApi.createEvent(params: any): Promise<any>;
  slotifyApi.deleteEvent(uuid: string): Promise<any>;
  slotifyApi.updateEvent(uuid: string, params?: any): Promise<any>;

  // service endpoints
  slotifyApi.getServices(): Promise<any>;
  slotifyApi.getService(uuid: string): Promise<any>;
  slotifyApi.createService(params: any): Promise<any>;
  slotifyApi.deleteService(uuid: string): Promise<any>;
  slotifyApi.updateService(uuid: string, params?: any): Promise<any>;

  // workflow endpoints
  slotifyApi.getWorkflows(): Promise<any>;
  slotifyApi.getWorkflow(uuid: string): Promise<any>;
  slotifyApi.createWorkflow(params: any): Promise<any>;
  slotifyApi.deleteWorkflow(uuid: string): Promise<any>;
  slotifyApi.updateWorkflow(uuid: string, params?: any): Promise<any>;

  // availability endpoints
  slotifyApi.getAvailability(params: any): Promise<any>;
  slotifyApi.getUnAvailability(params: any): Promise<any>;
  slotifyApi.getAvailabilityCount(params: any): Promise<any>;

Usage (dynamic includes)

Slotify supports dynamic includes

Example:

slotifyApi
  .include('customers', 'resources')
  .getBookings()
  .then(function (response) {
    console.log(response);
  });

Usage (query params)

If you want to use query params you can use it as below example. Check doc for more advance usage for search parameters.

Example:

slotifyApi
  .queryParams({
    limit: 10,
    search: 'name~:john',
  })
  .getCustomers()
  .then(function (response) {
    console.log(response);
  });

Package Sidebar

Install

npm i slotify-sdk

Homepage

slotify.ca

Weekly Downloads

6

Version

1.0.3

License

none

Unpacked Size

378 kB

Total Files

3

Last publish

Collaborators

  • slotify