PM: API: Goal: POST /planning-api/goals/{goalId}/team-members
Üldkirjeldus
Teenus võimaldab lisada eesmärgile uue meeskonnaliikme.
Seotud andmeobjektid:
Seotud Jira taskid
NSIL-797 - Getting issue details... STATUS
NSIL-925 - Getting issue details... STATUS
NSIL-979 - 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 meeskonnaliikmete lisamise ja muutmise õigus.
- Goal.institution.id = Kasutaja poolt valitud rolliga seotud asutus
- Õigust reguleerib privileeg: HSILM_PLANNING_TEAM_MEMBER_MANAGE.
- Kasutajal on seos eesmärgi asutusega ja sama asutuse meeskonnaliikmete 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 = 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.
- Või kasutaja on eesmärgi meeskonnas ja planeerimise meeskonna liikme rollil on meeskonnaliikmete haldamise õigus.
- Goal.goalScope = INSTITUTIONAL või INDIVIDUAL
- Goal.teamMembers.id = GoalTeamMember.id, mille personalCode = Kasutaja isikukood
- Õigust reguleerib privileeg: HSILM_PLANNING_TEAM_MEMBER_MANAGE.
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 meeskonda uus liige lisatakse. |
personalCode | 1 | String |
| Uue meeskonnaliikme isikukood. |
Väljundid
| Atribuut | Kohustuslikkus, mitmesus | Tüüp | Kirjeldus, täiendav info |
|---|---|---|---|
id | 1 | String | Meeskonnaliikme unikaalne identifikaator. |
personalCode | 1 | String | Meeskonnaliikme isikukood. |
firstName | 0..1 | String | Meeskonnaliikme eesnimi. |
| lastName | 0..1 | String | Meeskonnaliikme perenimi. |
roleType | 0..1 | String | Meeskonnaliikme roll planeerimise moodulis. Väärtusena klassifikaatori HSILM_GOAL_ROLE elemendi viide. |
0..1 | String | Meeskonnaliikme e-posti aadress. | |
phoneNumber | 0..1 | String | Meeskonnaliikme telefoninumber. |
institution | 0..1 | String | Meeskonnaliikme asutuse nimetus. |
jobTitle | 0..1 | String | Meeskonnaliikme ametinimetus. |
profileColor | 1 | String | Meeskonnaliikme profiili värvikood. |
Ärireeglid
- Iga isikukoodi kohta saab sama asutuse/isiku, ametikoha ja asutuse piires olla vaid üks unikaalne meeskonnaliikme kirje.
- Kui sisendis esitatud eesmärgi asutuse/isiku, ametikoha ja asutuse piires ei ole isikukoodil meeskonnaliikme kirjet, tehakse päring EHIS-e kasutajate registrisse. Saadud andmete põhjal täidetakse uue meeskonnaliikme firstName ja lastName väljad.
- Kui isikut EHIS-e kasutajate registris ei leidu, jäävad tema nimeväljad esialgu tühjaks. Need täidetakse automaatselt, kui kasutaja esimest korda sisse logib ja ennast autendib.
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 sisendis esitatud eesmärk (goalId) eksisteerib ja kas päringu käivitanud kasutajal on õigus hallata selle andmeid.
- Kontroll toimub vastavalt üldreeglites kirjeldatud loogikale.
- Kui eesmärki ei leita või see ei vasta üldreeglitele, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
- Süsteem otsib meeskonda lisatava isiku meeskonnaliikme kirjeid:
- Süsteem otsib Objektid#GoalTeamMember objekti, mille:
- personalCode = Sisendis esitatud "personalCode" väärtus
- Kui meeskonnaliiget ei leita, jätkub protsess sammust 6.b.
- Süsteem otsib Objektid#GoalTeamMember objekti, mille:
- Süsteem kontrollib, kas meeskonda lisatav isik on sisendis esitatud eesmärgi (goalId) meeskonnas:
- Süsteem otsib Objektid#Goal objekti, mille:
- id = Sisendis esitatud "goalId" väärtus
- teamMembers.id = üks leitud meeskonnaliikmete ID-dest (Objektid#GoalTeamMember.id)
- Kui tingimustele vastav eesmärk leitakse, lõpetatakse päringu töötlemine ja tagastatakse http veakood (isik juba meeskonnas).
- Süsteem otsib Objektid#Goal objekti, mille:
- Süsteem kontrollib, kas meeskonda lisataval isikul on juba olemas meeskonnaliikme kirjed sisendis esitatud eesmärgi asutuse / isiku, ametikoha ja asutuse piires. Arvestatakse ka arhiveeritud eesmärke.
- Süsteem kontrollib, kas mõni leitud meeskonnaliikmete kirjetest on seotud vähemalt ühe eesmärgiga, mis kuulub samale asutusele / isikule, ametikohale ja asutusele nagu sisendis esitatud eesmärk (goalId).
- Süsteem otsib Objektid#Goal objekte, mille:
- institution.id = Objektid#Goal.institution.id, mille id = sisendis esitatud "goalId" väärtus
- goalScope = Objektid#Goal.goalScope, mille id = sisendis esitatud "goalId" väärtus
- Kui goalScope = INSTITUTIONAL:
- jobsite = NULL
- personalCode = NULL
- Kui goalScope = INDIVIDUAL:
- jobsite = Objektid#Goal.jobsite, mille id = sisendis esitatud "goalId" väärtus
- personalCode = Objektid#Goal.personalCode, mille id = sisendis esitatud "goalId" väärtus
- teamMembers.id = üks leitud meeskonnaliikmete ID-dest (Objektid#GoalTeamMember.id)
- Kui vähemalt üks tingimustele vastav eesmärk leitakse, jätkub protsess edasi sammust 7.
- Kui eesmärki ei leita, jätkub protsess edasi sammust 6.b.
- Süsteem otsib Objektid#Goal objekte, mille:
- Kui isikul ei ole meeskonnaliikme kirjet sisendis esitatud eesmärgi asutuse / isiku, ametikoha ja asutuse piires:
- Süsteem teeb päringu EHIS kasutajate registrisse:
- Süsteem käivitab otsitava isiku andmete saamiseks päringu KA Kasutajate päring, mille sisendiks annakse:
- idCode = Sisendis esitatud "personalCode" väärtust.
- Süsteem käivitab otsitava isiku andmete saamiseks päringu KA Kasutajate päring, mille sisendiks annakse:
- Süsteem loob uue Objektid#GoalTeamMember objekti, täites väljad:
- id = UUID
- personalCode = Sisendis esitatud "personalCode" väärtus
- firstName, lastName = EHIS-i kasutajate registri andmed, kui kasutaja on leitud. Kui ei, jäävad need tühjaks.
- email, phoneNumber, institution, jobTitle = jäävad tühjaks
- profileColor = Süsteem valib eesmärgi juures unikaalse värvikoodi etteantud värvikoodide seast.
- Süsteem teeb päringu EHIS kasutajate registrisse:
- Süsteem kontrollib, kas mõni leitud meeskonnaliikmete kirjetest on seotud vähemalt ühe eesmärgiga, mis kuulub samale asutusele / isikule, ametikohale ja asutusele nagu sisendis esitatud eesmärk (goalId).
- Süsteem seob leitud või just loodud meeskonnaliikme eesmärgiga:
- Süsteem kontrollib, kas isikul on EHIS-es meeskonnaliikmete lisamise/muutmise õigus (HSILM_PLANNING_TEAM_MEMBER_MANAGE).
- Süsteem otsib Objektid#Goal objekti, mille id = goalId ja uuendab selle andmeid järgmiselt:
- teamMembers nimekirja lõppu lisatakse eesmärgi uue meeskonnaliikme andmed:
- teamMembers.id = leitud või just loodud Objektid#GoalTeamMember.id
- Kui isikul on HSILM_PLANNING_TEAM_MEMBER_MANAGE õigus, siis:
- teamMembers.roleType = "TEAM_LEAD" (viide klassifikaatorist HSILM_GOAL_ROLE).
- teamMembers nimekirja lõppu lisatakse eesmärgi uue meeskonnaliikme andmed:
- Süsteem tagastab loodud meeskonnaliikme andmed.