Electronic Personnel Attendance System

Documenti pubblici, digitali.

8.17. Gestione dei buoni pasto via REST

Di seguito una breve spiegazione dell'API REST relativa alle operazioni sui buoni pasto dei dipendenti di una sede. Ogni sede potrà utilizzare l'API, accedendo con un utente apposito opportunamente configurato, ai soli dati della propria sede.

8.17.1. Permessi

Per poter accedere a questa interfaccia REST è necessario utilizzare un utente che abbia il ruolo di Gestore buoni pasto per la sede su cui si vuole effettuare le operazioni (lo stesso ruolo utilizzato per la gestione delle persone e dei gruppi).

Su https://epas-demo.devel.iit.cnr.it potete per esempio creare un nuovo utente associato alla vostra sede tipo istituto_xxx_mealtickets_manager (cambiate il nome o in futuro andrà in conflitto con quello di altri istituti) ed una volta creato l'utente assegnateli il ruolo Gestore buoni pasto.

L'autenticazione da utilizzare è come per gli altri servizi REST quella Basic Auth.

8.17.2. Inserimento di un blocchetto di buoni pasto per Persona

Per effettuare l'inserimento di un blocchetto di buoni pasto per singola persona è necessario effettuare una HTTP POST all'endpoint /mealtickets/createByPerson. La POST deve contenere nel body un json con i campi del bloccheto dei buoni pasto che sono obbligatori:

  • codeBlock: è un numero obbligatorio. indica il codice del blocchetto dei buoni pasto da inserire nel sistema.

  • blockType, è una stringa obbligatoria papery oppure electronic indica la tipologia del blocchetto da inserire.

  • first: è un intero obbligatorio. Indica il numero del primo buono pasto.

  • last: è un intero obbligatorio. Indica il numero dell'ultimo buono pasto.

  • expiredDate: è una data obbligatoria. indica la data di scadenza del blocchetto di buoni pasto.

  • deliveryDate: è una data obbligatoria. indica la data in cui è stato consegnato il blocchetto di buoni pasto.

  • adminId: è l'id in ePAS dell'amministrativo che ha consegnato i buoni pasto

Inoltre è necessario specificare nel json uno o più dei seguenti campi che servono ad identificare la persona a cui assegnare il blocchetto dei buoni pasto:

  • personId: numero che rappresenta l'Id associato alla persona a cui aggiungere il blocchetto dei buoni pasto.

  • fullname: stringa che rappresenta il nome della persona a cui aggiungere il blocchetto dei buoni pasto.

  • fiscalCode: stringa che rappresenta il codice fiscale della persona a cui aggiungere il blocchetto dei buoni pasto.

  • email: stringa che rappresenta l'email della persona a cui aggiungere il blocchetto dei buoni pasto.

  • number: stringa che rappresenta la matricola della persona a cui aggiungere il blocchetto dei buoni pasto.

  • eppn: stringa che rappresenta eppn della persona a cui aggiungere il blocchetto dei buoni pasto.

  • personPerseoId: numero che rappresenta il perseoId della persona a cui aggiungere il blocchetto dei buoni pasto.

Un esempio è il seguente:

$ http -a istituto_xxx_mealtickets_manager
    POST https://epas-demo.devel.iit.cnr.it/rest/v3/mealtickets/createByPerson
    personId=4605 codeBlock=5789 blockType=papery first=1 last=10 expiredDate=2022-05-31 deliveryDate=2022-04-01 adminId=123

Il metodo restituisce una risposta vuota con uno dei seguenti codici HTTP di risposta:

  • 200: blocchetto dei buoni pasto inserito correttamente

  • 400: body delle richiesta HTTP non presente

8.17.3. Inserimento di un blocchetto di buoni pasto con contractId

Per effettuare l'inserimento di un blocchetto di buoni pasto avendo il contractId è necessario effettuare una HTTP POST all'endpoint /mealtickets/create. La POST deve contenere nel body un json con i campi del bloccheto dei buoni pasto che sono:

  • contractId: è un numero obbligatorio. indica l'id del contratto associato a una persona.

  • codeBlock: è un numero obbligatorio. indica il codice del blocchetto dei buoni pasto da inserire nel sistema.

  • blockType, è una stringa obbligatoria papery oppure electronic indica la tipologia del blocchetto da inserire.

  • first: è un intero obbligatorio. Indica il numero del primo buono pasto.

  • last: è un intero obbligatorio. Indica il numero dell'ultimo buono pasto.

  • expiredDate: è una data obbligatoria. indica la data di scadenza del blocchetto di buoni pasto.

  • deliveryDate: è una data obbligatoria. indica la data in cui è stato consegnato il blocchetto di buoni pasto.

  • adminId: è l'id in ePAS dell'amministrativo che ha consegnato i buoni pasto

Un esempio è il seguente:

$ http -a istituto_xxx_mealtickets_manager
    POST https://epas-demo.devel.iit.cnr.it/rest/v3/mealtickets/create
    contractId=1017 codeBlock=5789 blockType=papery first=1 last=10 expiredDate=2022-05-31 deliveryDate=2022-04-01  adminId=123

Il metodo restituisce una risposta vuota con uno dei seguenti codici HTTP di risposta:

  • 200: blocchetto dei buoni pasto inserito correttamente

  • 400: body delle richiesta HTTP non presente

8.17.4. MealTicket List

La lista di tutti i blocchetti dei buoni pasto associati ad una persona (contratto) è possibile ottenerla una HTTP GET all'indirizzo /rest/v3/mealtickets/list. La GET deve avere come parametri obbligatori i seguenti campi:

  • contractId: è un numero obbligatorio. indica l'id del contratto associato a una persona.

$ http -a istituto_xxx_mealtickets_manager
    GET https://epas-demo.devel.iit.cnr.it/rest/v3/mealtickets/list contractId==1017

La risposta sarà del tipo

[
    {
        "adminId": 111,
        "blockType": "papery",
        "codeBlock": "5789",
        "contractId": 1017
        "first": 6,
        "last": 10,
        "adminId": 123,
        "person": {
            "email": "kinzica.desismondi@iit.cnr.it",
            "eppn": "kinzica.desismondi@cnr.it",
            "fiscalCode": null,
            "fullname": "De Sismondi Kinzica",
            "id": 966,
            "number": "9535"
        }
    },
    {
        "blockType": "papery",
        "codeBlock": "123456",
        "first": 1,
        "last": 22,
        "person": {
            "email": "kinzica.desismondi@iit.cnr.it",
            "eppn": "kinzica.desismondi@cnr.it",
            "fiscalCode": null,
            "fullname": "De Sismondi Kinzica",
            "id": 966,
            "number": "9535"
        }
    }
]

8.17.5. MealTicket Show

La visualizzazione dei dati di un blocchetto di buoni pasto è tramite una HTTP GET all'indirizzo /rest/v3/mealtickets/show.

Per individuare il blocchetto la GET deve avere come parametri obbligatori i seguenti campi:

  • contractId: è un numero obbligatorio. indica l'id del contratto associato a una persona.

  • codeBlock: è un numero obbligatorio. indica il codice del blocchetto dei buoni pasto da inserire nel sistema.

$ http -a istituto_xxx_mealtickets_manager
    GET https://epas-demo.devel.iit.cnr.it/rest/v3/mealtickets/show contractId==1017 codeBlock==123456

La risposta sarà del tipo

[
    {
        "blockType": "papery",
        "codeBlock": "123456",
        "first": 1,
        "last": 22,
        "person": {
            "email": "kinzica.desismondi@iit.cnr.it",
            "eppn": "kinzica.desismondi@cnr.it",
            "fiscalCode": null,
            "fullname": "De Sismondi Kinzica",
            "id": 966,
            "number": "9535"
        }
    }
]

8.17.6. MealTicket Delete

L'eliminazione di un blocchetto di buoni pasto dal contratto di un utente o di alcuni buoni pasto ad esso accosiati, è possibile tramite una HTTP DELETE all'indirizzo /rest/v3/mealtickets/delete.

Per individuare il blocchetto dei buoni pasto da eliminare è necessario utilizzare i seguenti campi che sono parametri obbligatori:

  • contractId: è un numero obbligatorio. indica l'id del contratto associato a una persona.

  • codeBlock: è un numero obbligatorio. indica il codice del blocchetto dei buoni pasto da inserire nel sistema.

  • first: è un intero obbligatorio. Indica il numero del primo buono pasto.

  • last: è un intero obbligatorio. Indica il numero dell'ultimo buono pasto.

$ http -a istituto_xxx_mealtickets_manager
    DELETE https://epas-demo.devel.iit.cnr.it/rest/v3/mealtickets/delete
    contractId==1017 codeBlock==5789 first==1 last==22

8.17.7. MealTicket Convert

E' possibile modificare la tipologia di un blocchetto di buoni pasto (da cartaceo a elettronico e viceversa) tramite una HTTP GET all'indirizzo /rest/v3/mealtickets/convert.

Per individuare il blocchetto la GET deve avere come parametri obbligatori i seguenti campi:

  • contractId: è un numero obbligatorio. indica l'id del contratto associato a una persona.

  • codeBlock: è un numero obbligatorio. indica il codice del blocchetto dei buoni pasto da inserire nel sistema.

$ http -a istituto_xxx_mealtickets_manager
    GET https://epas-demo.devel.iit.cnr.it/rest/v3/mealtickets/convert contractId==1017 codeBlock==123456

8.17.8. MealTicket returnBlock

E' possibile effettuare la riconsegna del blocchetto di buoni pasto (intero o parte di esso) alla sede centrale tramite una HTTP GET all'indirizzo /rest/v3/mealtickets/returnBlock.

Per individuare il blocchetto la GET deve avere come parametri obbligatori i seguenti campi:

  • contractId: è un numero obbligatorio. indica l'id del contratto associato a una persona.

  • codeBlock: è un numero obbligatorio. indica il codice del blocchetto dei buoni pasto da inserire nel sistema.

  • first: è un intero obbligatorio. Indica il numero del primo buono pasto.

  • last: è un intero obbligatorio. Indica il numero dell'ultimo buono pasto.

$ http -a istituto_xxx_mealtickets_manager
    GET https://epas-demo.devel.iit.cnr.it/rest/v3/mealtickets/returnBlock
    contractId==1017 codeBlock==5789 first==1 last==5