PM: API: Goal: DELETE /planning-api/goals/{goalId}/team-members/{teamMemberId}
Üldkirjeldus
Teenus võimaldab eemaldada eesmärgilt meeskonnaliikme.
Seotud andmeobjektid:
Seotud Jira taskid
NSIL-788 - Getting issue details... STATUS
NSIL-915 - 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 haldamise õ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 haldamise õ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 |
|---|---|---|---|---|
teamMemberId | 1 | String |
| Meeskonnaliikme unikaalne identifikaator. |
goalId | 1 | String |
| Viide eesmärgile, mille meeskonnaliige eemaldatakse. |
Väljundid
| Atribuut | Kohustuslikkus, mitmesus | Tüüp | Kirjeldus, täiendav info |
|---|---|---|---|
Samad mis teenusel PM: API: Goal: POST /planning-api/goals/{goalId}/team-members. | |||
Ärireegel
- Kustutatava meeskonnaliikme nimel olevad tegevused ja tööülesanded kantakse üle meeskonnaliikmele, kes ta kustutab.
- Asutusepõhiselt eesmärgilt ei saa eemaldada ainsat meeskonda alles jäänud protsessijuhti.
- Isikupõhiselt eesmärgilt ei saa eemaldada eesmärgi omanikku, kes on ühtlasi alati ka protsessijuht.
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 teostatakse 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 kontrollib, kas sisendis esitatud meeskonnaliige eksisteerib ja kuulub eesmärgi meeskonda.
- Süsteem otsib Objektid#Goal objekti, mille:
- id = Sisendis esitatud "goalId" väärtus
- teamMembers.id = Sisendis esitatud "teamMemberId" väärtus
- Kui tingimustele vastavat eesmärki ei leita, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
- Süsteem otsib Objektid#Goal objekti, mille:
- Süsteem kontrollib, kas kustutatav isik saab olla eesmärgilt eemaldatud:
- Süsteem otsib Objektid#GoalTeamMember objekti, mille:
- id = Sisendis esitatud "teamMemberId" väärtus
- Kui tegemist on isikupõhise eesmärgiga (Objektid#Goal.goalScope = "INDIVIDUAL"):
- Süsteem kontrollib, et kustutatav isik ei oleks eesmärgi omanik.
- Süsteem kontrollib, kas leitud meeskonnaliikme Objektid#GoalTeamMember.personalCode = Objektid#Goal.personalCode, mille id = sisendis esitatud "goalId" väärtus.
- Kui tingimus on täidetud, lõpetatakse päringu töötlemine ja tagastatakse http veakood (isikupõhise eesmärgi omaniku ei saa eesmärgilt eemaldada).
- Süsteem kontrollib, et kustutatav isik ei oleks eesmärgi omanik.
- Kui tegemist, on asutusepõhise eesmärgiga (Objektid#Goal.goalScope = "INSTITUTIONAL"):
- Süsteem kontrollib, et kustutav isik ei oleks ainus meeskonda jäänud protsessijuht.
- Kui eelmises sammus leitud Objektid#GoalTeamMember.roleType = "TEAM_LEAD":
- Süsteem kontrollib, kas Objektid#Goal.teamMembers nimekirjas on kirje, mille:
- id != Sisendis esitatud "teamMemberId" väärtus
- roleType = "TEAM_LEAD"
- Kui ühtegi tingimustele vastavat meeskonnaliiget ei leita, lõpetatakse päringu töötlemine ja tagastatakse http veakood (ainsana meeskonda jäänud meeskonnaliiget kustutada ei saa).
- Süsteem kontrollib, kas Objektid#Goal.teamMembers nimekirjas on kirje, mille:
- Kui eelmises sammus leitud Objektid#GoalTeamMember.roleType = "TEAM_LEAD":
- Süsteem kontrollib, et kasutaja ei saaks ise ennast meeskonnast eemaldada, kui tal on tegevused ja/või tööülesanded: (isikupõhise eesmärgi puhul ei saa kasutaja kunagi ennast eemaldada, kuna meeskonnaliikmete haldamise õigus on ainult eesmärgi omanikul (juhtumit katab punkt 5.b)
- Süsteem kontrollib, kas kasutaja üritab ise ennast eemaldada:
- Süsteem otsib Objektid#GoalTeamMember objekti, mille:
- id = Sisendis esitatud "teamMemberId" väärtus.
- personalCode = Päringu käivitanud kasutaja isikukood.
- Kui meeskonnaliiget ei leita, jätkab protsess sammust 6.
- Süsteem otsib Objektid#GoalTeamMember objekti, mille:
- Süsteem kontrollib, kas kasutaja on määratud vastutajaks mõnda tegevuse või väljakutse eest:
- Süsteem otsib Objektid#GoalActivity ja Objektid#GoalActivityTask objekte, mille:
- goalTeamMemberId = Sisendis esitatud "teamMemberId" väärtus.
- Süsteem otsib Objektid#GoalActivity ja Objektid#GoalActivityTask objekte, mille:
- Kui vähemalt üks tegevus või tööülesanne leitakse, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
- Süsteem kontrollib, kas kasutaja üritab ise ennast eemaldada:
- Süsteem kontrollib, et kustutav isik ei oleks ainus meeskonda jäänud protsessijuht.
- Süsteem otsib Objektid#GoalTeamMember objekti, mille:
- Kustutatava meeskonnaliikme nimel olevad tegevused ja tööülesanded kantakse üle meeskonnaliikmele, kes teostab kustutamise.
- Kui tegemist on asutusepõhise eesmärgiga (sisendis esitatud goalScope = "INSTITUTIONAL"):
- Süsteem kontrollib, kas päringu käivitanud kasutaja on eesmärgi meeskonnas:
- Süsteem otsib Objektid#GoalTeamMember objekti, mille:
- personalCode = Päringu käivitanud kasutaja isikukood
- Süsteem otsib Objektid#Goal objekti, mille:
- id = Sisendis esitatud "goalId" väärtus
- teamMembers.id = üks leitud meeskonnaliikmete ID-dest (Objektid#GoalTeamMember.id)
- Süsteem otsib Objektid#GoalTeamMember objekti, mille:
- Kui kasutaja ei kuulu eesmärgi meeskonda:
- Süsteem kontrollib, kas päringu käivitanud kasutaja kuulub sama asutuse teiste eesmärkide meeskondadesse. Arvestatakse ainult asutusepõhiseid eesmärke.
- 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
- teamMembers.id = üks leitud meeskonnaliikmete ID-dest (Objektid#GoalTeamMember.id)
- Kui ühtegi tingimustele vastavat eesmärki ei leita:
- Süsteem loob uue meeskonnaliikme ja seob ta eesmärgiga:
- Süsteem loob uue Objektid#GoalTeamMember objekti, täites väljad:
- id = UUID.
- personalCode = Päringu käivitanud kasutaja isikukood.
- firstName = Päringu käivitanud kasutaja eesnimi.
- lastName = Päringu käivitanud kasutaja perenimi.
- email, phoneNumber, institution, jobTitle = täidetakse eelmises sammus leitud meeskonnaliikme andmetega. Kui vastavat meeskonnaliiget ei leita, jäävad väljad tühjaks.
- profileColor = süsteem valib eesmärgi juures unikaalse värvikoodi etteantud värvikoodide seast.
- Süsteem loob uue Objektid#GoalTeamMember objekti, täites väljad:
- Süsteem loob uue meeskonnaliikme ja seob ta eesmärgiga:
- Süsteem otsib Objektid#Goal objekte, mille:
- Süsteem lisab leitud või just loodud meeskonnaliikme sisendis esitatud eesmärgi meeskonda:
- Süsteem otsib Objektid#Goal objekti, mille id = sisendis esitatud "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 otsib Objektid#Goal objekti, mille id = sisendis esitatud "goalId" ja uuendab selle andmeid järgmiselt:
- Süsteem kontrollib, kas päringu käivitanud kasutaja kuulub sama asutuse teiste eesmärkide meeskondadesse. Arvestatakse ainult asutusepõhiseid eesmärke.
- Süsteem kontrollib, kas päringu käivitanud kasutaja on eesmärgi meeskonnas:
- Süsteem kannab üle kustutatava meeskonnaliikme nimel olevad tegevused ja tööülesanded üle leitud meeskonnaliikmele:
- Süsteem otsib Objektid#GoalActivity ja Objektid#GoalActivityTask objekte, mille:
- goalTeamMemberId = Sisendis esitatud "teamMemberId" väärtus.
- Kõigi leitud tegevuste ja tööülesannete puhul muudetakse goalTeamMemberId väärtus eelnevalt leitud või just loodud meeskonnaliikme ID-ga.
- Süsteem otsib Objektid#GoalActivity ja Objektid#GoalActivityTask objekte, mille:
- Kui tegemist on asutusepõhise eesmärgiga (sisendis esitatud goalScope = "INSTITUTIONAL"):
- Süsteem eemaldab eesmärgilt sisendis esitatud meeskonnaliikme:
- Süsteem kustutab Objektid#Goal.teamMembers nimekirjast alamobjekti, mille:
- id = sisendis esitatud "goalTeamMemberId" väärtusele
- Süsteem kustutab Objektid#Goal.teamMembers nimekirjast alamobjekti, mille:
- Süsteem kontrollib, kas eemaldatud meeskonnaliikmel on muid eesmärke, ja kui neid ei ole, eemaldab tema kirje andmebaasist jäädavalt.
- Süsteem otsib Objektid#Goal objekte, mille:
- teamMembers.id = Sisendis esitatud "goalTeamMemberId" väärtus
- Kui ühtegi eesmärki ei leita, eemaldatakse meeskonnaliikme kirje andmebaasist jäädavalt.
- Süsteem kustutab Objektid#GoalTeamMember objekti, mille:
- id = Sisendis esitatud "goalTeamMemberId" väärtus.
- Süsteem kustutab Objektid#GoalTeamMember objekti, mille:
- Süsteem otsib Objektid#Goal objekte, mille:
- Süsteem tagastab kustutatud meeskonnaliikme andmed.