exchange.ws – Exchange Web Service TEST
Implementasjon av Rest-basert Web Service vha Ruby on Rails og WinRb/Viewpoint. Resultatet i er JSON-format.
Merk: det er en begresning i WinRb/Viewpoint som gjør at repeterende events ikke vises utover første forekomst.
En nginx-server er satt opp som frontend for rest-tjenesten og cacher resultatene i x-minutter. Backend er rullet ut i UH-skyen vha Ansible (repo: git.uib.no:/user/edpck/ansible-uib-uh-rails-server.git) og tilgjengelig på ews.test.uib.no
Se også dokumentasjon i ITWiki:Exchange.ws
Gå til side for å generere API-nøkkel for å få fatt en gyldig APIKEY.
events.room – liste over events for rom ➠
year | integer | Årstall |
week | integer | Ukenummer |
day | integer = 0 | Dag idag, 1 = imorgen, -1 = igår, osv. Overstyrer week hvis begge er angitt. |
room | string | Romnavn, feks: ExITMoteromSR4110@exchange.uib.no |
Content-Type: application/json
{"room": "ExITMoteromSR4110@exchange.uib.no", "events": [{ "subject": "...", "start": "...", "end": "...", "id": "...", "change_key": "..." },{ "subject": "...", "start": "...", "end": "...", "id": "...", "change_key": "..." },{ "subject": "...", "start": "...", "end": "...", "id":"", "change_key":"..." ... }]}
Examples
Viser alle events på møterom ExITMoteromSR4110 i uke 2 inneværende år: https://ews.datatest.uib.no/APIKEY/api/v1/events/week:02/room:ExITMoteromSR4110
{"room": "ExITMoteromSR4110@exchange.uib.no",
"events": [{
"subject": "A3 møter- brukerstøtte NB Forberedelser :-)",
"start": "2016-01-11T12:00:00.000+00:00",
"end": "2016-01-11T13:30:00.000+00:00",
"id": "AAMkADQyZjQzYWQ2LWFiOTktNDExYi04OTlkLWQ3...",
"change_key": "DwAAABYAAAD88wwMHgulSpU1tBKNjyuRAAA6h9M2"
},{
"subject": "Presentasjon av Brukerstøtte",
"start": "2016-01-12T12:00:00.000+00:00",
"end": "2016-01-12T12:45:00.000+00:00",
"id": "AAMkADQyZjQzYWQ2LWFiOTktNDExYi04OTlkLWQ3...",
"change_key": "DwAAABYAAAD88wwMHgulSpU1tBKNjyuRAAA6h9Py"
},{
"subject": "A3 om møter",
"start": "2016-01-14T08:00:00.000+00:00",
"end": "2016-01-14T09:30:00.000+00:00",
"id": "AAMkADQyZjQzYWQ2LWFiOTktNDExYi04OTlkLWQ3...",
"change_key": "DwAAABYAAAD88wwMHgulSpU1tBKNjyuRAAA6h9gZ"
},{
"subject": "Nito - styremøte",
"start": "2016-01-14T12:30:00.000+00:00",
"end": "2016-01-14T14:00:00.000+00:00",
"id": "AAMkADQyZjQzYWQ2LWFiOTktNDExYi04OTlkLWQ3",
"change_key": "DwAAABYAAAD88wwMHgulSpU1tBKNjyuRAAA6h9Q2"
}]}
events.users – liste over free/busy events for en eller flere brukere ➠
year | integer | Årstall |
week | integer | Ukenummer |
day | integer = 0 | Dag idag, 1 = imorgen, -1 = igår, osv. Overstyrer week hvis begge er angitt. |
users | string | Ett eller flere brukernavn (kommaseparert) |
Content-Type: application/json
{"events": [{ "user": "username1", "datetime_range": { "start": "...", "end": "..." } "end": "...", "free_busy_events": [{ "start": "...", "end": "...", "free_busy": "..." },{ "start": "...", "end": "...", "free_busy": "..." }...] },{ "user": "username2", "datetime_range": { "start": "...", "end": "..." } "end": "...", "free_busy_events": [] "error": "GetUserAvailability produced an error: ErrorMailRecipientNotFound: " },{ "user": "username3", "datetime_range": { "start": "...", "end": "..." } "end": "...", "free_busy_events": [{ "start": "...", "end": "...", "free_busy": "..." },{ "start": "...", "end": "...", "free_busy": "..." }...] } ... ]}
Examples
Viser alle free/busy events idag for en bruker med Exchange og en uten: https://ews.datatest.uib.no/APIKEY/api/v1/events/day:0/users:edpck,ddu001
Hvis json-strukturen inneholder 'error' oppstod det problem med å finne free/busy events på brukeren. Den kan være forårsaket av forskjellige årsaker; brukernavnet er feil, bruker har ikke Exchange-konto, osv.
{"events": [{
"user": "edpck",
"datetime_range": {
"start": "2016-12-07",
"end": "2016-12-08"
},
"free_busy_events": [{
"start": "2016-12-07T08:30:00+00:00",
"end": "2016-12-07T09:30:00+00:00",
"free_busy":"Busy"
},{
"start": "2016-12-07T09:00:00+00:00",
"end": "2016-12-07T10:30:00+00:00",
"free_busy": "Busy"
}]
},{
"user":"ddu001",
"datetime_range":{
"start": "2016-12-07",
"end":" 2016-12-08"
},
"free_busy_events":[],
"error": "GetUserAvailability produced an error: ErrorMailRecipientNotFound: "
}
]}