Voedselbank/Backend API
Alle hieronder beschreven acties zijn url paden die volgen op /api/
. Dat wil zeggen, de actie klant.list bestaat op de url /api/klant/list
. Eventuele argumenten worden standaard bijgevoegd in de query string (/api/klant/info?id=1
). Waar aangegeven (POST) zullen deze als form-waarde moeten worden meegegeven.
Contents
Login
Het API pad voor inloggen is login
- Argumenten (POST):
- medewerker – Naam van de medewerker
- wachtwoord – Wachtwoord van de medewerker (plaintext)
- Resultaat bij success
{ "ID": 10, "geldigTot": "2012-09-13 18:17:10", "medewerker": { "ID": 1, "emailAdres": "elmer@underdark.nl", "login": "admin", "naam": "Systeem" }, "sessieSleutel": "ca18fb8c9c57b96a9a24c7014547fc889277da272c2c6f8ed9eaf2563bdac877" }
De gegeven tijd hier is de lokale tijd voor de database. De sessieSleutel wordt hier hex-encoded ten behoeve van JSON dat geen support heeft voor arbitraire bytes.
De gegeven sessieSleutel
wordt als cookie ingesteld en dient bij elk volgende API verzoek aanwezig te zijn (als cookie).
Klanten API
klant.list
Geeft de volledige lijst van klanten van de Voedselbank terug.
Argumenten:
- postcode – (optioneel) Geeft alleen de klanten die een adres hebben met de gegeven postcode.
Voorbeeldresultaat:
[ { "ID": 3, "achternaam": "Jansen", "adresPlaats": "Leeuwarden", "adresPostcode": "8911AG", "adresStraat": "Stationsweg 6", "emailAdres": null, "geboorteDatum": "1959-6-28", "geslacht": "man", "klantcode": "QrZVUNwh", "tussenvoegsel": "", "voorletters": "J." }, { "ID": 4, "achternaam": "Hacker", "adresPlaats": "Leeuwarden", "adresPostcode": "8911AN", "adresStraat": "Zuiderplein 33", "emailAdres": null, "geboorteDatum": "1970-1-1", "geslacht": "man", "klantcode": "qjtwque7", "tussenvoegsel": "", "voorletters": "J.R." }, ]
klant.info
Geeft informatie over een enkele klant. Deze kan opgehaald worden aan de hand van het database ID, de klantcode of het volgnummer uit het oude systeem. Slechts een van deze argumenten mag worden opgegeven.
Argumenten:
- ID – (optioneel) Database ID van de klant (het argument volgnummer vervult dezelfde werking, nu de oude en nieuwe volgnummers samengevoegd zijn).
- code – (optioneel) Klantcode van de klant, hoofdletterongevoelig
Voorbeeldresultaat:
{ "ID": 4, "achternaam": "Hacker", "adresPlaats": "Leeuwarden", "adresPostcode": "8911AN", "adresStraat": "Zuiderplein 33", "emailAdres": null, "geboorteDatum": "1970-1-1", "geslacht": "man", "klantcode": "qjtwque7", "tussenvoegsel": "", "voorletters": "J.R." }
klant.search
Zoekt naar klanten op basis van (een deel van) de achternaam.
Argumenten:
- naam – (optioneel) Database ID van de klant (het argument volgnummer vervult dezelfde
Voorbeeldresultaat:
- Vergelijkbaar met #klant.list; met alleen klanten waar (een deel van) de achternaam overeenkomt.
klant.create
Maakt een nieuwe klant aan. Er wordt direct een klantstatus aangemaakt, de klant wordt hierin aangemerkt als nieuw.
Argumenten (POST):
- voorletters – Voorletters van de klant
- tussenvoegsel – Tussenvoegsel (van / de)
- achternaam – Achternaam van de klant
- geslacht – Geslacht (man / vrouw)
- geboorteDatum – Geboortedatum (
yyyy-mm-dd
) - emailAdres – E-mailadres van de klant
- adresStraat – Straat + huisnummer
- adresPostcode – Postcode, letters en cijfers zonder spatie
- adresPlaats – Woonplaats van de klant
Voorbeeldresultaat:
- Gelijk aan #klant.info van nieuwe klant
klant.update
Wijzigt informatie van de klant. De velden zijn gelijk aan die van de nieuw aangemaakte klant, maar staan voo de volledigheid hieronder beschreven.
Een update actie kan 1 of meer eigenschappen aanpassen. Eigenschappen die niet worden opgegeven blijven onveranderd.
Argumenten (POST):
- ID – Database ID van de klant
- voorletters – (optioneel)
- tussenvoegsel – (optioneel)
- achternaam – (optioneel)
- emailAdres – (optioneel)
- geslacht – (optioneel)
- geboorteDatum – (optioneel) Geboortedatum (
yyyy-mm-dd
) - adresStraat – (optioneel) Straatnaam en huisnummer
- adresPostcode – (optioneel) Postcode, zonder spatie tussen cijfers en letters
- adresPlaats – (optioneel)
Voorbeeldresultaat:
- Gelijk aan #klant.info van de aangepaste klant.
klant.updateklantcode
Bij het aanroepen van deze API actie wordt er voor de klant een nieuwe klantcode gegenereerd welke gebruikt wordt voor de nieuwe pas met barcode.
Argumenten (POST):
- ID – Database ID van de klant
Voorbeeldresultaat:
- Gelijk aan #klant.info van de aangepaste klant.
klant.barcode
Geeft de klantcode van de klant als Code 128 barcode. Dit kan op basis van zowel het klantnummer als de klantcode. Onjuist klantcodes zullen resulteren in een error, niet een verkeerde barcode.
Alternatief kan er worden gekozen om een volledig arbitraire barcode te genereren door gebruik te maken van het raw argument. Hier kan een eigen tekst worden opgegeven om een barcode van te laten maken.
Argumenten:
- ID – (optioneel) Database ID van de klant
- code – (optioneel) Klantcode van de klant, hoofdletterongevoelig
- raw – (optioneel) Deze optie kan gebruikt worden om willekeurige barcodes te genereren
klant.abonnementen
Geeft een lijst terug van alle abonnementen die een klant (gehad) heeft.
Argumenten:
- klant – Database ID van de klant
Voorbeeldresultaat:
[ { "ID": 5, "beeindigd": 1, "datumStart": "2006-01-23", "klant": 4, "opmerking": "", "pakketAantal": 14, "pakketDieet": 1, "uitgifteMoment": 4 }, { "ID": 6, "beeindigd": 0, "datumStart": "2012-03-17", "klant": 4, "opmerking": "", "pakketAantal": 14, "pakketDieet": 1, "uitgifteMoment": 4 } ]
Klanttelefoonnummers API
klant.telefoonnummer.list
Geeft een lijst van alle telefoonnummers van de klant, met het 'soort' nummer erbij.
Argumenten:
- klant – Database ID van de klant
Voorbeeldresultaat:
[ { "ID": 40, "klant": { "ID": 4, "achternaam": "Hacker", "adresPlaats": "Leeuwarden", "adresPostcode": "8911AN", "adresStraat": "Zuiderplein 33", "emailAdres": null, "geboorteDatum": "1970-1-1", "geslacht": "man", "klantcode": "qjtwque7", "tussenvoegsel": "", "voorletters": "J.R." }, "nummer": "0581234987", "soort": "thuis" }, { "ID": 41, "klant": { "ID": 4, "achternaam": "Hacker", "adresPlaats": "Leeuwarden", "adresPostcode": "8911AN", "adresStraat": "Zuiderplein 33", "emailAdres": null, "geboorteDatum": "1970-1-1", "geslacht": "man", "klantcode": "qjtwque7", "tussenvoegsel": "", "voorletters": "J.R." }, "nummer": "0681563934", "soort": "mobiel" } ]
klant.telefoonnummer.toevoegen
Voegt een telefoonnummer toe aan een bestaande klant
Argumenten:
- klant – Database ID van de klant
- nummer – Telefoonnummer van de klant, 10 cijfers zonder
- soort – Omschrijving van het soort nummer ('mobiel', 'thuis' of 'werk')
Voorbeeldresultaat:
- Gelijk aan #klant.telefoonnummer.list van de klant, met het nieuwe nummer erbij
klant.telefoonnummer.verwijderen
Verwijdert een bestaand telefoonnummer van een klant.
Argumenten:
- klant – Database ID van de klant
- nummer – Database ID van het telefoonnummer (zoals dat uit #klant.telefoonnummer.list komt).
Voorbeeldresultaat:
- Gelijk aan #klant.telefoonnummer.list van de klant, met het nieuwe nummer erbij
Klantcontactpersonen API
klant.contact.list
Geeft een lijst van de contactpersonen die bij een klant horen. Dit is er in de praktijk vaak maar een (voor de klanten waar dit van toepassing is), maar het kunnen er meer zijn.
Argumenten:
- klant – Database ID van de klant
Voorbeeldresultaat:
[ { "ID": 1, "adresPlaats": "Amsterdam", "adresPostcode": "1017BR", "adresStraat": "Herengracht 24", "emailAdres": "jacob@noorderwind.cc", "klant": 4, "naam": "Jacob Wind", "rol": "bewindvoerder", "telefoonnummer": "0612345678" } ]
klant.contact.toevoegen
Voegt een contactpersoon toe bij een klant.
Argumenten (POST):
- klant – Database ID van de klant waar de contactpersoon bij hoort
- naam – Volledige naam van de contactpersoon
- rol – De rol van de contactpersoon (een van: particulier,GKB,bewindvoerder,budgetbeheer,WSNP)
- telefoonnummer – Telefoonnummer van de contactpersoon
- emailAdres – E-mailadres van de contactpersoon
- adresStraat – Straat + huisnummer
- adresPostcode – Postcode, letters en cijfers zonder spatie
- adresPlaats – Woonplaats van de klant
Voorbeeldresultaat:
- Gelijk aan #klant.contact.list met de nieuwe contactpersoon toegevoegd
klant.contact.verwijderen
Verwijdert een contactpersoon van een klant
Argumenten (POST):
- klant – Database ID van de klant
- contactpersoon – Database ID van de te verwijderen contactpersoon
Voorbeeldresultaat:
- Gelijk aan #klant.contact.list zonder de verwijderde contactpersoon
Klantgezin API
klant.gezin.list
Geeft een lijst gezinsleden van de klant terug.
Argumenten:
- klant – Database ID van de klant
Voorbeeldresultaat:
[ { "ID": 19, "geboorteDatum": "1970-01-01", "geslacht": "man", "klant": { "ID": 4, "achternaam": "Hacker", "adresPlaats": "Leeuwarden", "adresPostcode": "8911AN", "adresStraat": "Zuiderplein 33", "emailAdres": null, "geboorteDatum": "1970-1-1", "geslacht": "man", "klantcode": "qjtwque7", "tussenvoegsel": "", "voorletters": "J.R." } "naam": "J.R. Hacker" }, { "ID": 20, "geboorteDatum": "1999-12-21", "geslacht": "man", "klant": { "ID": 4, "achternaam": "Hacker", "adresPlaats": "Leeuwarden", "adresPostcode": "8911AN", "adresStraat": "Zuiderplein 33", "emailAdres": null, "geboorteDatum": "1970-1-1", "geslacht": "man", "klantcode": "qjtwque7", "tussenvoegsel": "", "voorletters": "J.R." } "naam": "Bobby Tables" } ]
klant.gezin.toevoegen
Voegt een gezinslid toe aan de familie van een klant.
Argumenten (POST):
- klant – Database ID van de klant
- naam – Naam van het nieuwe gezinslid
- geboorteDatum Geboortedatum van het nieuwe gezinslid
- geslacht – Geslacht van het nieuwe gezinslid
Voorbeeldresultaat:
- Gelijk aan #klant.gezin.list met het nieuwe gezinslid als laatste item
klant.gezin.verwijderen
Verwijdert een gezinslid van een klant
Argumenten (POST):
- klant – Database ID van de klant
- gezinslid – Database ID van het te verwijderen gezinslid
Voorbeeldresultaat:
- Gelijk aan #klant.gezin.list zonder het verwijderde gezinslid
klant.gezin.zoeken
Zoekt naar gezinsleden met de gegeven naam, geslacht en geboortedatum. Dit om het dubbel voorkomen van gezinsleden bij verschillende klanten te voorkomen. Controleer dit bij het invoeren van een nieuw gezinslid. Het resultaat van deze zoekactie zou in dat geval geen resultaat moeten oplveren.
Argumenten:
- naam – Naam van het gezinslid
- geboorteDatum Geboortedatum van het gezinslid
- geslacht – Geslacht van het gezinslid
Voorbeeldresultaat:
[ { "ID": 1234, "geboorteDatum": "2000-01-01", "geslacht": "vrouw", "klant": 4, "naam": "Janneke Achternaam" } ]
Klantstatus API
klant.status
Geeft de huidige klantstatus terug
Argumenten:
- klant – Database ID van de klant
Voorbeeldresultaat:
{ "ID": 4, "klant": { "ID": 4, "achternaam": "Hacker", "adresPlaats": "Leeuwarden", "adresPostcode": "8911AN", "adresStraat": "Zuiderplein 33", "emailAdres": null, "geboorteDatum": "1970-1-1", "geslacht": "man", "klantcode": "qjtwque7", "tussenvoegsel": "", "voorletters": "J.R." }, "medewerker": { "ID": 1, "actief": 1, "emailAdres": "mede@werker.nl", "login": "admin", "naam": "Systeem", "rol": 1 }, "opmerking": "Geimporteerd op 2013-02-03", "status": "klant", "updateTijd": "2013-02-03 17:05:32", "wijzigingsdatum": "2006-03-09" }
klant.status.geschiedenis
Geeft de volledige statusgeschiedenis van de klant. Dit is een lijst van statusobjecten in chronologische volgorde (de meest recente status is het laatste item in de lijst).
Argumenten:
- klant – Database ID van de klant
Voorbeeldresultaat:
[ { "ID": 4048, "klant": 2200, "medewerker": 1, "opmerking": "Geimporteerd op 2013-02-03", "status": "klant", "updateTijd": "2013-02-03 17:06:54", "wijzigingsdatum": "2011-11-18" }, { "ID": 4049, "klant": 2200, "medewerker": 1, "opmerking": "Geimporteerd op 2013-02-03", "status": "regulier beeindigd", "updateTijd": "2013-02-03 17:06:54", "wijzigingsdatum": "2012-01-06" } ]
klant.status.opmerking
Plaatst een opmerking in de statusgeschieden van de klant. Deze actie behoudt de huidige status en wijzigingsdatum daarvan, maar voegt een commentaar toe. Op deze manier wordt bijvoorbeeld bijgehouden of een klant op de hoogte is gesteld van het niet ophalen van een klaargezet pakket.
POST Argumenten:
- klant – Database ID van de klant
- opmerking – De opmerking zoals hierboven beschreven.
Voorbeeldresultaat:
- Gelijk aan #klant.status
klant.status.update.afgewezen
De klant is na het intakegesprek niet geschikt geacht als klant van de Voedselbank.
Alleen klanten met de status nieuw kunnen worden afgewezen.
POST Argumenten:
- klant – Database ID van de klant
- opmerking – (optioneel) Een eventuele opmerking bij de statuswijziging.
Voorbeeldresultaat:
- Gelijk aan #klant.status
klant.status.update.doorverwezen
Uit het intakegesprek blijkt dat de klant niet terechtkan bij de Voedselbank, maar wellicht bij een andere partij. De klant wordt hiernaar doorverwezen.
Alleen klanten met de status nieuw kunnen worden doorverwezen.
POST Argumenten:
- klant – Database ID van de klant
- opmerking – (optioneel) Een eventuele opmerking bij de statuswijziging.
Voorbeeldresultaat:
- Gelijk aan #klant.status
klant.status.update.klant
De klant is na het intakegesprek geaccepteerd als klant van de voedselbank. De klant krijgt een abonnement toegewezen (dit kan alleen voor klanten met de status klant).
POST Argumenten:
- klant – Database ID van de klant
- opmerking – (optioneel) Een eventuele opmerking bij de statuswijziging.
Voorbeeldresultaat:
- Gelijk aan #klant.status
klant.status.update.verhuisd
Wanneer een klant verhuist naar een andere woonplaats te ver van de Voedselbank Leeuwarden om door deze bediendt te worden. Als het huidige abonnement nog loopt wordt dit stopgezet.
Alleen klanten met de status klant kunnen verhuizen.
POST Argumenten:
- klant – Database ID van de klant
- opmerking – (optioneel) Een eventuele opmerking bij de statuswijziging.
Voorbeeldresultaat:
- Gelijk aan #klant.status
klant.status.update.beeindigd
Na onderling overleg is gebleken dat de klant de steun van de Voedselbank niet meer nodigheeft. Als het huidige abonnement nog loopt wordt dit stopgezet.
Alleen klanten met de status klant kunnen regulier worden beeindigd.
POST Argumenten:
- klant – Database ID van de klant
- opmerking – (optioneel) Een eventuele opmerking bij de statuswijziging.
Voorbeeldresultaat:
- Gelijk aan #klant.status
klant.status.update.weggestuurd
Een klant die de aangeboden pakketten niet ophaalt of zich op andere wijze misdraagt (volgens de geldende regels bij de Voedselbank) kan hierdoor worden weggestuurd. Net als bij reguliere beeindiging worden eventueel lopende abonnementen stopgezet.
Alleen klanten met de status klant kunnen worden weggestuurd.
POST Argumenten:
- klant – Database ID van de klant
- opmerking – (optioneel) Een eventuele opmerking bij de statuswijziging.
Voorbeeldresultaat:
- Gelijk aan #klant.status
Abonnement API
abonnement.list
Geeft een lijst terug van alle lopende abonnementen bij de Voedselbank.
Argumenten:
- inactief – (optioneel) Wanneer dit wordt meegegeven (met willekeurige waarde), worden ook alle inactieve abonnementen in de resultaten meegenomen.
Voorbeeldresultaat:
[ { "ID": 22, "beeindigd": 0, "datumStart": "2012-02-01", "klant": 12, "opmerking": "", "pakketAantal": 14, "pakketDieet": 1, "uitgifteMoment": 1 }, { "ID": 24, "beeindigd": 0, "datumStart": "2012-03-03", "klant": 13, "opmerking": "", "pakketAantal": 14, "pakketDieet": 1, "uitgifteMoment": 2 }, ]
abonnement.info
Geeft informatie terug van een specifiek abonnement.
Argumenten:
- ID – Database ID van het abonnement
Voorbeeldresultaat:
{ "ID": 5, "beeindigd": 1, "datumStart": "2006-03-20", "klant": { "ID": 4, "achternaam": "Hacker", "adresPlaats": "Leeuwarden", "adresPostcode": "8911AN", "adresStraat": "Zuiderplein 33", "emailAdres": null, "geboorteDatum": "1970-1-1", "geslacht": "man", "klantcode": "qjtwque7", "tussenvoegsel": "", "voorletters": "J.R." }, "opmerking": "", "pakketAantal": 14, "pakketDieet": { "ID": 1, "naam": "Normaal" }, "uitgifteCyclus": { "ID": 2, "actief": 1, "locatie": { "ID": 1, "naam": "Leeuwarden" }, "omschrijving": "Leeuwarden dinsdag (geel)", "ophaaldag": 8 } }
abonnement.create
Maakt een nieuw abonnement aan.
Argumenten (POST):
- klant – Database ID van de klant
- uitgifteCyclus – Database ID van de uitgiftecyclus
- startdatum – De startdatum van het abonnement (yyyy-mm-dd)
- pakketAantal – De looptijd van het abonnement in pakketten
- opmerking – Eventuele extra opmerkingen
- dieet – JSON array van database ID's van diëten die moet worden toegepast.
Voorbeeldresultaat:
- Gelijk aan #abonnement.info van het nieuw toegevoegde abonnement
abonnement.nieuwste
Geeft het laatst aangemaakte pakket voor het abonnement.
Argumenten:
- abonnement – Database ID van het abonnement
Voorbeeldresultaat:
{ "ID": 38, "abonnement": { "ID": 5, "beeindigd": 1, "datumStart": "2006-01-23", "klant": { "ID": 4, "achternaam": "Hacker", "adresPlaats": "Leeuwarden", "adresPostcode": "8911AN", "adresStraat": "Zuiderplein 33", "emailAdres": null, "geboorteDatum": "1970-1-1", "geslacht": "man", "klantcode": "qjtwque7", "tussenvoegsel": "", "voorletters": "J.R." }, "opmerking": "", "pakketAantal": 14, "pakketDieet": { "ID": 1, "naam": "Normaal" }, "uitgifteMoment": { "ID": 4, "actief": 1, "locatie": { "ID": 1, "naam": "Leeuwarden" }, "omschrijving": "Leeuwarden vrijdag (groen)", "ophaaldag": 11 } }, "pakketGrootte": { "ID": 2, "code": "B", "min_gezinsgrootte": 2, "omschrijving": "Vanaf 2 personen" }, "volgnummer": 14 }
abonnement.pakketten
Geeft een lijst van de pakketten die bestaan voor het abonnement
Argumenten:
- abonnement – Database ID van het abonnement
Voorbeeldresultaat:
[ { "ID": 25, "abonnement": 5, "pakketGrootte": 2, "volgnummer": 1 }, { "ID": 26, "abonnement": 5, "pakketGrootte": 2, "volgnummer": 2 }, { "ID": 27, "abonnement": 5, "pakketGrootte": 2, "volgnummer": 3 }, ]
abonnement.resterend
Geeft het aantal resterende pakketten dat voor dit abonnement nog wordt uitgegeven. Wanneer het laatste pakket nog moet worden uitgegeven is het resultaat van deze functie 1 (wanneer dit pakket is uitgegeven wordt het resultaat 0).
Argumenten:
- abonnement – Database ID van het abonnement
Voorbeeldresultaat:
9
abonnement.stop
Stopt het lopende abonnement. Het nog niet opgehaalde pakket dat bij dit abonnement hoort zal ook geannuleerd worden.
N.B.: Dit kan niet ongedaan gemaakt worden. Wanneer een abonnement per ongeluk gestopt wordt zal een nieuw abonnement aangemaakt moeten worden.
Argumenten (POST):
- abonnement – Database ID van het abonnement
Voorbeeldresultaat:
- Gelijk aan #abonnement.info
abonnement.update
Wijzigt eigenschappen van het abonnement. De opmerking bevat extra informatie ten behoeve van de inpakkers, bv een melding dat er extra luiers bij het pakket moet worden toegevoegd. Het pakketaantal wordt gebruikt om het aantal uit te geven pakket te sturen. De uitgiftecyclus bepaalt de data en locatie waarop de pakketten beschikbaar worden gemaakt.
Een update actie kan 1 of meer eigenschappen aanpassen. Eigenschappen die niet aangepast moeten worden worden niet opgegeven.
Argumenten (POST):
- abonnement – Database ID van het abonnement
- pakketAantal – (optioneel) Het nieuwe aantal pakketten dat gedurende dit abonnement moet worden uitgegeven
- opmerking – (optioneel) De nieuwe opmerking. de oude opmerking wordt overschreven.
- uitgifteCyclus – (optioneel) Database ID van de uitgiftecyclus.
Voorbeeldresultaat:
- Gelijk aan #abonnement.info
Abonnementdieet API
abonnement.dieet.list
Geeft een lijst van de dieetaspecten die bij het abonnement horen.
Argumenten:
- abonnement – Database ID van het abonnement
Voorbeeldresultaat:
[ { "ID": 2, "naam": "Halal", "stickerKleur": "groen" }, { "ID": 3, "naam": "Diabetisch", "stickerKleur": "rood" } ]
abonnement.dieet.toevoegen
Voegt een dieetaspect toe aan een abonnement.
Argumenten (POST):
- abonnement – Database ID van het abonnement
- dieet – Database ID van het toe te voegen dieet
Voorbeeldresultaat:
- Gelijk aan #abonnement.dieet.list, inclusief het nieuwe dieetaspect
abonnement.dieet.verwijderen
Verwijdert een dieetaspect van een abonnement.
Argumenten (POST):
- abonnement – Database ID van het abonnement
- dieet – Database ID van het toe te verwijderen dieet
Voorbeeldresultaat:
- Gelijk aan #abonnement.dieet.list, nu zonder het nieuwe dieetaspect
Dieet API
dieet.list
Geeft een lijst van de verschillende dieetaspecten.
Voorbeeldresultaat:
[ { "ID": 1, "naam": "Normaal" }, { "ID": 2, "naam": "Vegetarisch" }, { "ID": 3, "naam": "Halal" }, { "ID": 4, "naam": "Diabetisch" } ]
dieet.info
Geeft informatie over een specifiek dieet.
Argumenten:
- ID – Database ID van het dieet
Voorbeeldresultaat:
{ "ID": 1, "naam": "Normaal" }
dieet.create
Maakt een nieuw dieetaspect aan
Argumenten (POST):
- naam – Naam van het dieet
- stickerKleur – Naam van de stickerkleur van het dieet
Voorbeeldresultaat:
- Gelijk aan #dieet.info van het nieuwgemaakte dieet
dieet.update
Past de naam aan van een bestaand dieet.
Argumenten (POST):
- dieet – Database ID van het dieet
- naam – Nieuwe naam van het dieet
- stickerKleur – Nieuwe stickerkleur van het dieet
Voorbeeldresultaat:
- Gelijk aan #dieet.info van het gewijzigde dieet
dieet.abonnementen
Geeft een lijst van abonnementen van het gegeven dieet.
Argumenten:
- dieet – Database ID van het dieet
- inactief – (optioneel) Wanneer dit wordt meegegeven (met willekeurige waarde), worden ook alle inactieve abonnementen in de resultaten meegenomen.
Voorbeeldresultaat:
[ { "ID": 6, "beeindigd": 0, "datumStart": "2012-03-17", "klant": 4, "opmerking": "", "pakketAantal": 14, "pakketDieet": 1, "uitgifteMoment": 4 }, { "ID": 22, "beeindigd": 0, "datumStart": "2012-02-01", "klant": 12, "opmerking": "", "pakketAantal": 14, "pakketDieet": 1, "uitgifteMoment": 1 }, ]
Pakket API
pakket.info
Geeft de informatie van een specifiek pakket. Bij welk abonnement (en klant, dieet) hoort het, hoe groot is het, welk volgnummer heeft het.
Argumenten:
- ID – Database ID van het pakket
Voorbeeldresultaat:
{ "ID": 81, "abonnement": { "ID": 5, "beeindigd": 1, "datumStart": "2006-01-23", "klant": { "ID": 4, "achternaam": "Hacker", "adresPlaats": "Leeuwarden", "adresPostcode": "8911AN", "adresStraat": "Zuiderplein 33", "emailAdres": null, "geboorteDatum": "1970-1-1", "geslacht": "man", "klantcode": "qjtwque7", "tussenvoegsel": "", "voorletters": "J.R." }, "opmerking": "", "pakketAantal": 14, "pakketDieet": { "ID": 1, "naam": "Normaal" }, "uitgifteCyclus": { "ID": 2, "actief": 1, "locatie": { "ID": 1, "naam": "Leeuwarden" }, "omschrijving": "Leeuwarden dinsdag (geel)", "ophaaldag": 8 } }, "pakketGrootte": { "ID": 2, "code": "B", "min_gezinsgrootte": 2, "omschrijving": "Vanaf 2 personen" }, "volgnummer": 1 }
pakket.status
Geeft de huidige status van het pakket. Deze status beschrijft of het pakket wel/niet is verwerkt, opgehaald, en bij niet-ophalen, of dit met of zonder goede reden is gedaan (malus). Ook wordt beschreven door welke medewerker deze status is gegeven en wanneer dit gebeurd is.
Ook meegegeven wordt alle pakketinformatie zoals hierboven beschreven is.
Argumenten:
- pakket – Database ID van het pakket
Voorbeeldresultaat:
{ "ID": 161, "malus": 0, "medewerker": { "ID": 1, "actief": 1, "emailAdres": "elmer@underdark.nl", "login": "admin", "naam": "Systeem", "rol": 1 }, "opgehaald": 1, "ophaaldatum": "2006-03-20", "pakket": { "ID": 81, "abonnement": { "ID": 5, "beeindigd": 1, "datumStart": "2006-01-23", "klant": { "ID": 4, "achternaam": "Hacker", "adresPlaats": "Leeuwarden", "adresPostcode": "8911AN", "adresStraat": "Zuiderplein 33", "emailAdres": null, "geboorteDatum": "1970-1-1", "geslacht": "man", "klantcode": "qjtwque7", "tussenvoegsel": "", "voorletters": "J.R." }, "opmerking": "", "pakketAantal": 14, "pakketDieet": { "ID": 1, "naam": "Normaal" }, "uitgifteCyclus": { "ID": 2, "actief": 1, "locatie": { "ID": 1, "naam": "Leeuwarden" }, "omschrijving": "Leeuwarden dinsdag (geel)", "ophaaldag": 8 } }, "pakketGrootte": { "ID": 2, "code": "B", "min_gezinsgrootte": 2, "omschrijving": "Vanaf 2 personen" }, "volgnummer": 1 }, "updateTijd": "2012-09-23 10:55:33", "verwerkt": 1 }
pakket.status.geschiedenis
Geeft de volledige statusgeschiedenis van het pakket. Dit is een lijst van statusobjecten in chronologische volgorde (de meest recente status is het laatste item in de lijst).
Argumenten:
- pakket – Database ID van het pakket
Voorbeeldresultaat:
[ { "ID": 160, "malus": 0, "medewerker": 1, "opgehaald": 0, "ophaaldatum": "2006-03-20", "pakket": 81, "updateTijd": "2012-09-23 10:55:33", "verwerkt": 0 }, { "ID": 161, "malus": 0, "medewerker": 1, "opgehaald": 1, "ophaaldatum": "2006-03-20", "pakket": 81, "updateTijd": "2012-09-23 10:55:33", "verwerkt": 1 } ]
pakket.status.opgehaald
Markeert een pakket als verwerkt en opgehaald. Het antwoord van deze actie is de nieuw toegevoegde status van het pakket.
Argumenten:
- pakket – Database ID van het pakket
Voorbeeldresultaat:
- Gelijk aan #pakket.status
pakket.status.malus
Markeert een pakket als niet opgehaald. Het pakket wordt gemarkeerd als verwerkt en niet opgehaald (zonder goede reden). Dit pakket telt wel tegen het totaal aantal pakketten dat een klant mag ophalen binnen een abonnement. Het antwoord van deze actie is de nieuw toegevoegde status van het pakket.
Argumenten:
- pakket – Database ID van het pakket
Voorbeeldresultaat:
- Gelijk aan #pakket.status
pakket.status.vervallen
Markeert een pakket als niet opgehaald. Het pakket wordt gemarkeerd als verwerkt en niet opgehaald (met goede reden). Dit pakket telt ook tegen het totaal aantal pakketten dat een klant mag ophalen binnen een abonnement. Het antwoord van deze actie is de nieuw toegevoegde status van het pakket.
Argumenten:
- pakket – Database ID van het pakket
Voorbeeldresultaat:
- Gelijk aan #pakket.status
pakket.status.datum
Wijzigt de ophaaldatum van een nog-niet verwerkt pakket. Wanneer het pakket reeds verwerkt is resulteert het veranderen van de datum in een fout. Het antwoord van deze actie is de nieuw toegevoegde status van het pakket.
Argumenten:
- pakket – Database ID van het pakket
- datum – De nieuwe ophaaldatum van het pakket (yyyy-mm-dd)
Voorbeeldresultaat:
- Gelijk aan #pakket.status
PakketGrootte API
pakketgrootte.list
Geeft een lijst van alle bestaande pakketgrootten.
Voorbeeldresultaat:
[ { "ID": 1, "code": "A", "min_gezinsgrootte": 1, "omschrijving": "1-persoonspakket" }, { "ID": 2, "code": "B", "min_gezinsgrootte": 2, "omschrijving": "Vanaf 2 personen" }, { "ID": 3, "code": "C", "min_gezinsgrootte": 5, "omschrijving": "Vanaf 5 personen" }, { "ID": 4, "code": "D", "min_gezinsgrootte": 8, "omschrijving": "Vanaf 8 personen" } ]
pakketgrootte.info
Geeft info over een enkele pakketgrootte
Argumenten:
- ID – Database ID van de pakketgrootte
Voorbeeldresultaat:
{ "ID": 1, "code": "A", "min_gezinsgrootte": 1, "omschrijving": "1-persoonspakket" }
pakketgrootte.create
Maakt een nieuwe pakketgrootte aan. Let op: wijzigingen in de pakketgrootte worden pas gebruikt bij de volgende planning van een pakket. Pakketten in de komende twee weken worden hierdoor niet aangepast.
Argumenten (POST):
- code – De code voor deze pakketgrootte (A, B, C, D etc)
- min_gezinsgrootte – De minimale gezinsgrootte die bij dit formaat hoort
- omschrijving – Omschrijving voor de pakketgrootte
Voorbeeldresultaat:
- Gelijk aan #pakketgrootte.info van de nieuwe pakketgrootte.
pakketgrootte.update
Past de waarden van een pakketgrootte aan. Let op: wijzigingen in de pakketgrootte worden pas gebruikt bij de volgende planning van een pakket. Pakketten in de komende twee weken worden hierdoor niet aangepast.
Argumenten (POST):
- pakketgrootte' – Database ID van de te wijzigen pakketgrootte
- code – De nieuwe code voor deze pakketgrootte (A, B, C, D etc)
- min_gezinsgrootte – De aangepaste minimale gezinsgrootte die bij dit formaat hoort
- omschrijving – Nieuwe omschrijving voor de pakketgrootte
Voorbeeldresultaat:
- Gelijk aan #pakketgrootte.info van de nieuwe pakketgrootte.
Locatie API
locatie.list
Geeft een volledige lijst van alle Voedselbank afhaallocaties.
Voorbeeldresultaat:
[ { "ID": 1, "naam": "Leeuwarden" }, { "ID": 2, "naam": "Boarnsterhim" }, { "ID": 3, "naam": "Stiens" }, { "ID": 4, "naam": "onbekend" } ]
locatie.info
Geeft informatie over een enkele afhaallocatie.
Argumenten:
- ID – Database ID van de locatie
Voorbeeldresultaat:
{ "ID": 1, "naam": "Leeuwarden" }
locatie.create
Maakt een nieuwe afhaallocatie aan.
Argumenten (POST):
- naam – Naam van de nieuw te maken locatie
Nog te realiseren
locatie.update
Update de informatie van een locatie
Nog te realiseren
locatie.kalender
Geeft een lijst van objecten met datums en pakketten / ophaalcycli die op die datum van toepassing zijn. Datums waar geen cyclus voor bestaat, of waar geen pakketten opgehaald worden, komen niet voor in de lijst. Waar aanwezig bevat ophaalCyclus de informatie over de ophaalcyclus die die dag plaatsvindt, pakketten bevat een lijst van database ID's voor van pakketten die voor die dag gepland staan.
Argumenten:
- locatie – Database ID van de locatie
- jaar – Jaar waarvoor de kalender gemaakt moet worden
- maand – Maand waarvoor de kalender gemaakt moet worden (numeriek)
Voorbeeldresultaat:
[ { "datum": "2012-12-04", "uitgifteCyclus": { "ID": 1, "actief": 1, "kleur": "DC1919", "locatie": { "ID": 1, "naam": "Leeuwarden" }, "omschrijving": "Leeuwarden dinsdag (rood)", "ophaaldag": 1 }, "verwerktePakketten": [ 69, 143, 209, 431, 508, 630, 754, 773, 795, 815, 833, 967, 1015, 1033, 1294, 1354, 1976, 1997, 2060, 2249, 2267, 2397, 2446, 2580, 2820, 3013, 3050, 3135, 3151, 3213, 3358, 3502, 3631, 3660, 3670, 3718, 3727, 3888 ] }, { "datum": "2012-12-07", "uitgifteCyclus": { "ID": 3, "actief": 1, "kleur": "3B4EDC", "locatie": { "ID": 1, "naam": "Leeuwarden" }, "omschrijving": "Leeuwarden vrijdag (blauw)", "ophaaldag": 4 }, "verwerktePakketten": [ 106, 124, 162, 256, 295, 410, 560, 670, 908, 951, 987, 1140, 1199, 1314, 1498, 1597, 1617, 1713, 1733, 1793, 1831, 1849, 1883, 2013, 2029, 2346, 2372, 2486, 2603, 2626, 2650, 2839, 2851, 2892, 2913, 2974, 2994, 3183, ] }, { "datum": "2012-12-11", "uitgifteCyclus": { "ID": 2, "actief": 1, "kleur": "E9E142", "locatie": { "ID": 1, "naam": "Leeuwarden" }, "omschrijving": "Leeuwarden dinsdag (geel)", "ophaaldag": 8 }, "verwerktePakketten": [ 90, 185, 229, 276, 318, 335, 360, 462, 613, 648, 695, 734, 853, 870, 1085, 1113, 1169, 1390, 1435, 1452, 1524, 1694, 1929, 2103, 2123, 2166, 2194, 2222, 2462, 2717, 2934, 2954, 3032, 3102, 3119, 3227, 3476, 3761, 3777, 3785, 3820, 3899, 3936, 3946, 3970, 3982, 3987, 3997, 4008, 4032, 4049, ] }, { "datum": "2012-12-14", "openPakketten": [ 49, 386, 447, 488, 537, 585, 715, 886, 935, 1059, 1192, 1250, 1275, 1332, 1408, 1468, 1644, 1757, 1774, 1814, 1868, 1946, 2045, 2139, 2295, 2739, 2759, 2779, 2800, 2872, 3345, 3386, 3399, 3412, 3425, 3438, 3451, 3578, ], "uitgifteCyclus": { "ID": 4, "actief": 1, "kleur": "42E94A", "locatie": { "ID": 1, "naam": "Leeuwarden" }, "omschrijving": "Leeuwarden vrijdag (groen)", "ophaaldag": 11 } }, { "datum": "2012-12-18", "openPakketten": [ 70, 144, 210, 432, 509, 631, 755, 774, 796, 816, 834, 968, 1016, 1034, 1295, 1355, 1961, 1977, 1998, 2061, 2250, 2268, 2398, 2447, 2581, 2821, 3014, 3051, 3136, 3152, 3359, 3503, 3632, 3661, 3671, 3728, 3942, 3975, ], "uitgifteCyclus": { "ID": 1, "actief": 1, "kleur": "DC1919", "locatie": { "ID": 1, "naam": "Leeuwarden" }, "omschrijving": "Leeuwarden dinsdag (rood)", "ophaaldag": 1 } } ]
locatie.pakketten
Geeft een lijst van alle of alleen de onverwerkte pakketten op een locatie. Pakketten worden als verwerkt beschouwd wanneer ze zijn opgehaald door de klant, of wanneer er is aangegeven dat een pakket niet is opgehaald.
Argumenten:
- locatie – Database ID van de locatie
- datum – (optioneel) geeft alleen pakketten aan die gepland zijn op opgehaald te worden op de gegeven datum
- alleen_onverwerkt – (optioneel) Wanneer dit '1' is, bevat het resultaat alleen onverwerkte pakketten. Bij '0', of wanneer dit argument wordt weggelaten bevat het resultaat alle voor die dag geplande pakketten.
Voorbeeldresultaat:
[ { "ID": 223, "dieten": [ { "ID": 2, "naam": "Halal", "stickerKleur": "groen" }, { "ID": 3, "naam": "Diabetisch", "stickerKleur": "rood" } ], "malus": 0, "medewerker": 1, "opgehaald": 0, "ophaaldatum": "2013-02-15", "pakket": { "ID": 114, "abonnement": 10, "pakketGrootte": { "ID": 1, "code": "A", "min_gezinsgrootte": 1, "omschrijving": "1-persoonspakket" }, "volgnummer": 6 }, "updateTijd": "2013-02-03 13:46:07", "verwerkt": 0 }, { "ID": 266, "dieten": [], "malus": 0, "medewerker": 1, "opgehaald": 0, "ophaaldatum": "2013-02-15", "pakket": { "ID": 136, "abonnement": 12, "pakketGrootte": { "ID": 1, "code": "A", "min_gezinsgrootte": 1, "omschrijving": "1-persoonspakket" }, "volgnummer": 8 }, "updateTijd": "2013-02-03 13:46:07", "verwerkt": 0 } ]
locatie.pakketten.vandaag
Vereenvoudiging van het API commando #locatie.pakketten.onverwerkt, waarbij de datum die van vandaag is. Alle argumenten en resultaten zijn hetzelfde, met uitzonder van de afwezigheid van het argument datum.
Uitgiftecyclus API
uitgifte.list
Geeft een lijst van uitgiftecycli die op de gegeven locatie plaatsvinden.
Voorbeeldresultaat:
[ { "ID": 1, "actief": 1, "locatie": 1, "omschrijving": "Leeuwarden dinsdag (rood)", "ophaaldag": 1 }, { "ID": 2, "actief": 1, "locatie": 1, "omschrijving": "Leeuwarden dinsdag (geel)", "ophaaldag": 8 }, { "ID": 5, "actief": 1, "locatie": 3, "omschrijving": "Stiens - Ferwerderadeel donderdag (blauw)", "ophaaldag": 3 }, { "ID": 6, "actief": 1, "locatie": 3, "omschrijving": "Stiens - Leeuwarderadeel donderdag (groen)", "ophaaldag": 10 }, ]
uitgifte.info
Geeft informatie over een specifieke uitgiftecyclus
Argumenten:
- ID – Database ID van de uitgiftecyclus
Voorbeeldresultaat:
{ "ID": 1, "actief": 1, "kleur": "DC1919", "locatie": { "ID": 1, "naam": "Leeuwarden" }, "omschrijving": "Leeuwarden dinsdag (rood)", "ophaaldag": 1 }
uitgifte.create
Maakt een nieuwe uitgiftecyclus aan. Deze wordt per direct beschikbaar in het systeem.
Argumenten (POST):
- locatie – Database ID van de locatie waar de uitgifte plaatsvindt
- datum – Voorbeelddatum van de uitgifte, de ophaaldag wordt hierop gebaseerd. Deze moet van het formaat yyyy-mm-dd zijn (zie ISO 8601)
- omschrijving – De naam/omschrijving van de cyclus
- kleur – De kleur welke gebruikt moet worden in de kalender om deze uitgiftedag te kleuren. Deze moet worden opgegeven als html/css kleurcode bestaande uit zes hexadecimale waarden. Het hekje is hierin optioneel.
Voorbeeldresultaat:
- Gelijk aan #uitgifte.info van nieuwe uitgiftecyclus
uitgifte.update
Update een specifieke uitgiftecyclus.
Argumenten (POST):
- locatie – Database ID van de locatie waar de uitgifte plaatsvindt
- datum – Voorbeelddatum van de uitgifte, de ophaaldag wordt hierop gebaseerd. Deze moet van het formaat yyyy-mm-dd zijn (zie ISO 8601)
- omschrijving – De naam/omschrijving van de cyclus
- kleur – De kleur welke gebruikt moet worden in de kalender om deze uitgiftedag te kleuren. Deze moet worden opgegeven als html/css kleurcode bestaande uit zes hexadecimale waarden. Het hekje is hierin optioneel.
- actief – Hiermee kan de uitgiftecyclus als inactief gemarkeerd worden. Deze is dan niet meer te kiezen als uitgiftecyclus voor nieuw aan te maken abonnementen. Bestaande abonnementen worden niet gewijzigd.
Voorbeeldresultaat:
- Gelijk aan #uitgifte.info van nieuwe uitgiftecyclus
uitgifte.datums
Geeft een lijst van de volgende 20 uitgiftedatums van de gegeven cyclus
Argumenten:
- uitgifte – Database ID van de uitgiftecyclus
Voorbeeldresultaat:
[ "2012-09-25", "2012-10-09", "2012-10-23", "2012-11-06", "2012-11-20", "2012-12-04", "2012-12-18", "2013-01-01", "2013-01-15", "2013-01-29", "2013-02-12", "2013-02-26", "2013-03-12", "2013-03-26", "2013-04-09", "2013-04-23", "2013-05-07", "2013-05-21", "2013-06-04", "2013-06-18" ]
uitgifte.abonnementen
Eenzelfde overzicht als #uitgifte.list maar met een overzicht van abonnementen dat op dit moment actief is per uitgiftecyclus.
Voorbeeldresultaat:
[ { "ID": 1, "abonnementen": 57, "actief": 1, "kleur": "DC1919", "locatie": { "ID": 1, "naam": "Leeuwarden" }, "omschrijving": "Leeuwarden dinsdag (rood)", "ophaaldag": 1 }, { "ID": 2, "abonnementen": 52, "actief": 1, "kleur": "E9E142", "locatie": { "ID": 1, "naam": "Leeuwarden" }, "omschrijving": "Leeuwarden dinsdag (geel)", "ophaaldag": 8 } ]
Medewerkers API
medewerker.list
Geeft de volledige lijst van medewerkers van de Voedselbank terug.
Voorbeeldresultaat:
[ { "ID": 1, "actief": 1, "emailAdres": "beheer@voedselbankleeuwarden.nl", "login": "admin", "naam": "Systeem", "rol": 1 }, { "ID": 2, "actief": 1, "emailAdres": "vbl@voedselbankleeuwarden.nl", "login": "vbl", "naam": "Voedselbank observant", "rol": 2 } ]
medewerker.info
Geeft informatie over een enkele medewerker. Deze wordt opgehaald aan de hand van het database ID.
Argumenten:
- ID – Database ID van de werknemer.
Voorbeeldresultaat:
{ "ID": 1, "actief": 1, "emailAdres": "beheer@voedselbankleeuwarden.nl", "login": "admin", "naam": "Systeem", "rol": 1 }
medewerker.create
Maakt een nieuwe medewerker aan in het systeem.
Argumenten (POST):
- naam – Volledige naam van de gebruiker
- login – Loginnaam van de gebruiker
- emailAdres – Emailadres van de gebruiker
- rol – Database ID van de rol van de gebruiker
- wachtwoord – Wachtwoord voor de gebruiker
Voorbeeldresultaat:
- Gelijk aan #medewerker.info van nieuwe medewerker
medewerker.update
Past informatie van een bestaande medewerker aan.
Argumenten (POST):
- werknemer – Database ID van de werknemer.
- naam – (optioneel) Aangepaste naam voor de gebruiker
- login – (optioneel) Aangepaste login voor de gebruiker
- emailAdres – (optioneel) Aangepast emailadres voor de gebruiker
- rol – (optioneel) Nieuwe gebruikersrol voor de gebruiker
- wachtwoord – (optioneel) Nieuw wachtwoord voor de gebruiker
- actief – (optioneel) Actief-status van werknemers, 1 voor actief, 0 voor inactief.
Voorbeeldresultaat:
- Gelijk aan #medewerker.info van de aangepaste medewerker
medewerker.verwijderen
Verwijdert een medewerker uit het systeem. Deze functie kent als resultaat het database ID van de verwijderde medewerker.
Argumenten (POST):
- werknemer – Database ID van de werknemer.
Gebruikersrollen API
rol.list
Geeft de volledige lijst van rollen in het systeem.
Voorbeeldresultaat:
[ { "ID": 1, "naam": "Beheerder", "omschrijving": "Heeft alle rechten in het systeem" }, { "ID": 2, "naam": "Observant", "omschrijving": "Mag alleen kijken in het systeem (en notities invoeren)." } ]
rol.info
Geeft informatie over een enkele rol
Argumenten:
- ID – Database ID van de werknemer.
Voorbeeldresultaat:
{ "ID": 1, "naam": "Beheerder", "omschrijving": "Heeft alle rechten in het systeem" }
Statistiek API
stats.abonnementsverdeling
Geeft een beeld van de verdeling van lopende abonnementen over locaties en daarbinnen de verdeling in pakketgrootte.
Voorbeeldresultaat:
[ { "locationName": "Stiens", "packageSizes": [ { "amount": 7, "name": "A" }, { "amount": 12, "name": "B" } ] }, { "locationName": "Boarnsterhim", "packageSizes": [ { "amount": 1, "name": "D" } ] } ]
stats.aflopendeAbonnementen
Een overzicht van abonnementen die in de komende 3 maanden aflopen, gegroepeerd per week.
Voorbeeldresultaat:
{ "7": [ { "ID": 1, "datumEinde": "2014-02-20", "datumStart": "2006-01-03", "dieetAspect": [], "klant": 9, "opmerking": "", "pakketAantal": 14, "uitgifteCyclus": 7, } } ], "10": [ { "ID": 2, "datumEinde": "2014-03-14", "datumStart": "2012-11-27", "dieetAspect": [], "klant": 38, "opmerking": "", "pakketAantal": 14, "uitgifteCyclus": 7, } ] }
stats.abonnementenPerMaand
Een overzicht van het aantal actieve abonnementen (~=klanten) in de afgelopen 12 maanden. De uitvoer begint bij deze maand en gaat daarna 11 maanden het verleden in.
Voorbeeldresultaat:
[ { "abonnementen": { "Boarnsterhim": 21, "Leeuwarden": 266, "Stiens": 27, "onbekend": 2 }, "periode": [ 2014, 2 ] }, { "abonnementen": { "Boarnsterhim": 21, "Leeuwarden": 266, "Stiens": 27, "onbekend": 2 }, "periode": [ 2014, 1 ] } ]