UNPKG

@campusiq/sdk

Version:

Official JavaScript/TypeScript SDK for CampusIQ - A comprehensive school management system API

44 lines 1.9 kB
import { StudentsResource } from './resources/students'; import { TeachersResource } from './resources/teachers'; import { CoursesResource } from './resources/courses'; import { EnrollmentsResource } from './resources/enrollment'; import { GradesResource } from './resources/grades'; import { AttendanceResource } from './resources'; import { WebhooksResource } from './resources/webhooks'; import { CampusIQError } from './error'; export class CampusIQClient { constructor(config) { this.version = '1.0.0'; if (!config.apiKey) { throw new CampusIQError('API key is required', 400, 'MISSING_API_KEY'); } if (!config.schoolId) { throw new CampusIQError('School ID is required', 400, 'MISSING_SCHOOL_ID'); } this.apiKey = config.apiKey; this.schoolId = config.schoolId; this.timeout = config.timeout || 30000; this.debug = config.debug || false; this.baseURL = config.baseURL || (config.environment === 'sandbox' ? 'https://sandbox-api.campusiq.edu/v1' : 'https://api.campusiq.edu/v1'); // Initialize all resources this.students = new StudentsResource(this); this.teachers = new TeachersResource(this); this.courses = new CoursesResource(this); this.enrollments = new EnrollmentsResource(this); this.grades = new GradesResource(this); this.attendance = new AttendanceResource(this); this.webhooks = new WebhooksResource(this); } static verifyWebhook(payload, signature, secret) { const crypto = require('crypto'); const expectedSignature = crypto .createHmac('sha256', secret) .update(JSON.stringify(payload)) .digest('hex'); return signature === `sha256=${expectedSignature}`; } } //# sourceMappingURL=client.js.map