Hiyve Components - v1.0.0
    Preparing search index...

    A CourseStorage kept in Hiyve user files.

    interface HiyveCourseStorage {
        userId: string;
        canWrite(): boolean;
        createCourse(course: Course): Promise<Course>;
        deleteCourse(courseId: string): Promise<void>;
        deleteLessonContent(courseId: string, lessonId: string): Promise<void>;
        enroll(courseId: string, client: ClientRef): Promise<Enrollment>;
        grantLessonAccess(
            enrollment: Enrollment,
            lessonIds: string[],
        ): Promise<void>;
        listCourses(): Promise<CourseSummary[]>;
        listEnrollmentOverviews(courseId: string): Promise<EnrollmentOverview[]>;
        listEnrollments(
            query?: { clientId?: string; courseId?: string },
        ): Promise<EnrollmentSummary[]>;
        listMyEnrollments(): Promise<EnrollmentSummary[]>;
        loadCourse(courseId: string): Promise<Course>;
        loadCourseKeys(courseId: string): Promise<CourseKeys | null>;
        loadEnrollment(enrollmentId: string): Promise<Enrollment>;
        loadLessonContent(
            courseId: string,
            lessonId: string,
        ): Promise<LessonContent | null>;
        loadProgress(enrollmentId: string): Promise<Progress | null>;
        loadProviderSettings(): Promise<ProviderSettings | null>;
        refresh(): Promise<void>;
        resolveMediaUrl(
            media: MediaRef,
            options?: { stream?: boolean },
        ): Promise<string>;
        revokeAccess(enrollment: Enrollment): Promise<void>;
        revokeLessonAccess(
            enrollment: Enrollment,
            lessonIds: string[],
        ): Promise<void>;
        saveCourse(course: Course): Promise<Course>;
        saveCourseKeys(keys: CourseKeys): Promise<CourseKeys>;
        saveEnrollment(enrollment: Enrollment): Promise<Enrollment>;
        saveLessonContent(content: LessonContent): Promise<LessonContent>;
        saveProgress(progress: Progress): Promise<Progress>;
        saveProviderSettings(settings: ProviderSettings): Promise<ProviderSettings>;
        subscribe?(listener: (change: CourseStorageChange) => void): () => void;
        uploadMedia(file: File): Promise<MediaRef>;
    }

    Hierarchy (View Summary)

    Index

    Properties

    userId: string

    The user this storage acts for.

    Methods

    • Enroll a client: create their enrollment and let them read the course outline. Opens no lessons (see syncAccess). Enrolling a client who was removed reactivates their enrollment and reopens the lessons they had; enrolling an active client returns their enrollment unchanged.

      Parameters

      Returns Promise<Enrollment>