@campusiq/sdk
Version:
Official JavaScript/TypeScript SDK for CampusIQ - A comprehensive school management system API
44 lines • 1.9 kB
JavaScript
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