@memberjunction/actions-bizapps-lms
Version:
LMS system integration actions for MemberJunction
52 lines • 1.89 kB
TypeScript
import { BaseLMSAction } from '../../base/base-lms.action';
import { UserInfo } from '@memberjunction/core';
/**
* Base class for all LearnWorlds LMS actions.
* Handles LearnWorlds-specific authentication and API interaction patterns.
*/
export declare abstract class LearnWorldsBaseAction extends BaseLMSAction {
protected lmsProvider: string;
protected integrationName: string;
/**
* LearnWorlds API version
*/
protected apiVersion: string;
/**
* Current action parameters (set by the framework)
*/
protected params: any;
/**
* Makes an authenticated request to LearnWorlds API
*/
protected makeLearnWorldsRequest<T = any>(endpoint: string, method?: 'GET' | 'POST' | 'PUT' | 'DELETE', body?: any, contextUser?: UserInfo): Promise<T>;
/**
* Makes a paginated request to LearnWorlds API
*/
protected makeLearnWorldsPaginatedRequest<T = any>(endpoint: string, params?: Record<string, any>, contextUser?: UserInfo): Promise<T[]>;
/**
* Convert LearnWorlds date format to Date object
*/
protected parseLearnWorldsDate(dateString: string | number): Date;
/**
* Format date for LearnWorlds API (ISO 8601)
*/
protected formatLearnWorldsDate(date: Date): string;
/**
* Map LearnWorlds user status to standard status
*/
protected mapUserStatus(status: string): 'active' | 'inactive' | 'suspended';
/**
* Map LearnWorlds enrollment status
*/
protected mapLearnWorldsEnrollmentStatus(enrollment: any): 'active' | 'completed' | 'expired' | 'suspended';
/**
* Calculate progress from LearnWorlds data
*/
protected calculateProgress(progressData: any): {
percentage: number;
completedUnits: number;
totalUnits: number;
timeSpent: number;
};
}
//# sourceMappingURL=learnworlds-base.action.d.ts.map