Electronic Personnel Attendance System

Documenti pubblici, digitali.

8.11. Gestione delle timbrature via REST

Di seguito una breve spiegazione dell'API REST relativa alle operazioni sulle timbrature dei dipendenti di una sede. Ogni sede potrà utilizzare l'API, accedendo con un utente apposito opportunamente configurato, ai soli dati della propria sede. Questa è l'interfaccia WEB utilizzata dagli epas-client, per l'inserimento delle timbrature, se possibile, è consigliato utilizzare uno degli ePAS client opensource disponibili:

8.11.1. Permessi

Per poter accedere a questa interfaccia REST è necessario utilizzare le credenziali associate ad una Sorgente Timbratura della propria sede. Eventualmente verificare nella documentazione di ePAS come creare le Sorgenti Timbrature.

Su https://epas-demo.devel.iit.cnr.it potete per esempio creare una nuova Sorgente Timbratura utente associato alla vostra sede, con uno username tipo client_timbrature_sede_xxx.

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

8.11.2. Inserimento di una timbratura (versione utilizzata dagli epas-client)

Per effettuare l'inserimento di una timbratura è necessario effettuare una HTTP POST all'endpoint /stampingsfromclient/create. La POST deve contenere nel body un json con i campi della timbratura che sono:

  • operazione: è un numero obbligatorio. 0 indica un'entrata, 1 un uscita.

  • causale: è una stringa opzionale. che contiene la causale della timbraura I valori attualmente gestiti sono pausaPranzo, motiviDiServizio e lavoroFuoriSede.

  • anno, mese, giorno, ora, minuti: sono tutti campi numerici obbligatori

  • matricolaFirma: è una stringa obbligatoria. Indica il numero di badge

  • terminale o lettore: è una stringa opzionale. Può contenere la zona di timbratura, utilizzata in alcuni rari casi per gestire le timbrature continuative tra due zone definite

  • note: è una stringa opzionale

  • luogo: è una stringa opzionale

  • motivazione: è una stringa opzionale

Un esempio è il seguente:

$ http -a client_timbrature_sede_xxx
    POST https://epas-demo.devel.iit.cnr.it/stampingsfromclient/create
    matricolaFirma=9802 operazione=0 anno=2021 mese=02 giorno=08 ora=08 minuti=10 causale=lavoroFuoriSede luogo=Pisa motivazione='ero sotto la torre'

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

  • 200: timbratura inserita correttamente

  • 400: body delle richiesta HTTP non presente

  • 404: numero badge non trovato per la sorgente timbratura utilizzare per l'inserimento

  • 409: in caso timbratura già presente (il sistema non ne inserisce un'altra uguale)

8.11.3. Stamping Create

Dalla versione 3 dell'API è presente un nuovo metodo per l'inserimento di una timbratura. La nuova versione è utilizzabile con una HTTP POST all'endpoint /rest/v3/stampings/create.

La POST deve contenere nel body un json con i campi della timbratura che sono:
  • wayType: il campo è obbligatorio. I possibili valori sono in o out

  • reasonType: è una stringa opzionale. che contiene la causale della timbraura I valori attualmente gestiti sono pausaPranzo, motiviDiServizio e lavoroFuoriSede.

  • dateTime: è un obbligatorio. Deve contenere la data e l'ora della timbratura in formato ISO, per esempio 2021-02-12T10:00

  • badgeNumber: è una stringa obbligatoria. Indica il numero di badge

  • zone: è una stringa opzionale. Può contenere la zona di timbratura, utilizzata in alcuni rari casi per gestire le timbrature continuative tra due zone definite

  • note: è una stringa opzionale

  • place: è una stringa opzionale

  • reason: è una stringa opzionale

Per esempio:

$ http -a client_timbrature_sede_xxx
    POST https://epas-demo.devel.iit.cnr.it/rest/v3/stampings/create
    badgeNumber=9802 dateTime='2021-02-12T08:20' wayType=in note='Note eccezionali veramente'

Il metodo restituisce uno dei seguenti codici HTTP di risposta:

  • 200: timbratura inserita correttamente

  • 400: body delle richiesta HTTP non presente

  • 404: numero badge non trovato per la sorgente timbratura utilizzare per l'inserimento

  • 409: in caso timbratura già presente (il sistema non ne inserisce un'altra uguale)

Se l'inserimento va a buon fine (con codice HTTP 200) il metodo restituisce anche le informazioni della timbratura inserita.

{
  "date": "2021-02-12T08:20:00",
  "id": 398946,
  "markedByAdmin": false,
  "markedByEmployee": false,
  "markedByTelework": false,
  "note": "Note eccezionali veramente",
  "person": {
      "email": "galileo.galilei@cnr.it",
      "eppn": "galileo.galilei@cnr.it",
      "fiscalCode": "GLLGLL74P10G702B",
      "fullname": "Galilei Galileo",
      "id": 1234,
      "number": "9802"
  },
  "place": null,
  "reason": null,
  "stampType": null,
  "stampingZone": null,
  "way": "in"
}

8.11.4. Stamping Show

La visualizzazione dei dati di una timbratura è tramite una HTTP GET all'indirizzo /rest/v3/stampings/show.

Per individuare la timbratura è possibile utilizzare solo il campo id.

$ http -a client_timbrature_sede_xxx
    POST https://epas-demo.devel.iit.cnr.it/rest/v3/stampings/show id==398946

Il risultato sarà uguale a quello dell'esempio riportato sopra come risposta all'inserimento di una timbratura

8.11.5. Stamping Update

La modifica di la timbratura è possibile tramite una HTTP PUT all'indirizzo /rest/v3/stampings/update.

Per individuare il gruppo è possibile utilizzare solo il campo id. I campi che è possibile modificare sono i seguenti:

  • wayType: il campo è obbligatorio. I possibili valori sono in o out

  • reasonType: è una stringa opzionale. che contiene la causale della timbraura I valori attualmente gestiti sono pausaPranzo, motiviDiServizio e lavoroFuoriSede.

  • zone: è una stringa opzionale. Può contenere la zona di timbratura, utilizzata in alcuni rari casi per gestire le timbrature continuative tra due zone definite

  • note: è una stringa opzionale

  • place: è una stringa opzionale

  • reason: è una stringa opzionale

ATTENZIONE non è possibile modificare la persona a cui è associata la timbratura o la data e ora della timbratura, se è necessario modificare uno di questi campi allora è opportuno cancellare la vecchia timbratura ed inserirne una nuova.

$ http -a client_timbrature_sede_xxx
    PUT https://epas-demo.devel.iit.cnr.it/rest/v3/stampings/update/398946
    wayType=in place=='Torre di Pisa' reason=='Esperimento caduta gravi' reasonType=lavoroFuoriSede

8.11.6. Stamping Delete

La cancellazione di una timbratura è possibile tramite una HTTP DELETE all'indirizzo /rest/v3/stampings/delete

Per individuare la timbratura da eliminare si utilizza lo stesso parametro previsti per la show: id.

$ http -a istituto_xxx_registry_manager
    DELETE https://epas-demo.devel.iit.cnr.it/rest/v2/stampings/delete?id=398946