8.15. Consultazione e Gestione dei badge dei dipendenti via REST¶
Di seguito una breve spiegazione dell'API REST relativa alla consultazione e gestione dei badge che comprende i metodi per la visualizzazione, la creazione, la modifica e la cancellazione dei badge. I badge sono legati ad una sorgente timbratura (denominata come BadgeReader o lettore badge) ed anche al gruppo badge (citato anche come BadgeSystem). Le informazioni relative alle sorgenti timbrature ed ai gruppi badge della propria sede sono fondamentali quando si va a creare un nuovo badge, per questo motivo nell'interfaccia REST sono state inserite le funzionalità per mostrare i BagdeReader e BagdeSystem.
8.15.1. Permessi¶
Per poter accedere a queste interfaccie REST è necessario utilizzare un utente che abbia il ruolo di Gestore badge 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_badge_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 Badge.
L'autenticazione da utilizzare è come per gli altri servizi REST quella Basic Auth.
8.15.2. BadgeReader byOffice¶
La lista delle sorgenti timbrature (BadgeReader) di una sede è fruibile tramite una HTTP GET all'indirizzo /rest/v3/badgeReaders/byOffice.
- Per individuare l'ufficio è possibile utilizzare una delle due chiavi candidate presenti sugli uffici:
id, codeId (corrisponde al sede id di Attestati).
$ http -a istituto_xxx_badge_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v3/badgeReaders/byOffice
id==1
[
{
"badgeSystems": [
{
"enabled": true,
"id": 1,
"name": "Badge IIT Pisa",
"office": {
"code": "044000",
"codeId": "223400",
"id": 1,
"name": "IIT - Pisa",
"updatedAt": "2021-02-08T09:00:50.648975"
}
}
],
"code": "pisa-xxx-yyy",
"description": null,
"enabled": true,
"id": 1,
"location": "Area della Ricerca di Pisa",
"username": "pisa-xxx-yyy"
},
{
"badgeSystems": [
{
"enabled": true,
"id": 2,
"name": "Badge IIT Cosenza",
"office": {
"code": "044001",
"codeId": "223410",
"id": 2,
"name": "IIT - UOS Cosenza",
"updatedAt": "2021-02-08T09:00:50.648975"
}
}
],
"code": "cosenza-xxx-yyy",
"description": null,
"enabled": true,
"id": 2,
"location": "Sede di Cosenza",
"username": "cosenza-xxx-yyy"
}
]
8.15.3. BadgeReader show¶
Per ogni BadgeReader è possibile avere le informazioni ad esso collegate tramite una HTTP GET all'indirizzo /rest/v3/badgeReaders/show.
Per individuare il BadgeReader è necessario utilizzare il suo id.
$ http -a istituto_xxx_badge_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v3/badgeReaders/show id==1
{
"badgeSystems": [
{
"badgeReaders": [
{
"code": "pisa-xxx-yyy",
"enabled": true,
"id": 1,
"username": "pisa-xxx-yyy"
}
],
"description": "",
"enabled": true,
"id": 1,
"name": "Badge IIT Pisa",
"office": {
"code": "044000",
"codeId": "223400",
"id": 1,
"name": "IIT - Pisa",
"updatedAt": "2021-02-08T09:00:50.648975"
}
}
],
"badges": [
{
"code": "1234111",
"id": 99,
"person": {
"email": "galileo.galileo@cnr.it",
"eppn": "galileo.galilei@cnr.it",
"fiscalCode": "GLLGLL74P10G702B",
"fullname": "Gallilei Gallileo",
"id": 1234,
"number": "9802"
}
},
{
"code": "1235111",
"id": 140,
"person": {
"email": "leonardo.fibonacci@cnr.it",
"eppn": "leonardo.fibonacci@cnr.it",
"fiscalCode": "FBCLNR74P10G702B",
"fullname": "Fibonacci Leonardo",
"id": 12345,
"number": "9801"
}
}],
"code": "pisa-xxx-yyy",
"description": null,
"enabled": true,
"id": 1,
"location": "Area della Ricerca di Pisa",
"username": "pisa-xxx-yyy"
}
8.15.4. BadgeSystem byOffice¶
La lista dei gruppi badge (BadgeSystem) di una sede è fruibile tramite una HTTP GET all'indirizzo /rest/v3/badgeSystems/byOffice.
- Per individuare l'ufficio è possibile utilizzare una delle due chiavi candidate presenti sugli uffici:
id, codeId (corrisponde al sede id di Attestati).
$ http -a istituto_xxx_badge_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v3/badgeSystems/byOffice
id==1
[
{
"badgeReaders": [
{
"code": "pisa-xxx-yyy",
"enabled": true,
"id": 1,
"username": "pisa-xxx-yyy"
}
],
"description": "Gruppo Badge sede di Pisa",
"enabled": true,
"id": 1,
"name": "Badge IIT Pisa",
"office": {
"code": "044000",
"codeId": "223400",
"id": 1,
"name": "IIT - Pisa",
"updatedAt": "2021-02-08T09:00:50.648975"
}
}
]
8.15.5. BadgeSystem show¶
Per ogni BadgeSystem è possibile avere le informazioni ad esso collegate tramite una HTTP GET all'indirizzo /rest/v3/badgesystems/show.
Per individuare il BadgeSystem è necessario utilizzare il suo id.
$ http -a istituto_xxx_badge_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v3/badgeSystems/show id==1
8.15.6. Badge byOffice¶
La lista di tutti i badge associati ad una sede (cioè quelli associati a tutti gruppi badge della sede) è possibile ottenerla una HTTP GET all'indirizzo /rest/v3/badges/byOffice.
- Per individuare l'ufficio è possibile utilizzare una delle due chiavi candidate presenti sugli uffici:
id, codeId (corrisponde al sede id di Attestati).
$ http -a istituto_xxx_badge_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v3/badges/byOffice codeId==223400
8.15.7. Badge byBadgeSystem¶
La lista di tutti i badge associati ad un gruppo è possibile ottenerla una HTTP GET all'indirizzo /rest/v3/badges/byBadgeSystem.
Per individuare il BadgeSystem è necessario utilizzare il suo id.
$ http -a istituto_xxx_badge_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v3/badges/byBadgeSystem codeId==223400
8.15.8. Badge byBadgeSystem¶
La lista di tutti i badge associati ad una persone è possibile ottenerla una HTTP GET all'indirizzo /rest/v3/badges/byPerson.
Per individuare la persona da aggiornare si utilizzano gli stessi parametri previsti per la show:
id, email, eppn, perseoPersonId, fiscalCode, number.
$ http -a istituto_xxx_badge_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v3/badges/byPerson eppn==galileo.galilei@cnr.it
[
{
"badgeReaderId": 1,
"badgeSystemId": 1,
"code": "9802",
"id": 161,
"person": {
"email": "galileo.galilei@cnr.it",
"eppn": "galileo.galilei@cnr.it",
"fiscalCode": "GLLGLL74P10G702B",
"fullname": "Galileo Galilei",
"id": 1234,
"number": "9802"
}
}
]
8.15.9. Badge show¶
Per ogni Badge è possibile avere le informazioni ad esso collegate tramite una HTTP GET all'indirizzo /rest/v3/badges/show.
Per individuare il Badge è necessario utilizzare il suo id.
$ http -a istituto_xxx_badge_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v3/badges/show id==161
8.15.10. Badge create¶
La creazione di un badge è possibile tramite una HTTP POST all'indirizzo /rest/v2/badges/create passando un json contenente i quattro campi obbligatori per la creazione di un badge:
code, personId, badge_reader_id, badgeSystemId
$ http -a istituto_xxx_badge_manager
POST https://epas-demo.devel.iit.cnr.it/rest/v2/badges/create
code=9801bis personId=1234 badgeReaderId=1 badgeSystemId=1
8.15.11. Badge Update¶
L'aggiornamento di un badge è possibile tramite una HTTP PUT ad un indirizzo del tipo /rest/v2/badges/update?id={id_badge_da_aggiornare}.
Per individuare il Badge è necessario utilizzare il suo id e passarlo come parametro nell'url, non nel JSON.
Nel corpo della PUT, come JSON, è possibile passare solo il campo code che è l'unico modificabile. Per cambiare il campo badgeReaderId o il campo badgeSystemId è necessario eliminare il badge e re-inserirlo con i dati corretti.
$ http -a istituto_xxx_badge_manager
PUT https://epas-demo.devel.iit.cnr.it/rest/v2/badges/update
id==161 code=9801tris
8.15.12. Badge Delete¶
La cancellazione di un badge è possibile tramite una HTTP DELETE all'indirizzo /rest/v2/persons/delete.
Per individuare il Badge è necessario utilizzare il suo id e passarlo come parametro nell'url, non nel JSON.
$ http -a istituto_xxx_badge_manager
DELETE https://epas-demo.devel.iit.cnr.it/rest/v2/badges/delete?id=310