Module builder

Source
Expand description

Builder pattern API for creating course seed data declaratively.

§Usage

use chrono::Utc;
use sqlx::Connection;
use headless_lms_server::programs::seed::builder::{
    course::CourseBuilder,
    module::ModuleBuilder,
    chapter::ChapterBuilder,
    page::PageBuilder,
    context::SeedContext,
};

let course = CourseBuilder::new("My Course", "my-course")
    .desc("A sample course")
    .chatbot(true)
    .module(
        ModuleBuilder::new()
            .order(0)
            .name("Introduction")
            .ects(5.0)
            .chapter(
                ChapterBuilder::new(1, "Getting Started")
                    .opens(Utc::now())
                    .page(PageBuilder::new("/intro", "Introduction Page"))
            )
    );

let (course, instance, module) = course.seed(&mut context).await?;

Modules§

chapter
context
course
exercise
id
json_source
module
page