Function create_course_copy

Source
pub async fn create_course_copy(
    pool: Data<PgPool>,
    course_id: Path<Uuid>,
    payload: Json<CopyCourseRequest>,
    user: AuthUser,
) -> ControllerResult<Json<Course>>
Expand description

POST /api/v0/main-frontend/courses/:id/create-copy - Create a copy of a course with specified mode.

Different copy modes:

  • duplicate: Creates a completely separate copy with new language group
  • same_language_group: Creates a new language version within the same language group
  • existing_language_group: Creates a new language version in the specified language group
  • new_language_group: Creates a new language version in a new language group

ยงExample

Request:

POST /api/v0/main-frontend/courses/fd484707-25b6-4c51-a4ff-32d8259e3e47/create-copy HTTP/1.1
Content-Type: application/json

{
  "name": "Johdatus kaikkeen",
  "slug": "johdatus-kaikkeen",
  "organization_id": "1b89e57e-8b57-42f2-9fed-c7a6736e3eec",
  "language_code": "fi-FI",
  "mode": "duplicate"
}

Or with an existing language group:

POST /api/v0/main-frontend/courses/fd484707-25b6-4c51-a4ff-32d8259e3e47/create-copy HTTP/1.1
Content-Type: application/json

{
  "name": "Johdatus kaikkeen",
  "slug": "johdatus-kaikkeen",
  "organization_id": "1b89e57e-8b57-42f2-9fed-c7a6736e3eec",
  "language_code": "fi-FI",
  "mode": {
    "existing_language_group": {
      "target_course_id": "1b89e57e-8b57-42f2-9fed-c7a6736e3eec"
    }
  }
}