PM: API: Goal: GET /planning-api/team-member-goals
Üldkirjeldus
Teenus väljastab ühe konkreetse asutuse või teise isiku ametikoha eesmärgid, mille meeskonda päringu käivitanud kasutaja kuulub.
Seotud andmeobjektid:
Seotud Jira taskid
NSIL-930 - Getting issue details... STATUS
NSIL-972 - Getting issue details... STATUS
NSIL-1190 - Getting issue details... STATUS
Eeltingimused ja kasutusõigused
- Kasutaja on eesmärkide meeskonnas ja planeerimise meeskonna liikme rollil on eesmärkide vaatamise õigus.
- Goal.teamMembers.id = GoalTeamMember.id, mille personalCode = Kasutaja isikukood
- Õigust reguleerib privileeg: HSILM_PLANNING_GOAL_VIEW.
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, millis tüüpi eesmärke otsitakse:
|
institutionId | 1 | String |
| Viide asutusele, mille eesmärkidesse on kasutaja meeskonnaliikmena lisatud. |
personalCode | 0..1 | String |
| Viide isikule, kelle eesmärkidesse on kasutaja meeskonnaliikmena lisatud. |
jobsite | 0..1 | String |
| Viide isiku ametikohale, mille suhtes eesmärgid on loodud. |
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, mille meeskonda kuulub päringu käivitanud kasutaja:
- Esiteks otsitakse kasutaja meeskonnaliikme kirjeid:
- Otsitakse Objektid#GoalTeamMember objekte, mille:
- personalCode = päringu käivitanud kasutaja isikukood.
- Kui ühtegi vastavat kirjet ei leita, lõpetatakse päringu töötlemine ja tagastatakse tühi vastus.
- Otsitakse Objektid#GoalTeamMember objekte, mille:
- Seejärel otsitakse sisendis esitatud asutuse/teise isiku ametikoha eesmärke:
- Süsteem otsib 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 = sisendis esitatud personalCode väärtus (kui on määratud)
- 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 ühtegi eesmärki ei leita, lõpetatakse päringu töötlemine ja tagastatakse tühi vastus.
- Süsteem otsib Objektid#Goal objekte, millel kehtivad järgmised tingimused:
- Esiteks otsitakse kasutaja meeskonnaliikme kirjeid:
- Kui sisendis staatuses sisaldab ainult väärtusi "ACTIVE" ja " INCOMPLETE":
- Leitud eesmärgid järjestatakse previousGoalId järgi.
- Eesmärkide nimekirjast eemaldatakse need, mille:
- Objektid#Goal.teamMembers nimekiri ei sisalda ühtegi eelnevalt leitud meeskonnaliikme ID-d.
- Iga eesmärgi eemaldamise järjel uuendatakse sellest järgneva eesmärgi previousGoalId väärtus - see asendatakse eemaldatava eesmärgi previousGoalId väärtusega.
- 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:
- Eesmärkide nimekirjast eemaldatakse need, mis ei vasta järgmistele tingimustele:
- Objektid#Goal.teamMembers nimekiri sisaldab vähemalt ühte eelnevalt leitud meeskonnaliikme ID-d.
- 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.
- 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, kus 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:
- Eesmärkide nimekirjast eemaldatakse need, mis ei vasta järgmistele tingimustele: