Calendari advanced: creazione api disponibilità in base ad una finestra
User stories
- Come utilizzatore della API voglio avere a disposizione un endpoint che mi suggerisca un numero di disponibilità in una finestra temporale in base ai calendari passati
Casi di test
-
Verificare che la documentazione sia chiara ed esaustiva https://servizi.comune-qa.bugliano.pi.it/lang/api/doc#operations-availabilities-get_calendars_windowed_availabilities_api_get -
Come utente visitare il seguente link https://servizi.comune-qa.bugliano.pi.it/lang/api/availabilities/windowed?calendar_ids=78c7b5f4-366f-4417-aafd-7b38ba05a858 mi aspetto di ricevere 3 disponibilità nell'arco di 8 giorni a partire da adesso -
Verificare che le disponibilità proposte siano sfalsate: se la prima è di mattina la seconda è di pomeriggio e così via -
Come utente visitare il seguente link https://servizi.comune-qa.bugliano.pi.it/lang/api/availabilities/windowed?calendar_ids=78c7b5f4-366f-4417-aafd-7b38ba05a858&window_size=30 mi aspetto di ricevere 3 disponibilità nell'arco di 30 giorni a partire da adesso -
Come utente visitare il seguente link https://servizi.comune-qa.bugliano.pi.it/lang/api/availabilities/windowed?calendar_ids=78c7b5f4-366f-4417-aafd-7b38ba05a858&window_size=30&limit=10 mi aspetto di ricevere 3 disponibilità nell'arco di 30 giorni a partire da adesso -
Come utente visitare il seguente link https://servizi.comune-qa.bugliano.pi.it/lang/api/availabilities/windowed?calendar_ids=78c7b5f4-366f-4417-aafd-7b38ba05a858&reserve=true mi aspetto di ricevere 3 disponibilità nell'arco di 8 giorni a partire da adesso, deve essere valorizzato il campo meeting_id delle disponibilità proposte -
Come operatore cliccare sul seguente link https://servizi.comune-qa.bugliano.pi.it/lang/it/operatori/calendars/78c7b5f4-366f-4417-aafd-7b38ba05a858 e verificare che siano presenti i meeting in bozza restituiti nella chiamata preedente
Dettagli
Parametri | ||
windows_size |
Numero di giorni per i quali si vogliono degli appuntamenti liberi | Se ci fossero calendari vuoti e aperti tutti i giorni corrisponderebbe al numero di giorni che deve intercorrere tra il primo e l’ultimo appuntamento suggerito. Nella realtà il tempo potrà dilatarsi in funzione di quanto sono saturi i calendari. |
limit |
Numero di appuntamenti che si vogliono suggerire nell’IVR | |
reserve |
Riserva gli appuntamenti contestualmente alla chiamata, senza necessità di ulteriori chiamate per riservare i tre slot | |
calendar_ids |
Per scegliere gli appuntamenti liberi viene individuato un intervallo di giorni in cui è presente almeno uno slot libero. E’ possibile quindi che vengano elencati dei giorni non consecutivi e questo rende indeterminabile a priori l’intervallo coperto da questa chiamata. Nell’esempio che segue vengono ritornati per esempio 8 giorni tra il 1 settembre e il 16 settembre. Su servizi con calendari molto saturi anche se vengono richiesti 8 giorni potrebbero esserci un numero minore di giorni tra cui scegliere.
Nel caso di servizi con calendari molto liberi di fatto stiamo individuando il numero massimo di giorni tra il primo e l’ultimo appuntamento suggerito. Nel caso di servizi con calendari saturati in modo molto disomogeneo potrebbero esserci intervalli di tempo anche molto ampi tra il primo e l’ultimo appuntamento suggerito.
Indichiamo i tre slot proposti con A, B, C
1 disp | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
1/9/25 | 2/9/25 | 5/9/25 | 7/9/25 | 8/9/25 | 10/9/25 | 11/9/25 | 16/9/25 | |
Matt | A | C | ||||||
Pom | B |
Nell’intervallo di giorni individuati restituisce la prima (A) e l’ultima disponibilità (C) di quei giorni: questo favorisce al massimo la differenza della fascia oraria negli slot suggeriti.
La seconda disponibilità è nel giorno di mezzo dell’intervallo di 8 giorni, possibilmente in un periodo del giorno diverso da quello del PRIMO meeting (A), se A è di mattina B è nel pomeriggio e viceversa: per realizzare questo si individua lo slot con la distanza massima di orario tra se stesso e lo slot A.