Ophalen van leeraanbod

GetClasses, GetClassesFilteredByDate en GetClassesFilteredByTraining

Met deze methods kan informatie over lichtingen worden opgehaald. Het format van het resultaat is voor alledrie de methods hetzelfde. De methods verschillen in de manier waarop gefilterd kan worden:

Let op: Gebruik geen GET-requests. Deze worden in plaintext verstuurd, en zijn dus niet veilig.

GetClasses
POST /service/apiservice.asmx/GetClasses HTTP/1.1
Host: domein.pynter.nl
Content-Type: application/x-www-form-urlencoded
Content-Length: length

username=string&password=string&includeArchived=boolean

De includeArchived parameter geeft aan of gearchiveerde lichtingen ook opgehaald moeten worden.

GetClassesFilteredByDate
POST /service/apiservice.asmx/GetClassesFilteredByDate HTTP/1.1
Host: domein.pynter.nl
Content-Type: application/x-www-form-urlencoded
Content-Length: length

username=string&password=string&fromDate=datetime&toDate=datetime&includeArchived=boolean

De fromDate en toDate parameters geven een datumbereik aan. Het filteren gebeurt aan de hand van de startdatum van de lichting, en is inclusief. Een request met fromDate = 2025-04-28 en toDate = 2025-05-07 bevat dus alle lichtingen die op 28 april 2025 of later en vóór of op 7 mei 2025 beginnen.

GetClassesFilteredByTraining
POST /service/apiservice.asmx/GetClassesFilteredByTraining HTTP/1.1
Host: domein.pynter.nl
Content-Type: application/x-www-form-urlencoded
Content-Length: length

username=string&password=string&trainingId=number&trainingType=trainingtype&includeArchived=boolean

De trainingId en trainingType parameters kunnen samen gebruikt worden om te filteren op opleidingen. De trainingType parameter kan de volgende waarden hebben:

Let op: als je de tekstversie van de trainingType gebruikt is deze hoofdlettergevoelig!

Bij het succesvol aanroepen ziet een response er als volgt uit:

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<ApiResponseOfListOfTrainingClass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/">
    <Success>true</Success>
    <Contents>
      // Meerdere TrainingClass objecten
    </Contents>
</ApiResponseOfListOfTrainingClass>

Het TrainingClass object is als volgt gestructureerd:

<TrainingClass>
  <!-- De unieke ID van de lichting. -->
  <Id>number</Id>
  
  <!-- De naam van de lichting. -->
  <Name>string</Name>
  
  <!-- Het maximale aantal inschrijvingen voor de lichting. Als er geen maximum is, wordt hier null teruggegeven. -->
  <MaximumEnrollments>number</MaximumEnrollments>
  
  <!-- Het minimum aantal inschrijvingen voor de lichting. Als er geen minimum is, wordt hier null teruggegeven. -->
  <MinimumEnrollments>number</MinimumEnrollments>
  
  <!-- Of de lichting geannuleerd is. -->
  <IsCancelled>boolean</IsCancelled>
  
  <!-- Of de lichting gearchiveerd is. -->
  <IsArchived>boolean</IsArchived>
  
  <!-- Of de lichting zichtbaar is in de opleidingscatalogus. -->
  <IsVisibleInCatalog>true</IsVisibleInCatalog>
  
  <!-- Of de lichting zichtbaar is in de opleidingskalender. -->
  <IsVisibleInCalendar>true</IsVisibleInCalendar>
  
  <!-- Of de opleiding getoond moet worden op externe websites. -->
  <VisibleExternally>true</VisibleExternally>
  
  <!-- Of medewerkers zich kunnen inschrijven voor een wachtlijst wanneer het maximum aantal deelnemers is bereikt. -->
  <HasWaitingList>false</HasWaitingList>
  
  <!-- Het maximale aantal inschrijvignen voor de wachtlijst. Als er geen maximum is, wordt hier null teruggegeven. -->
  <MaximumWaitingListEnrollments>number</MaximumWaitingListEnrollments>
  
  <!-- De trainingsdata die bij deze lichting horen. -->
  <Dates>
    <TrainingClassDate>
      
      <!-- De unieke ID van deze trainingsdag. -->
      <Id>number</Id>
      
      <!-- De datum van deze trainingsdag in ISO 8601 format (YYYY-MM-DD). -->
      <Date>date</Date>
      
      <!-- De starttijd van deze trainingsdag in ISO8601 format (HH:MM:SS). -->
      <StartsAt>time</StartsAt>
      
      <!-- De eindtijd van deze trainingsdag in ISO8601 format (HH:MM:SS). -->
      <EndsAt>time</EndsAt>
      
      <!-- De locatie van deze trainingsdag. -->
      <Location>
        
        <!-- De naam van deze trainigsdag. -->
        <Name>string</Name>
        
        <!-- Het adres van deze trainingsdag. -->
        <Address>string</Address>
      </Location>
      
      <!-- De IDs van de trainers voor deze opleiding. -->
      <TrainerIds/>
    </TrainingClassDate>
  </Dates>

  <!-- De ids van de gebruikers die voor deze lichting zijn ingeschreven. -->
  <Enrollments/>

  <!-- De IDs van de gebruikers die voor de wachtlijst van deze training zijn ingeschreven. -->
  <WaitingListEnrollments/>

  <!-- Informatie over de opleiding waar deze lichting onderdeel van is -->
  <Training>
    <!-- De unieke ID van de opleiding -->
    <Id>number</Id>
    
    <!-- Het opleidingstype van de opleiding. "Learning" voor reguliere opleidingen, "Longterm" voor opleidingsblokken. -->
    <Type>trainingType</Type>
    
    <!-- De naam van de opleiding -->
    <Name>string</Name>
  </Training>
</TrainingClass>

GetClass

Met deze method kan informatie worden opgehaald over een lichting.

Let op: Gebruik geen GET-requests. Deze worden in plaintext verstuurd, en zijn dus niet veilig.

POST /service/apiservice.asmx/GetClass HTTP/1.1
Host: domein.pynter.nl
Content-Type: application/x-www-form-urlencoded
Content-Length: length

username=string&password=string&classId=number

Bij het succesvol aanroepen ziet een respons er als volgt uit:

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<ApiResponseOfGroupClass>
  <Success>true</Success>
  <Contents></Contents>
</ApiResponseOfGroupClass>

De Contents bevat de volgende velden:

<!-- De unieke ID van de lichting. -->
<Id>number</Id>

<!-- De unieke ID van de groep die bij de lichting hoort. -->
<GroupId>number</GroupId>

<!-- De naam van de lichting. -->
<ClassName>string</ClassName>

<!-- Of de lichting zichtbaar is in de catalogus. -->
<IsVisibleCatalog>boolean</IsVisibleCatalog>

<!-- Of de lichting zichtbaar is in de kalender. -->
<IsVisibleCalendar>string</IsVisibleCalendar>

<!-- Of de lichting extern wordt aangeboden. -->
<OfferExternally>boolean</OfferExternally>

<!-- Het minimale aantal inschrijvingen voor de lichting. Kan ook leeg zijn, in dat geval heeft het XML-element de attribute xsi:nil="true". -->
<MinPersons>number</MinPersons>

<!-- Het maximale aantal inschrijvingen voor de lichting. Kan ook leeg zijn, in dat geval heeft het XML-element de attribute xsi:nil="true". -->
<MaxPersons>number</MaxPersons>

<!-- De memo voor de lichting. Hier kan extra informatie voor beheerders worden ingevuld. Deze is niet zichtbaar voor medewerkers. Dit eld bevat HTML. -->
<Memo>string</Memo>

<!-- Of de memo in de rapportage getoond moet worden. -->
<ShowMemoInReport>boolean</ShowMemoInReport>

<!-- Of de lichting gearchiveerd is. -->
<Archived>boolean</Archived>

<!-- Of de lichting geannuleerd is. -->
<Cancelled>boolean</Cancelled>

<!-- Of alleen medewerkers in een bepaalde divisie zich mogen inschrijven voor deze lichting. -->
<FilterByDivision>boolean</FilterByDivision>

<!-- Of deze lichting een wachtlijst heeft. -->
<HasWaitingList>boolean</HasWaitingList>

<!-- Het maximale aantal inschrijvingen voor de wachtlijst. Kan ook leeg (= onbeperkt) zijn, in dat geval heeft het XML-element de attribute xsi:nil="true". -->
<WaitingListCapacity>number</WaitingListCapacity>

<!-- De uiterlijke datum dat medewerkers hun inschrijving kunnen aanpassen. Kan ook leeg zijn, in dat geval heeft het XML-element de attribute xsi:nil="true". -->
<EditDeadline>datetime</EditDeadline>

<!-- De uiterlijke datum dat medewerkers zich voor de lichting kunnen inschrijgen. Kan ook leeg zijn, in dat geval heeft het XML-element de attribute xsi:nil="true". -->
<RegistrationDeadline>datetime</RegistrationDeadline>

<!-- Het aantal dagen voor de eerste datum van de training voordat de medewerker toegang krijgt tot de inhoud van de opleiding. Kan ook leeg zijn, in dat geval heeft het XML-element de attribute xsi:nil="true". -->
<LockDaysTillStart>datetime</LockDaysTillStart>

<!-- De manier waarop de opleiding wordt afgerond. Mogelijke waarden: "Normal", "Stream", "ETicket". -->
<CompletionType>int</CompletionType>

<!-- Of de training nog in de bewerkmodus staat. -->
<IsUnderConstruction>boolean</IsUnderConstruction>

<!-- Lijst van data voor de lichting. Zie hieronder. -->
<Data />

<!-- Lijst van medewerkers die voor de lichting zijn ingeschreven. Deze informatie wordt in dit API-endpoint niet meegegeven. -->
<Members/>

<!-- Lijst van edities voor PE-online. Deze informatie wordt in dit API-endpoint niet meegegeven. -->
<Editions/>

<!-- Lijst van divisies die zich voor deze lichting kunnen inschrijven. Deze informatie wordt in dit API-endpoint niet meegegeven. -->
<GroupClassDivisions/>

<!-- Lijst van wachtlijstingschrijvingen. Deze informatie wordt in dit API-endpoint niet meegegeven. -->
<WaitingListEnrollments/>

Het Data-veld bevat de contactmomenten van de lichting. Hierin zitten een of meer elementen van het type GroupClassDate. Hierin zitten de volgende velden:

<!-- De unieke ID van het contactmoment. -->
<Id>number</Id>

<!-- De unieke ID van de lichting. -->
<ClassId>number</ClassId>

<!-- De datum van het contactmoment. -->
<Date>datetime</Date>

<!-- De starttijd van het contactmoment. -->
<From>string</From>

<!-- De eindtijd van het contactmoment -->
<Till>string</Till>

<!-- De naam van de locatie van het contactmoment. -->
<LocationName>string</LocationName>

<!-- Het adres van de locatie van het contactmoment. -->
<LocationAddress>string</LocationAddress>

<!-- De unieke ID van de PE-Online meeting. -->
<MeetingId>number</MeetingId>

<!-- De unieke ID van een module, indien gekoppeld. -->
<TaskId>number</TaskId>

<!-- Of er een stream beschikbaar is voor dit contactmoment. -->
<StreamAvailable>boolean</StreamAvailable>

<!-- De unieke code waarmee de stream gejoind kan worden. -->
<StreamPassword>string</StreamPassword>

<!-- Extra informatie die op het E-Ticket getoond wordt. -->
<EticketInformation>string</EticketInformation>

<!-- De unieke ID van de TopDesk-reservering, indien relevant. -->
<ReservationId>number</ReservationId>

<!-- Trainers voor dit contactmoment. Dit element wordt in deze API endpoint niet teruggegeven. -->
<Trainers />

<!-- Locaties voor TopDesk. Dit element wordt in deze API endpoint niet teruggegeven. -->
<TopDeskLocations />

<!-- Meetings voor PE-Online. Dit element wordt in deze API endpoint niet teruggegeven. -->
<Meetings />

 

GetCatalog

Met deze method kan de inhoud van de catalogus worden opgehaald.

Let op: Gebruik geen GET-requests. Deze worden in plaintext verstuurd, en zijn dus niet veilig.

POST /service/apiservice.asmx/GetCatalog HTTP/1.1
Host: domein.pynter.nl
Content-Type: application/x-www-form-urlencoded
Content-Length: length

username=string&password=string

Bij het succesvol aanroepen ziet een respons er als volgt uit:

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<ApiResponseOfListOfCatalogItem xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/">
    <Success>true</Success>
    <Contents></Contents>
</ApiResponseOfListOfCatalogItem>

De Contents zal een collectie van CatalogItem bevatten. CatalogItem is als volgt gestructureerd:

<CatalogItem>
  <!-- De naam van een trede. -->
  <Title>string</Title>

  <!-- De categorieen in een trede. -->
  <CatSubject>

    <!-- Een categorie in een trede. Hier kunnen er meerdere van zijn. -->
    <CatSubject>

      <!-- De titel van een categorie in een trede. -->
      <Subject>string</Subject>

      <!-- De trainingen in deze categorie. -->
      <CatTrainingInfo>

        <!-- Een training in de categorie. Hier kunnen er meerdere van zijn. -->
        <CatTrainingInfo>

          <!-- De titel van de opleiding -->
          <Title>string</Title>

          <!-- URL naar de afbeelding van de training, als er een is ingesteld. -->
          <Image>string</Image>

          <!-- Beschrijving vna de opleiding. Bevat HTML-opmaak. -->
          <Description>string</Description>

          <!-- Unieke ID van de opleiding -->
          <Id>number</Id>

          <!-- Kosten -->
          <costs>string</costs>

          <!-- De trainers voor deze opleiding. -->
          <Trainers>
            
            <!-- Informatie over een trainer. Hier kunnen er meerdere van zijn. -->
            <UserInfo>

              <!-- Unieke ID van de trainer. -->
              <Id>number</Id>

              <!-- Volledige naam van de trainer in de vorm "Voornaam van Achternaam". -->
              <Name>string</Name>

              <!-- Emailadres van de trainer -->
              <EmailAddress>string</EmailAddress>
            </UserInfo>
          </Trainers>

          <!-- Als de opleiding fysieke opleidingsmomenten heeft worden deze hier neergezet. -->
          <TrainingData>

            <!-- Informatie over een opleidingslichting. Hier kunnen er meerdere van zijn. -->
            <TrainingData>

              <!-- De unieke ID van de lichting. -->
              <subscriptionId>number</subscriptionId>
            
              <!-- De unieke ID van de groep. -->
              <groupId>number</groupId>
            
              <!-- De naam van de lichting. -->
              <ClassName>string</ClassName>
            
              <!-- De datum van de lichting. -->
              <Date>string</Date>
            
              <!-- Het tijdstip van de lichting. -->
              <Time>string</Time>
            
              <!-- De locatie van de lichting. -->
              <Location>string</Location>
            
              <!-- Het adres van de locatie. -->
              <Adress>string</Adress>
            
              <!-- Het aantal beschikbare plaatsen. -->
              <AvailablePlaces>number</AvailablePlaces>
            
              <!-- Geeft aan of er een wachtlijst is. -->
              <HasWaitingList>boolean</HasWaitingList>

              <!-- De lichtingspecifieke trainers. -->
              <Trainers>
                    
                <!-- Informatie over een trainer. Hier kunnen er meerdere van zijn. -->
                <UserInfo>
    
                  <!-- Unieke ID van de trainer. -->
                  <Id>number</Id>
    
                  <!-- Volledige naam van de trainer in de vorm "Voornaam van Achternaam". -->
                  <Name>string</Name>
    
                  <!-- Emailadres van de trainer -->
                  <EmailAddress>string</EmailAddress>
                  
                </UserInfo>
                
              </Trainers>
              
            </TrainingData> 
            
          </TrainingData>

          <!-- Dit element is altijd leeg. -->
          <Sites />

          <!-- Dit element is altijd leeg. -->
          <RelatedTrainings />
          
        </CatTrainingInfo>
        
      </CatTrainingInfo>
      
    </CatSubject>
  </CatSubject>
</CatalogItem>