Training / Leerlijnen

Use Cases

Wat binnen Pluvo in de gebruikersinterface bekend staat als een leerlijn, wordt in de API aangeduid als een Training. Alle handelingen rondom leerlijnen—zoals aanmaken, bewerken, deelnemers koppelen, of modules toevoegen—lopen dus via de Training entiteit in de GraphQL API.

Get single object

Haalt één specifieke training op via id of ref. Wordt vaak gebruikt om details en modules van een training op te halen.

query {
  training(id: "uuid-hier") {
    id
    title
    ref
    isActive
    portfolioItem {
      id
    }
  }
}

Get list

Gebruik paginatedTrainings om trainingen op te halen met filtering, paginatie en sortering.

query {
  paginatedTrainings(q: "veiligheid", first: 10) {
    edges {
      node {
        id
        title
        isActive
      }
    }
  }

Create training

Maakt een nieuwe training aan met titel en optioneel andere metadata zoals startdatum en ref.

mutation {
  createTraining(training: {
    title: "Introductie Veilig Werken"
    isActive: true
    ref: "veilig-2024"
  }) {
    training {
      id
      title
      ref
    }
  }
}

Update training

Wijzigt gegevens van een bestaande training zoals titel, zichtbaarheid of metadata.

mutation {
  updateTraining(
    id: "uuid-hier"
    training: {
      title: "Bijgewerkte Titel"
      archived: true
    }
  ) {
    training {
      id
      title
      archived
    }
  }
}

Archive/deactivate

Zet de training op gearchiveerd of inactief. Handig om oude trainingen te verbergen.

mutation {
  updateTraining(
    id: "uuid-hier"
    training: {
      isActive: false
      archived: true
    }
  ) {
    training {
      id
      isActive
      archived
    }
  }
}

GraphQL Definitions

Type

De Training type bevat de structuur van een leertraject, inclusief metadata, zichtbaarheid, en relaties naar gebruikers, bestanden en modules.

type Training {
  id: UUID!
  title: String!
  subtitle: String
  introduction: String
  ref: String
  isActive: Boolean!
  archived: Boolean!
  overviewImage: File
  startDate: Date
  endDate: Date
  estimatedTimeSpent: String
  portfolioItem: PortfolioItemListItem
  users: [User!]
  participants(...): TrainingUserConnection!
  trainers(...): TrainingUserConnection!
  modules: [Module!]!
}

Queries

Gebruik de volgende queries om trainingen op te halen:

training(id: UUID, ref: String): Training
trainings(query: String): [TrainingListItem!] @deprecated
paginatedTrainings(q: String, active: Boolean, archived: Boolean): TrainingListItemConnection

Mutations

Voor het aanmaken en aanpassen van trainingen:

createTraining(training: CreateTrainingInput!): CreateTraining
updateTraining(id: UUID, ref: String, training: UpdateTrainingInput!): UpdateTraining

Notes

  • Gebruik paginatedTrainings voor lijstweergaves met filters.
  • De velden archived en isActive zijn aanwezig voor beheer.
  • Geen deleteTraining mutatie — gebruik archiveren.
Sluit melding