Logo Lanfrica

CodingCodeMw/called-malawi-curriculum-js-sdk-

Domaine:

education

Type de record:

software
Créateur:
Cod
Hôte:
The Javascript sdk for the Malawi Curriculum document API # Malawi Curriculum API - JavaScript SDK The official SDK for accessing the Malawi Curriculum API. ## Installation ```bash npm install malawi-curriculum-api ``` ### Authentication Initialize the client with your API Key and optional Firebase ID Token for user-specific access (subscriptions/purchases). ```javascript import { MalawiCurriculumClient } from 'malawi-curriculum-api'; const client = new MalawiCurriculumClient({ apiKey: 'YOUR_API_KEY', firebaseToken: 'USER_FIREBASE_ID_TOKEN' // Optional: for accessing paid resources }); // Update token later (e.g., on user login/refresh) client.setFirebaseToken('NEW_TOKEN'); ``` ### Search Resources Search with powerful filtering options. Access to filters depends on your API Key plan tier. ```javascript const results = await client.search({ q: 'mathematics', level: 'MSCE', // Basic+ Plan year: 2023, // Pro+ Plan type: 'past_paper', // Pro+ Plan limit: 10 }); ``` ### Secure Downloads Request a secure, short-lived download URL. This flow enforces entitlements (subscriptions/purchases). ```javascript try { // 1. Get signed URL (handles payment checks automatically) const url = await client.download(123, 'download'); // 2. Open or download window.location.href = url; } catch (error) { if (error.message.includes('402')) { console.error('Payment Required'); } } ``` ### Payments Initiate mobile money payments for subscriptions or resource purchases. #### Developer Subscription (Pay Platform) ```javascript const response = await client.initiatePayment({ type: 'subscription', tier: 'pro', mobile: '26599123456', operator: 'AIRTEL', // or 'TNM' email: 'dev@example.com' }); console.log('Charge ID:', response.charge_id); ``` #### Purchase Resource (User pays Developer) ```javascript const response = await client.initiatePayment({ type: 'purchase', developerId: 'DEV_UUID', resourceId: 123, amount: 500, mobile: '26588123456', operator: 'TNM', email: 'user@example.com' }); ``` #### Verify Payment …