@25madisonhealth/turbo-scheduler v0.1.2
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.