Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Varauspalvelu

Tilojen ja opintojaksototeutusten varausten haku.

Oliomalli

Varaus

Varaus sisältää perustiedot varauksesta kuten sen

...

ajankohdan, ja lisäksi listan "resursseja" jotka voivat olla esimerkiksi tiloja tai opintojaksototeutuksia.

KenttäTyyppiKuvaus
idnumeroVarauksen yksilöllinen id
modifiedDatepvmKoska varausta on viimeksi muokattu

subject

tekstiVarauksen otsikko
descriptiontekstiMahdollinen varauksen lisätieto
startDatepvmVarauksen alkamisajankohta
endDatepvmVarauksen päättymisajankohta
resourceslistaVaraukseen linkitetyt resurssit
Varauksen resurssi
KenttäTyyppiKuvaus
idnumeroResurssin yksilöllinen id

type

tekstiResurssin tyyppi. realization -

...

opintojaksototeutus, student_group - ryhmä, scheduling_group - opetusryhmä, room - tila, building - rakennus josssa tila sijaitsee
codeteksti

Resurssin koodi

nametekstiResurssin nimi

...

Esimerkki:

Code Block
languagejavascript
{
      "id": "838403",
      "subject": "Spanish 3 LX00AC52-3001",
      "modifiedDate": "2013-09-02T14:31",
      "startDate": "2013-11-01T08:00",
      "endDate": "2013-11-01T10:45",
      "resources": [{
         "id": "32961",
         "type": "realization",
         "code": "LX00AC52-3001",
         "name": "Spanish 3"
      }, {
         "id": "32858",
         "type": "student_group",
         "code": "LITO_VV",
         "name": "LITO_VV"
      }, {
         "id": "786",
         "type": "room",
         "code": "VTYA215",
         "name": "Teorialuokka",
         "parent": {
            "id": "764",
            "type": "building",
            "code": "VTY",
            "name": "Leiritie 1"
         }
      }]
}

 

Haku
KenttäTyyppiKuvaus

subject

tekstiVapaa tekstihaku otsikosta
startDatepvmVarauksen alkuajankohdan pitää olla sama tai suurempi kuin annettu arvo
endDatepvmVarauksen päättymisajankohdan pitää olla sama tai pienempi kuin annettu arvo.
rangeStartpvm

Varauksen loppu-ajankohta on annettuna ajankohtana tai sen jälkeen.

Varaus osuu rangeStart - rangeEnd päivämäärävälille. Molemmat parametrit pitää antaa jos jompi kumpi määritelty.

rangeEndpvmVarauksen alku-ajankohta on ennen annettua ajankohtaa
realizationlistaVaraus koskee annettua opintojaksototeutusta (opintojaksototeutuksen koodi)
studentGrouplistaVaraus koskee annettua ryhmää (ryhmän koodi).
roomlistaVaraus on annetussa tilassa (tilan koodi)
buildinglistaVaraus on tilassa joka sijaitsee annetussa rakennuksessa (rakennuksen koodi)
fromnumeroPalauta hakutulokset annetusta numerosta eteenpäin. Oletus 0.
sizenumeroPalautettavien tulosten maksimimäärä. Oletus 1000.

Haku on "AND" -haku kenttien välillä. Lista -tyyppiset parametrit ovat "OR" saman tyyppisen listan sisällä olevien elementtien välillä.

...

Esimerkiksi:

Code Block
languagejavascript
{
   "startDate": "2013-11-22T09:00",
   "endDate": "2013-11-22T10:00",
   "room": ["G201"]
}

...

 

 

Vastaus
KenttäKuvaus
statusTieto onnistuiko pyyntö vai oliko mahdollisia virheitä. "success", "warn", "error"
messageMahdollinen tarkentava viesti esimerkiksi virhetilanteissa.
reservationsLista varauksia.


Code Block
languagejavascript
{
   "status": "success",
   "reservations": [{
      "id": "840509",
      "subject": "G201 test",
      "modifiedDate": "2013-11-18T13:11",
      "startDate": "2013-11-22T09:00",
      "endDate": "2013-11-22T10:00",
      "resources": [{
         "id": "3",
         "type": "room",
         "code": "G201",
         "name": "Auditorio",
         "parent": {
            "id": "2",
            "type": "building",
            "code": "AGRICO",
            "name": "Agricolankatu 1-3"
         }
      }]
   }]
}

...

Rajapinta

Yksittäisen varauksen tietojen hakeminen
Code Block
languagebash
curl -u "

...

oma_api_

...

key:" 

...

https://opendata.metropolia.fi/r1/reservation/816121

 

Varausten hakeminen

Anna hakuparametriksi ylhäällä kuvattu "Haku" -olion mukainen JSON. Jokin haun kentistä pitää olla määriteltynä jotta haku palauttaisi tuloksia.

...

Code Block
languagebash
curl -u "

...

oma_api_

...

key:" -X POST 

...

https://opendata.metropolia.fi/r1/reservation/search -d '{
   "startDate":"2013-11-22T09:00",
   "endDate":"2013-11-

...

22T15:00", 
   "room":["

...

G205"]
}'

...


...


Huomaa että opintojaksototeutuksen varaukset voivat olla merkitty joko pelkästään opintojaksototeutukselle tai ryhmälle, tai sitten varauksella voi olla molemmat tiedot asetettuna.

Varauksiin tallennetaan yleensä sekä ryhmätieto että toteutus jota varaus koskee. Näinollen jos haluat kaikki tietyn ryhmän opetustapahtumat voit hakea pelkällä ryhmällä varauksia.

Esimerkiksi:

...

Code Block
languagebash
# 

...

tiettyjen toteutusten varausten haku
curl -u "

...

oma_api_

...

key:" -X POST 

...

https://opendata.metropolia.fi/r1/reservation/search -d '{
   "realization":["SB00AA01-2000", "SB00AA03-2000", "SB00AA04-2000", "SB00AA06-2001"]
}'
 
# tietyn ryhmän varausten haku. Huomaa että et voi samassa pyynnössä hakea sekä tiettyjen toteutusten 
# että ryhmien varauksia koska hakuehto eri tyyppisten kenttien välillä on AND
 curl -u "

...

oma_api_

...

key:" -X POST 

...

https://opendata.metropolia.fi/r1/reservation/search -d '{
   "

...

studentGroup":["SB13K2"]
}'

...

 

Voit tarkistaa onko tietty aika vapaa tai mitä varauksia on käynnissä ko. ajankohtana käyttämällä "range queryä".

Alla oleva esimerkki hakee kaikki varaukset jotka ovat "voimassa" klo. 09.00 ja 10.00 välillä, annetussa toimipisteessä. Varaus on siis voinut alkaa ennen kl. 09.00 ja jatkua 10.00 jälkeen.

Jos haluat hakea varaukset tietylle ajankohdalle (tarkistaaksesi esimerkiksi onko aika vapaa), kannattaa käyttää "range" kyselyä. Tämä huomioi myös varaukset jotka ovat alkaneet ennen annettua ajankohtaa, mutta ovat vielä käynnissä annettuna ajankohtana.

Alla oleva esimerkki hakee kaikki varaukset joiden alku-ajankohta on ennen klo 10.00, ja loppu-ajankohta on klo. 9.00 tai sen jälkeen.

...

Code Block
languagebash
curl -u "

...

oma_api_

...

key:" -X POST 

...

https://opendata.metropolia.fi/r1/reservation/search -d '{
   "rangeStart": "2013-11-22T09:00",
   "rangeEnd": "2013-11-22T10:00",
   "

...

building": ["

...

AGRICO"]
}'

...


...


Jos haluat hakea esimerkiksi mitä opetusta on tiettynä ajankohtana, voit hakea varaukset jotka alkavat tietyn ajankohdan jälkeen. Vastaukesta voit kerätä yksilölliset opintojaksototeutukset ja luokkahuoneet joissa opetus järjestetään. Voit lisätä vielä hakuehdon rakennukselle jos haluat vain tietyn toimipisteen opetustapahtumat.

Code Block
languagebash
curl -u "

...

oma_

...

api_key:" -X POST 

...

https://opendata.metropolia.fi/r1/reservation/search -d '{
   "startDate": "2013-11-22T09:00",
   "endDate": "2013-11-22T15:00",
   "building": ["AGRICO"]
}'

 

Rakennusten ja tilojen listaaminen
Code Block
languagebash
curl -u "

...

oma_api_

...

key:" 

...

https://opendata.metropolia.fi/r1/reservation/

...

building


Code Block
languagebash
curl -u "

...

oma_api_

...

key:" 

...

https://opendata.metropolia.fi/r1/reservation/building/373

...

Esimerkki vastauksesta:

 

Kenttä officialIdentifier lisätty, joka sisältää Virallisen tilakoodin.

Korjattu, että size (neliömäärä) tieto tulee myös huoneille (building toimi jo tältä osin). Tässä voi olla ongelmaa, koska alunperin toteutettu käsittelemään kokonais ukuja ja huoneilla voidaan syöttää tekstiä. Jos tekstiä syötetty tai desimaali arvoja, niin ottaa ensimmäisen numeraalisen osan. Esim "n.10,5 neliötä" → 10 size kentässä.

Huone sisältää building kyselyssä resources listan, jossa  kiinteät varusteet (type:resource) ja  muut resurssit (type:movable)

Varusteniput (accessoryBundles) sisältyy myös esimerkin mukaisesti mikäli ominaisuus on kytkettynä pepissä 


Code Block
languagejavascript
{
  "status": "success",
  "building": {
    "id": "373",
    "type": "building",
    "code": "Test",
    "name": "Test Street 3 D",
    "places": 0,
    "size": 100
  },
  "resources": [{
    "id": "374",
    "type": "room",
    "code": "Testroom1",
    "name": "ATK-luokka",
    "resourceType": "ATK-luokka",
    "description": "Vain testikäytössä oleva virtuaalinen tila, jolla ei ole fyysisessä maailmassa vastinetta.",
    "places": 22,
    "size": 20,
    "officialIdentifier": "XXX",
    "resources": [
      {
        "code": "KV-73",
        "description": "",
        "id": "49262",
        "name": "Kiinteä varuste 73",
        "organisationUnitId": 0,
        "places": 0,
        "resourceType": "Videoneuvottelulaitteisto",
        "size": 0,
        "staff": 0,
        "students": 0,
        "type": "resource"
      }
    ],
  }, {
    "id": "375",
    "type": "room",
    "code": "Testroom2",
    "name": "Opetustila",
    "resourceType": "Opetustila",
    "description": "Vain testikäytössä oleva virtuaalinen tila, jolla ei ole fyysisessä maailmassa vastinetta.\r\n",
    "accessoryBundles": [
      {
        "categorys": [
          {
            "id": "41",
            "items": [
              {
                "descriptionEn": "",
                "descriptionFi": "Kannettava tietokone",
                "descriptionSv": "",
                "id": "414",
                "name": "Kannettava",
                "specifier": "LPC1"
              },
              {
                "descriptionEn": "",
                "descriptionFi": "Pöytäkone luokassa",
                "descriptionSv": "",
                "id": "415",
                "name": "Pöytäkone",
                "specifier": "PC1"
              }
            ],
            "titleEn": "",
            "titleFi": "Tietokoneet",
            "titleSv": ""
          },
          {
            "id": "42",
            "items": [
              {
                "descriptionEn": "",
                "descriptionFi": "Langaton tulostin",
                "descriptionSv": "",
                "id": "416",
                "name": "Tulostin 1",
                "specifier": "PRINT1"
              },
            ],
            "titleEn": "",
            "titleFi": "Tulostimet",
            "titleSv": ""
          }
        ],
        "id": "12",
        "titleEn": "",
        "titleFi": "Testinippu 5",
        "titleSv": ""
      }
    ],
    "places": 30
  }]
}


Varusteiden/resurssien ja niiden avulla tilojen hakeminen

Haku objectin kentät

KenttäKuvaus
typeHae resurssin päätyypin perusteella (Kiinteä varuste, Tila, Muu resurssi) (building, room,resource,movable)
resourceTypeHae resurssin tarkentavan tyypin perusteella
resourcesHae tilaa kiinteän varusteen tai muun resurssin id:n perusteella
resourceTypeAnyHae tilaa kiinteän varusteen tai muun resurssin tyyppin perusteella perusteella, Sisältää minkä tahansa
resourceTypeAllHae tilaa kiinteän varusteen tai muun resurssin tyyppin perusteella. Sisällettävä kaikki
fromPalauta hakutulokset annetusta numerosta eteenpäin (oletus: 0)
sizePalautettavien tulosten maksimimäärä (oletus: 1000)

Haku esimerkit Muiden resurssien ja Kiinteiden varusteiden listaukseen.

Code Block
titleMuiden resurssien ja kiinteiden varusteiden listaus päätyyppien mukaan
curl -u "oma_api_key:" https://opendata.metropolia.fi/r1/reservation/search/resource -d '{"type": ["resource","movable"]}'


Code Block
titleMuiden resurssien ja kiinteiden varusteiden haku tarkentavan tyypin mukaan
curl -u "oma_api_key:" https://opendata.metropolia.fi/r1/reservation/search/resource -d '{"resourceType": ["Laptop iPad -vaunut"]}'


Code Block
titleMuiden resurssien ja kiinteiden varusteiden haku päätyypin ja tarkentavan tyypin mukaan
curl -u "oma_api_key:" https://opendata.metropolia.fi/r1/reservation/search/resource -d '{"resourceType": ["Laptop"], "type": ["movable"]}'


Code Block
titleVarusteiden ja resurssien listauksen vastaus
{
    "resources": [
        {
            "code": "VTYLPT2",
            "description": "Löytyy tilasta VTYA2222",
            "id": "35841",
            "name": "Laptop Trolley2 (Leiritie VTYA2222)",
            "organisationUnitId": 0,
            "parent": {
                "code": "VTY",
                "description": "",
                "id": "764",
                "name": "Leiritie 1",
                "organisationUnitId": 0,
                "places": 0,
                "resourceType": "",
                "size": 0,
                "staff": 0,
                "students": 0,
                "type": "building"
            },
            "places": 0,
            "resourceType": "Laptop iPad -vaunut",
            "size": 0,
            "staff": 0,
            "students": 0,
            "type": "movable"
        },
        {
            "code": "KV-73",
            "description": "",
            "id": "49262",
            "name": "Kiineteä varuste 73",
            "organisationUnitId": 0,
            "parent": {
                "code": "huone-73",
                "description": "",
                "id": "49252",
                "name": "Huone-73",
                "organisationUnitId": 0,
                "places": 10,
                "resourceType": "",
                "size": 17,
                "staff": 0,
                "students": 0,
                "type": "room"
            },
            "places": 0,
            "resourceType": "Videoneuvottelulaitteisto",
            "size": 0,
            "staff": 0,
            "students": 0,
            "type": "resource"
        }
    ],
    "status": "success"
}

Haku esimerkit Tilojen hakemiseen päätyypin ja tarkentavan tyypin avulla.


Code Block
curl -u "oma_api_key:" https://opendata.metropolia.fi/r1/reservation/search/resource -d '{"resources": ["35841"]}'


Code Block
curl -u "oma_api_key:" https://opendata.metropolia.fi/r1/reservation/search/resource -d '{"resourceTypeAll": ["Laptop iPad -vaunut"]}'


Code Block
titleVastaus esimerkki
{
    "resources": [
        {
            "code": "VTY",
            "description": "",
            "id": "764",
            "name": "Leiritie 1",
            "organisationUnitId": 0,
            "places": 0,
            "resourceType": "",
            "resources": [
                {
                    "code": "VTYLPT1",
                    "description": "L\u00f6ytyy tilasta VTYA207",
                    "id": "35840",
                    "name": "Laptop Trolley1 (Leiritie VTYA207)",
                    "organisationUnitId": 0,
                    "places": 0,
                    "resourceType": "Laptop iPad -vaunut",
                    "size": 0,
                    "staff": 0,
                    "students": 0,
                    "type": "movable"
                },
                {
                    "code": "VTYLPT2",
                    "description": "L\u00f6ytyy tilasta VTYA2222",
                    "id": "35841",
                    "name": "Laptop Trolley2 (Leiritie VTYA2222)",
                    "organisationUnitId": 0,
                    "places": 0,
                    "resourceType": "Laptop iPad -vaunut",
                    "size": 0,
                    "staff": 0,
                    "students": 0,
                    "type": "movable"
                },
                {
                    "code": "VTYIPT1",
                    "description": "L\u00f6ytyv\u00e4t tilasta VTYB116",
                    "id": "35839",
                    "name": "iPad Trolley (Leiritie VTYB116)",
                    "organisationUnitId": 0,
                    "places": 0,
                    "resourceType": "Laptop iPad -vaunut",
                    "size": 0,
                    "staff": 0,
                    "students": 0,
                    "type": "movable"
                }
            ],
            "size": 0,
            "staff": 0,
            "students": 0,
            "type": "building"
        }
    ],
    "status": "success"
Code Block
languagejavascript
{
  "status": "success",
  "building": {
    "id": "373",
    "type": "building",
    "code": "Test",
    "name": "Test Street 3 D",
    "places": 0
  },
  "resources": [{
    "id": "374",
    "type": "room",
    "code": "Testroom1",
    "name": "ATK-luokka",
    "resourceType": "ATK-luokka",
    "description": "Vain testikäytössä oleva virtuaalinen tila, jolla ei ole fyysisessä maailmassa vastinetta.",
    "places": 22
  }, {
    "id": "375",
    "type": "room",
    "code": "Testroom2",
    "name": "Opetustila",
    "resourceType": "Opetustila",
    "description": "Vain testikäytössä oleva virtuaalinen tila, jolla ei ole fyysisessä maailmassa vastinetta.\r\n",
    "places": 30
  }]
}