PM: API: Goal: GET /planning-api/goals
Üldkirjeldus
Teenus väljastab kasutajaga seotud asutuse või ametikoha eesmärkide nimekirja.
Seotud andmeobjektid:
Seotud Jira taskid
NSIL-799 - Getting issue details... STATUS
NSIL-916 - Getting issue details... STATUS
NSIL-929 - Getting issue details... STATUS
NSIL-1033 - Getting issue details... STATUS
NSIL-1190 - Getting issue details... STATUS
Eeltingimused ja kasutusõigused
- Kui tegemist on asutusepõhise eesmärgiga (Goal.goalScope = INSTITUTIONAL):
- Kasutajal on seos eesmärgi asutusega ja sama asutuse eesmärkide vaatamise õigus.
- Goal.institution.id = Kasutaja poolt valitud rolliga seotud asutus
- Õigust reguleerib privileeg: HSILM_PLANNING_GOAL_VIEW.
- Kasutajal on seos eesmärgi asutusega ja sama asutuse eesmärkide vaatamise õigus.
- Kui tegemist on isikupõhise eesmärgiga (Goal.goalScope = INDIVIDUAL):
- Kasutaja on eesmärgi omanik.
- Goal.personalCode = Päringu käivitanud kasutaja isikukood.
- Eraldi privileegi ei ole vaja.
- Kasutaja on eesmärgi omanik.
Planeerimise mooduli kasutusrollide ja õiguste kohta saab täpsemalt infot leida lehelt Kasutusõigused ja rollid.
Sisendid
| Atribuut | Kohustuslikkus, mitmesus | Tüüp | Vaikeväärtus, valideerimine | Kirjeldus, täiendav info |
|---|---|---|---|---|
goalScope | 1 | String |
| Määrab, millise ulatusega eesmärke otsitakse:
|
institutionId | 1 | String |
| Viide asutusele, mille eesmärke otsitakse. |
jobsite | 0..1 | String |
| Kasutaja kehtiv ametikoht, mille eesmärke otsitakse. |
statuses | 0..* | Array |
| Eesmärgi staatus. |
startDate | 0..1 | Date |
| Eesmärgi perioodi alguskuupäev |
endDate | 0..1 | Date |
| Eesmärgi perioodi lõpukuupäev |
Väljundid
| Atribuut | Kohustuslikkus, mitmesus | Tüüp | Kirjeldus, täiendav info |
|---|---|---|---|
| goals | 0..* | Array | Nimekiri eesmärkidest. |
| goals.[...] | Iga massiivi objekt sisaldab järgmiseid atribuute:
| ||
goals.startDate | 0..1 | Date | Eesmärgi perioodi alguskuupäev. Määratakse eesmärgiga seotud tegevuste alusel. |
goals.endDate | 0..1 | Date | Eesmärgi perioodi lõpukuupäev. Määratakse eesmärgiga seotud tegevuste alusel. |
Tegevused
- Süsteem kontrollib, kas kasutajal on õigust päringut teostada.
- Kui õigust pole, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
- Süsteem kontrollib, kas sisendandmed vastavad nõuetele.
- Kui andmed ei vasta nõuetele, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
- Süsteem otsib eesmärke vastavalt sisendis esitatud andmetele:
- Otsitakse Objektid#Goal objekte, millel kehtivad järgmised tingimused:
- goalScope = Sisendis esitatud goalScope väärtus
- institution.id = Sisendis esitatud institutionId väärtus
- jobsite = Sisendis esitatud jobsite väärtus (kui on määratud)
- personalCode = kasutaja isikukood, kui sisendis esitatud goalScope = "INDIVIDUAL"; muudel juhtudel - NULL.
- Kui sisendis on määratud staatuses, kontrollitakse lisaks, et eesmärk vastaks vähemalt ühe sisendis määratud staatuse tingimustele:
- Kui üks staatuses väärtustest on ACTIVE:
- Objektid#Goal.archived = false
- Objektid#Goal.name peab olema vähemalt 1 tähemärk pikk.
- Objektid#Goal.description peab olema vähemalt 1 tähemärk pikk.
- Eesmärgi meeskonnas peab olema vähemalt üks liige:
- Eksisteerib vähemalt üks Objektid#GoalTeamMember objekt, mille goalId = leitud eesmärgi ID.
- Eesmärgile peab olema lisatud vähemalt üks tegevus (Objektid#GoalActivity).
- Eksisteerib vähemalt üks Objektid#GoalActivity objekt, mille goalId = leitud eesmärgi ID.
- Kui üks staatuses väärtustest on INCOMPLETE:
- Objektid#Goal.archived = false
- Vähemalt üks "Aktiivne" staatuse tingimus on täitmata.
- Kui üks staatuses väärtustest on ARCHIVED:
- Objektid#Goal.archived = true
- Kui üks staatuses väärtustest on ACTIVE:
- Kui eesmärke ei leita, tagastatakse tühi vastus.
- Otsitakse Objektid#Goal objekte, millel kehtivad järgmised tingimused:
- Kui sisendis staatuses sisaldab ainult väärtusi "ACTIVE" ja " INCOMPLETE":
- Leitud eesmärgid järjestatakse previousGoalId järgi.
- Süsteem tagastab leitud eesmärkide andmed.
- Atribuudid startDate ja endDate vastusesse ei lisata.
- Muudel staatuses väärtustel või juhul, kui atribuut staatuses sisendis puudub:
- Kui sisendis on määratud kas startDate või endDate, eemaldatakse leitud eesmärkide hulgast need, mis ei vasta järgmistele tingimustele:
- Kui sisendis on määratud startDate:
- Eesmärgiga peab olema seotud vähemalt üks Objektid#GoalActivity objekt, mille:
- endDate:
- on kõige hilisem kõigi selle eesmärgiga seotud tegevuste seas, ja
- ei ole varasem kui sisendis esitatud startDate.
- endDate:
- Kui sobiv tegevus leitakse, määratakse selle endDate töödeldava eesmärgi endDate väärtuseks.
- Eesmärgiga peab olema seotud vähemalt üks Objektid#GoalActivity objekt, mille:
- Kui sisendis on määratud endDate:
- Eesmärgiga peab olema seotud vähemalt üks Objektid#GoalActivity objekt, mille:
- startDate (või kui startDate = NULL, siis kasutatakse endDate väärtust):
- on kõige varasem kõigi selle eesmärgiga seotud tegevuste seas, ja
- ei ole hilisem kui sisendis esitatud endDate.
- startDate (või kui startDate = NULL, siis kasutatakse endDate väärtust):
- Kui sobiv tegevus leitakse, määratakse selle startDate töödeldava eesmärgi startDate väärtuseks.
- Eesmärgiga peab olema seotud vähemalt üks Objektid#GoalActivity objekt, mille:
- Kui nimekirja ei jää ühtegi eesmärki, tagastatakse tühi vastus.
- Kui sisendis on määratud startDate:
- Eesmärgid järjestatakse järgmiselt:
- startDate järgi kasvavas järjekorras.
- Sama startDate väärtuse korral - endDate järgi kasvavalt.
- Sama startDate ja endDate korral - loomise aja järgi kasvavalt.
- Eesmärgid, millel puudub periood, lisatakse nimekirja lõppu loomise aja järgi kasvavalt.
- Olukorda, millal eesmärgil on ainult üks kuupäev (nt startDate, aga puudub endDate), ei saa olla.
- Süsteem tagastab leitud eesmärkide andmed.
- Iga eesmärgi kohta lisatakse vastusesse ka järgmised atribuudid:
- startDate = kõige varasem tegevuse alguskuupäev kõigi eesmärgiga seotud tegevuste seas
- Kui mõnel tegevusel puudub startDate, loetakse selle alguskuupäevaks endDate, ning tegevust käsitletakse ühepäevasena, mis toimub endDate kuupäeval.
- endDate = kõige hilisem tegevuse lõpukuupäev kõigi eesmärgiga seotud tegevuste seas
- Kui eesmärgil ei ole ühtegi tegevust, määratakse startDate ja endDate väärtusteks NULL.
- startDate = kõige varasem tegevuse alguskuupäev kõigi eesmärgiga seotud tegevuste seas
- Iga eesmärgi kohta lisatakse vastusesse ka järgmised atribuudid:
- Kui sisendis on määratud kas startDate või endDate, eemaldatakse leitud eesmärkide hulgast need, mis ei vasta järgmistele tingimustele: