You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

1. Aanmaken werkplek

Om een werkplek aan te maken ga je naar het volgende endpoint:

url: api/werkplek-aanmaken
method: POST


De volgende gegevens moeten worden mee gestuurd in de POST request als JSON:

{
"locatieNaam":"Hoofdkantoor",
"werkplekNaam":"Flexwerkplek B",
"soort":"Flex",
"capaciteit"10
}

Variabele Type
locatieNaam String
werkplekNaam

String

soort

String

capaciteit int


De response terug zal zijn:

Situatie Status code
Werkplek is toegevoegd 200
Locatie bestaat niet 404
Werkplek bestaat al 409

2. Authenticatie

2.1. Inloggen

Om in te loggen is het nodig om het volgende endpoint te benaderen:

url: api/login 
method: POST


Vervolgens moet deze informatie mee worden gestuurd in de body van de request om correcte gegevens terug te krijgen. Gebeurt dit niet dan zal er een fout melding komen.

{
    "username" : "NielsvdHoeven",
    "password" : "wachtwoord",
    "remember" : true
}


Wanneer de meegestuurde body klopt met wat er verwacht wordt zal er de volgende response gestuurd worden.

{
    "token": "2af80fdb-7dda-4f9c-b24a-16342f74fcc0",
    "expires": 1650627217106
}

Hierin is de token de manier van verifieren voor komende request die naar de backend gaan komen. De expires is een epoch waarmee in de front end extra uitgerekend kan worden of de token bijna expired is. Dit wordt ook in de backend gecheckt in een verifyToken() methode.


2.2. Gebruikersgegevens ophalen

Voor het ophalen van gebruikersgegevens aan de hand van een bestaande token wordt het volgende endpoint benadert:

url: api/login/me
method: GET


Het enige wat er hierbij mee gestuurd wordt is een token in de header van de request onder de header 'Authorization'. Deze token is een UUID token dus die zal er ongeveer zo uit moeten zien: '2af80fdb-7dda-4f9c-b24a-16342f74fcc0'

Wanneer de token bestaat en nog geldig is zal de volgende response teruggestuurd worden:

{
    "werknemerid": 11,
    "voornaam": "Niels",
    "achternaam": "van der Hoeven",
    "gebruikersnaam": "NielsvdHoeven",
    "wachtwoord": null,
    "locatienaam": "Thuis werknemer 1",
    "token": null,
"permissie": 2
"cirkel": 1 }

Hierin staan alle gegevens van de gebruiker behalve het wachtwoord en de desbetreffende token

3. Verwijderen declaratie

Om een declaratie te verwijderen ga je naar het volgende endpoint:

url: api/declaratie/declaratie-verwijderen/{declaratieId}
method: DELETE

Ook word de token gebruikt om de gebruiker te indentificeren.

Variabele

Type

declaratieId int
token String


De response terug zal zijn:

Situatie

Status code

Declaratie is verwijderd 200
Er is iets fout gegaan 500

4. Ophalen van het flexwerkplekken overzicht voor een week op een locatie


url:    		/api/werkplekoverzicht/:jaar/:week/:locatie 
method: 	       GET


:jaar - het jaar waarvoor een overzicht wordt opgehaald (moet numeriek zijn)

:week - de week waarvoor een overzicht wordt opgehaald (moet numeriek zijn)

:locatie - de naam van de locatie waarvoor een overzicht wordt opgehaald



Ophalen van het werkplekoverzicht resulteert momenteel in 7 dagen, met bij iedere dag een overzicht van de werknemers per werkplek. Alle werknemers die op een werkdag nog niet bij een plek staan, komen onder 'Thuiswerkplek' te staan.

Onderstaand is een voorbeeld gegeven aan de hand van de eerste 2 dagen;

{
    "werkplekOverzicht": [
        {
            "datum": "2022-05-02",
            "werkplekOverzichtVoorDatum": [
                {
                    "werkplek": {
                        "werkplekNaam": "voorbeeld plek",
                        "soort": "Flex",
                        "capaciteit": 15
                    },
                    "werknemers": []
                },
                {
                    "werkplek": {
                        "werkplekNaam": "andere voorbeeld plek",
                        "soort": "Flex",
                        "capaciteit": 7
                    },
                    "werknemers": [
                        {
                            "werknemerId": 2,
                            "voornaam": "Tobias",
                            "achternaam": "Feld"
                        }
                    ]
                },
{ "werkplek": { "werkplekNaam": "Thuiswerkplek", "soort": "Thuis", "capaciteit": 0 }, "werknemers": [ { "werknemerId": 3, "voornaam": "Gino", "achternaam": "Janssen" } ] }             ] }, { "datum": "2022-05-03", "werkplekOverzichtVoorDatum": [ { "werkplek": { "werkplekNaam": "voorbeeld plek", "soort": "Flex", "capaciteit": 15 }, "werknemers": [] }, { "werkplek": { "werkplekNaam": "andere voorbeeld plek", "soort": "Flex", "capaciteit": 7 }, "werknemers": [] },
{ "werkplek": { "werkplekNaam": "Thuiswerkplek", "soort": "Thuis", "capaciteit": 0 }, "werknemers": [ { "werknemerId": 3, "voornaam": "Gino", "achternaam": "Janssen" } ] }             ] } ] }

5. Handmatig opgeven van extra reiskosten tussen een begin- en eindpunt


ReiskostDeclaratie

locatieA

locatieB

opmerking

type

datum

bijlage (optioneel, max 5 mb)

bedrag (optioneel)



url:                     /api/declareer-reis/

method:                  POST


ReiskostDeclaratieMetMeters

aantalMeters

opmerking

type

datum

bijlage (optioneel, max 5 mb)

bedrag (optioneel)


url:    		/api/declareer-reis-meters/
method: 	       POST


Voor de handmatige reiskosten declaratie zijn er twee mogelijkheden. Een werknemer kan kiezen om de beginlocatie, de eindlocatie en de datum op te geven. Een werknemer kan er ook voor kiezen om i.p.v. de locaties, het aantal kilometers op te geven en het doel van de reis (zodat dit nog beoordeeld kan worden). doel van de reis komt momenteel in de opmerking te staan.


Bijlage bij de declaratie is optioneel. Dit kan bijvoorbeeld gebruikt worden om een treinreis aan te tonen. Als een bedrag wordt opgegeven wordt dit bedrag bij de declaratie gezet. Als bedrag null is of niet groter dan 0 wordt het bedrag uitgerekend op basis van de afstand en het type reis.

6. Doorgeven beschikbaarheid

url:    /beschikbaarheid/:locatie/:weeknummer
method: POST

Het is de bedoeling dat op basis van de onderstaande JSON de data op de juiste plek komt, NOG TE BEPALEN = DE RESPONSE.

{
    "user": "connor newton",
    "beschikbaarheid": [
        { 
            "maandag": "thuiswerkplek",
            "dinsdag": "algemeneWerkplek",
            "woensdag": "thuiswerkplek",
            "donderdag": "focusWerkplek",
            "vrijdag": "thuiswerkplek"
        }
    ]
}

7. Ophalen van beschikbare werkplekken

url:    		/api/beschikbaarheidplekken/:locatie/:weeknummer 
method: 	       GET

Op de plekker waar een getal staat, moet de aantal beschikbare plekken komen te staan.

{
    "maandag": [
        {
            "flexwerkplek": 0,
            "algemeneWerkplek": 0,
            "datum": "16-07-2022"
        }
    ],
    "dinsdag": [
        {
            "flexwerkplek": 0,
            "algemeneWerkplek": 0,
            "datum": "16-07-2022"
        }
    ],
    "woensdag": [
        {
            "flexwerkplek": 0,
            "algemeneWerkplek": 0,
            "datum": "16-07-2022"
        }
    ],
    "donderdag": [
        {
            "flexwerkplek": 0,
            "algemeneWerkplek": 0,
            "datum": "16-07-09"
        }
    ],
    "vrijdag": [
        {
            "flexwerkplek": 0,
            "algemeneWerkplek": 0,
            "datum": "16-07-2022"
        }
    ]
}

8. Aanmaken bedrijfslocatie


url : /api/locaties/maak-bedrijfslocatie-aan

method: POST


Hierbij wordt er een body verwacht met de volgende gegevens:


{
    "locatieNaam" : "HoofdKantoor 4",
    "adres" : "Professor molkenboerstraat 3",
    "plaatsnaam" : "Nijmegen"
}


Er wordt ook een bijpassende message meegegeven wanneer de request wordt verstuurd.

9. Ophalen declaratieoverzicht


url: api/declaratie/overzicht/{jaar}/{maand}

method: GET

Hierin zijn de jaar en maand variabelen beide een jaarnummer en maandnummer dus bijvoorbeeld 2022 voor het jaar en 5 voor de maand.

Bij een succesvolle request wordt er een volledig overzicht gegenereerd voor 1 werknemer die geverifieerd en opgehaald wordt door een token. Dat overzicht ziet er als volgt uit:

{
    "declaratieOverzichtPerDatum": [
        {
            "datum""2022-05-01",
            "declaraties": []
        },
        {
            "datum""2022-05-02",
            "declaraties": []
        },
        {
            "datum""2022-05-03",
            "declaraties": []
        },
        {
            "datum""2022-05-04",
            "declaraties": []
        },
        {
            "datum""2022-05-05",
            "declaraties": []
        },
        {
            "datum""2022-05-06",
            "declaraties": []
        },
        {
            "datum""2022-05-07",
            "declaraties": []
        },
        {
            "datum""2022-05-08",
            "declaraties": []
        },
        {
            "datum""2022-05-09",
            "declaraties": []
        },
        {
            "datum""2022-05-10",
            "declaraties": []
        },
        {
            "datum""2022-05-11",
            "declaraties": []
        },
        {
            "datum""2022-05-12",
            "declaraties": []
        },
        {
            "datum""2022-05-13",
            "declaraties": [
                {
                    "datum""2022-05-13T00:00:00.000+00:00",
                    "omschrijving""Reizen van huis naar werk en terug",
                    "type""woon-werk",
                    "waarde""13.65"
                }
            ]
        },
        {
            "datum""2022-05-14",
            "declaraties": [
                {
                    "datum""2022-05-14T00:00:00.000+00:00",
                    "omschrijving""Reizen van huis naar werk en terug",
                    "type""woon-werk",
                    "waarde""13.65"
                }
            ]
        },
        {
            "datum""2022-05-15",
            "declaraties": [
                {
                    "datum""2022-05-15T00:00:00.000+00:00",
                    "omschrijving""Reizen van huis naar werk en terug",
                    "type""woon-werk",
                    "waarde""13.65"
                }
            ]
        },
        {
            "datum""2022-05-16",
            "declaraties": []
        },
        {
            "datum""2022-05-17",
            "declaraties": []
        },
        {
            "datum""2022-05-18",
            "declaraties": []
        },
        {
            "datum""2022-05-19",
            "declaraties": []
        },
        {
            "datum""2022-05-20",
            "declaraties": []
        },
        {
            "datum""2022-05-21",
            "declaraties": []
        },
        {
            "datum""2022-05-22",
            "declaraties": []
        },
        {
            "datum""2022-05-23",
            "declaraties": []
        },
        {
            "datum""2022-05-24",
            "declaraties": []
        },
        {
            "datum""2022-05-25",
            "declaraties": []
        },
        {
            "datum""2022-05-26",
            "declaraties": []
        },
        {
            "datum""2022-05-27",
            "declaraties": []
        },
        {
            "datum""2022-05-28",
            "declaraties": []
        },
        {
            "datum""2022-05-29",
            "declaraties": []
        },
        {
            "datum""2022-05-30",
            "declaraties": []
        }
    ]
}


Voor het opvragen van de declaratie van een bepaalde werknemer zonder dat diegene is ingelogd kan het volgende endpoint gebruikt worden 

url: api/declaratie/overzicht/{jaar}/{maand}/{medewerkerid}

method: GET


Hierbij zal dezelfde soort structuur aan informatie getoond worden zoals hierboven.





10. Ophalen lijst locaties


url: /api/locaties/ method: GET


Successvol resultaat:

```
[
{
"locatieNaam": "<Naam locatie hier>",
"adres": "<adres hier>",
"plaatsnaam": "<plaatsnaam hier>"
"soort" : "<soort hier>"
}
]
```

11. Ophalen maanddeclaraties alle medewerkers


url : api/declaratie/overzichtmedewerkers/{jaar}/{maand}

method: GET


Hierin is {jaar} het jaar nummer en {maand} het maandnummer. 

De resultaten van het endpoint komen er als volgt uit te zien.


{
    "maandnr"5,
    "maandDeclaratiesPerWerknemers": [
        {
            "werknemerid"1,
            "voornaam""Gino",
            "achternaam""Janssen",
            "maandDeclaraties": [
                {

                    "declaratieId": 1,
                    "type""thuis",
                    "totaalbedrag"4.0
                },
                {

                    "declaratieId": 1,
                    "type""woon-werk",
                    "totaalbedrag"13.65
                }
            ]
        },
        {
            "werknemerid"11,
            "voornaam""Niels",
            "achternaam""van der Hoeven",
            "maandDeclaraties": [
                {

                    "declaratieId": 1,
                    "type""woon-werk",
                    "totaalbedrag"40.95
                }
            ]
        }
    ]
}

12. Reserveren flexwerkplek


url: /api/reserveerwerkplek/:datum/:locatie/:werkpleknaam method: POST



:datum - datum voor de reservering in het formaat yyyy-MM-dd

:locatie - naam van de locatie waarop een plek wordt gereserveerd

:werkpleknaam - naam van de werkplek die wordt gereserveerd


Aan de hand van deze URL, wordt voor de ingelogde gebruiker een werkplek gereserveerd op de aangegeven datum, locatie en werkplek.

Hierbij wordt voor de zekerheid gechecked of;

  • de locatie bestaat
  • De datum geldig is, en niet vóór vandaag valt
  • de werkplek bestaat op de aangegeven locatie
  • de plek nog niet door deze gebruiker is gereserveerd
  • de plek niet vol zit

Deze URL produceert geen json, het retourneert alleen een http status. 




No files shared here yet.

  • No labels