0.1.2 • Published 4 months ago

@25madisonhealth/turbo-scheduler v0.1.2

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

Turbo Scheduler SDK

The official TypeScript SDK for interacting with the Turbo Scheduler API.

This SDK provides convenient methods for accessing all API endpoints, along with TypeScript typings for requests and responses, and utility functions for common tasks.

Installation

You can install the SDK using npm, pnpm, or yarn:

npm:

npm install @25madisonhealth/turbo-scheduler

pnpm:

pnpm add @25madisonhealth/turbo-scheduler

yarn:

yarn add @25madisonhealth/turbo-scheduler

Getting Started

Initialization

First, import and instantiate the TurboApiClient, providing your API key. You can also optionally provide a custom baseUrl if you need to target a non-production environment (e.g., for local development or a staging server).

import { TurboApiClient } from '@25madisonhealth/turbo-scheduler';

const client = new TurboApiClient({
  apiKey: 'YOUR_API_KEY_HERE', // Replace with your actual API key
  // baseUrl: 'http://localhost:3001' // Optional: For local development
});

The client will automatically determine the correct base URL based on the process.env.ENVIRONMENT variable if baseUrl is not explicitly provided:

  • local: http://localhost:3001
  • dev: https://dev-303703761.us-central1.run.app
  • prod (or any other value/undefined): https://prod-303703761.us-central1.run.app

Making API Calls

The SDK methods are organized by resource. For example, to get account details:

import { TurboApiClient, Account, TurboApiError } from '@25madisonhealth/turbo-scheduler';

const client = new TurboApiClient({ apiKey: 'YOUR_API_KEY_HERE' });

async function main() {
  try {
    const myAccount: Account = await client.account.getAccount();
    console.log('My Account:', myAccount);

    // Example: Adding a user
    const newUser = await client.user.addUser({ name: 'Jane Doe' });
    console.log('New User:', newUser);
  } catch (error) {
    if (error instanceof TurboApiError) {
      console.error('API Error:', error.message, 'Status:', error.status, 'Data:', error.data);
    } else {
      console.error('Generic Error:', error);
    }
  }
}

main();

Using Utilities

The SDK also exports utility functions. For example, convertToLocalTime:

import { convertToLocalTime } from '@25madisonhealth/turbo-scheduler';

// Assuming you have an array of availability data from an API call
// This data structure should match what convertToLocalTime expects
const availabilityDataFromApi = [
  // ... your data from an endpoint like client.availability.getAllAvailability() ...
  // Example:
  // {
  //   userId: 'user123',
  //   availability: [
  //     {
  //       start: '2024-07-15T09:00:00.000Z', // UTC time from server
  //       end: '2024-07-15T17:00:00.000Z',   // UTC time from server
  //       timeZone: 'America/New_York',   // Original timezone
  //       offset: -240                    // Original offset in minutes for that specific time
  //     }
  //   ]
  // }
];

const localAvailability = convertToLocalTime(availabilityDataFromApi);
console.log('Availability in local time:', localAvailability);

Note: The convertToLocalTime function expects the input items to have timeZone and an offset (or originalItemOffset) property to correctly perform the "sticky" time conversion. Ensure your API responses used with this utility provide these fields.

API Documentation

For detailed information on all available SDK methods, parameters, and types, please refer to our TypeDoc API Documentation.

License

This SDK is MIT licensed.