PM: API: Goal: PATCH /planning-api/goals/{goalId}/move
Üldkirjeldus
Teenus võimaldab muuta eesmärgi asukohta ühe positsiooni võrra asutuse või isiku aktiivsete eesmärkide järjekorras.
Seotud andmeobjektid:
Seotud Jira taskid
NSIL-795 - Getting issue details... STATUS
NSIL-921 - 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 lisamise ja muutmise õigus.
- Goal.institution.id = Kasutaja poolt valitud rolliga seotud asutus
- Õigust reguleerib privileeg: HSILM_PLANNING_GOAL_MANAGE.
- Kasutajal on seos eesmärgi asutusega ja sama asutuse eesmärkide lisamise ja muutmise õigus.
- Kui tegemist on isikupõhise eesmärgiga (Goal.goalScope = INDIVIDUAL):
- Kasutaja on eesmärgi omanik ja tal on seos eesmärgi asutuse ja ametikohaga.
- Goal.personalCode = Päringu käivitanud kasutaja isikukood.
- Goal.institution.id = Kasutaja poolt valitud rolliga seotud asutus
- Goal.jobsite = Kasutaja poolt valitud rolliga seotud ametikoht
- Eraldi privileegi ei ole vaja.
- Kasutaja on eesmärgi omanik ja tal on seos eesmärgi asutuse ja ametikohaga.
- Meeskonnaliikme rolli valinud kasutaja ei saa muuta asutuse / teise isiku ametikoha pooleliolevate ja aktiivsete eesmärkide järjekorda.
- Arhiivi vaates samuti ei saa kasutaja muuta enda isiklikke eesmärkide järjekorda.
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 |
|---|---|---|---|---|
goalId | 1 | String |
| Eesmärgi unikaalne identifikaator, mille positsiooni aktiivsete eesmärkide järjekorras muudetakse. |
targetGoalId | 1 | String |
| Eesmärgi unikaalne identifikaator, mille kohale liigutatav eesmärk liigub. |
Väljundid
Atribuut | Kohustuslikkus, mitmesus | Tüüp | Kirjeldus, täiendav info |
|---|---|---|---|
goalId | 1 | String | Eesmärgi unikaalne identifikaator, mis põhjustas eesmärkide järjekorda muutmise. |
previousGoalId | 1 | String | Eesmärgi ID, mis eelneb goalId eesmärgile aktiivsete eesmärkide järjekorras. |
Tegevused
- Süsteem kontrollib, kas kasutajal on õigust päringut teostada.
- Kui kasutajal ei ole õigust, 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 kontrollib, kas päringu käivitanud kasutajal on õigus hallata eesmärgi (goalId) andmeid.
- Kontroll toimub vastavalt üldreeglites kirjeldatud loogikale.
- Kui eesmärki ei leita või kontroll näitab, et isikupõhist eesmärki üritab hallata meeskonnaliige (Objektid#Goal.goalScope = "INDIVIDUAL" ja Objektid#Goal.personalCode != päringu käivitanud kasutaja isikukood), siis lõpetatakse päringu töötlemine ja tagastatakse http veakood.
- Süsteem kontrollib, kas mõlemad leitud eesmärgid on sama tüüpi ja on seotud sama asutusega või sama asutuse, isiku ja ametikohaga:
- Süsteem otsib Objektid#Goal objekti, mille:
- id = Sisendis esitatud "tagetGoalId" väärtus.
- Kui eesmärki ei leita, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
- Süsteem kontrollib, kas leitud eesmärk täidab järgmisi tingimusi:
- institution.id = Objektid#Goal.institution.id, mille id = Sisendis esitatud "goalId" väärtus.
- goalScope = Objektid#Goal.goalScope, mille id = Sisendis esitatud "goalId" väärtus.
- jobsite = Objektid#Goal.jobsite, mille id = Sisendis esitatud "goalId" väärtus.
- personalCode = Objektid#Goal.personalCode, mille id = Sisendis esitatud "goalId" väärtus.
- Kui eesmärk ei vasta antud tingimusele, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
- Süsteem otsib Objektid#Goal objekti, mille:
- Süsteem kontrollib, kas eesmärki (goalId) liigutatakse ainult ühe positsiooni võrra:
- Süsteem otsib mõlemat sisendis esitatud eesmärki ja kontrollib, kas üks eesmärk viitab teisele oma "previousGoalId" väärtuses.
- Süsteem otsib Objektid#Goal objekti, mille:
- id = Sisendis esitatud "goalId" väärtus.
- Süsteem kontrollib, kas leitud eesmärgi previousGoalId = Sisendis esitatud "targetGoalId" väätus.
- Süsteem otsib Objektid#Goal objekti, mille:
- id = Sisendis esitatud "targetGoalId" väärtus.
- Süsteem kontrollib, kas leitud eesmärgi previousGoalId = Sisendis esitatud "goalId" väärtus.
- Kui ükski eesmärk ei vasta tingimustele või mõlemad vastavad, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
- Süsteem otsib Objektid#Goal objekti, mille:
- Süsteem otsib mõlemat sisendis esitatud eesmärki ja kontrollib, kas üks eesmärk viitab teisele oma "previousGoalId" väärtuses.
- Süsteem uuendab liigutatava eesmärgi positsiooni järjekorras:
- Süsteem otsib Objektid#Goal objekti, mille:
- id = Sisendis esitatud "goalId" väärtus.
- Süsteem uuendab leitud objekti andmeid:
- previousGoalId = Objektid#Goal.previousGoalId, mille id = Sisendis esitatud "targetGoalId" väärtus.
- Süsteem otsib Objektid#Goal objekti, mille:
- Süsteem uuendab ka kõigi teiste samale asutusele / isikule kuuluvate aktiivsete eesmärkide previousGoalId väärtusi, mis järgnevad goalId ja targetGoalId eesmärgile.
- Süsteem otsib Objektid#Goal objekte, mis vastavad järgmistele tingimustele:
- archived = false
- institution.id = EHIS x-tee teenus GET/users/v1/users.response.data.users.institution.id/token
- goalScope = Objektid#Goal.goalScope, mille id = Sisendis esitatud "goalId" väärtus
- Kui goalScope = "INSTITUTIONAL":
- jobsite = NULL
- Kui goalScope = "INDIVIDUAL" ja jobsite != NULL:
- jobsite = Objektid#Goal.jobsite, mille id = Sisendis esitatud "goalId" väärtus
- personalCode = Objektid#Goal.personalCode, mille id = Sisendis esitatud "goalId" väärtus
- Iga leitud eesmärgi previousGoalId väärtus uuendatakse.
- Süsteem otsib Objektid#Goal objekte, mis vastavad järgmistele tingimustele:
- Süsteem tagastab eesmärgi andmed, mis põhjustas asutuse/isiku aktiivsete eesmärkide järjekorda muutmise.