PM: API: DevelopmentPlan: DELETE /planning-api/development-plans/{developmentPlanId}/versions/{versionId}
Üldkirjeldus
Teenus võimaldab kustutada olemasoleva arengukava versiooni.
Seotud andmeobjektid:
- Objektid#DevelopmentPlan
- Objektid#DevelopmentPlanSection
- Objektid#DevelopmentPlanElement
- Objektid#DevelopmentPlanGoal
- Objektid#DevelopmentPlanVersion
- Objektid#File
Seotud Jira taskid
NSIL-1016 - Getting issue details... STATUS
Eeltingimused ja kasutusõigused
- Kui tegemist on asutusepõhise arengukavaga (DevelopmentPlan.developmentPlanScope = INSTITUTIONAL):
- Kasutajal on seos arengukava asutusega ning sama asutuse arengukava lisamise ja muutmise õigus.
- DevelopmentPlan.institution.id = Kasutaja poolt valitud rolliga seotud asutus
- Õigust reguleerib privileeg: HSILM_PLANNING_DEV_PLAN_MANAGE.
- Kasutajal on seos arengukava asutusega ning sama asutuse arengukava lisamise ja muutmise õigus.
- Kui tegemist on isikupõhise arengukavaga (DevelopmentPlan.developmentPlanScope = INDIVIDUAL):
- Kasutaja on arengukava omanik.
- DevelopmentPlan.personalCode = Kasutaja isikukood
- Eraldi privileegi ei ole vaja.
- Kasutaja on arengukava omanik.
- Planeerimise meeskonnaliikme rolli valinud kasutajatel ei ole antud funktsionaalsusele ligipääsu.
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 |
|---|---|---|---|---|
versionId | 1 | String |
| Eemaldatava arengukava versiooni unikaalne identifikaator. |
developmentPlanId | 1 | String |
| Viide asutuse / ametikoha muudetavale arengukavale, mille versiooni eemaldatakse. |
Väljundid
| Atribuut | Kohustuslikkus, mitmesus | Tüüp | Kirjeldus, täiendav info |
|---|---|---|---|
| Samad nagu teenusel: PM: API: DevelopmentPlan: POST /planning-api/development-plans/{developmentPlanId}/url-versions. | |||
Tegevused
- Süsteem kontrollib, kas kasutajal on õigust päringut teostada.
- Kui kasutajal puudub vastav õigus, 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 arengukava versioon (versionId) eksisteerib:
- Otsitakse Objektid#DevelopmentPlanVersion objekti, mille:
- id = sisendis esitatud versionId väärtus
- Kui vastavat arengukava versiooni ei leita, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
- Otsitakse Objektid#DevelopmentPlanVersion objekti, mille:
- Kontrollitakse, kas sisendis esitatud arengukava (developmentPlanId) on muudetav.
- Otsitakse Objektid#DevelopmentPlan objekti, mille:
- id = sisendis esitatud developmentPlanId väärtus
- editable = true
- Kui tingimustele vastavat arengukava ei leita, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
- Otsitakse Objektid#DevelopmentPlan objekti, mille:
- Kontrollitakse, kas sisendis esitatud arengukava versioon kuulub samale asutusele / isikule ja ametikohale nagu muudetav arengukava.
- Otsitakse Objektid#DevelopmentPlan objekti, mille:
- id = sisendis esitatud versiooniga seotud arengukava ID (Objektid#DevelopmentPlanVersion.developmentPlanId)
- editable = false
- institution.id = sisendis esitatud arengukava asutus (Objektid#DevelopmentPlan.institution.id)
- jobsite = sisendis esitatud arengukava asutus (Objektid#DevelopmentPlan.jobsite)
- personalCode = sisendis esitatud arengukava asutus (Objektid#DevelopmentPlan.personalCode)
- Kui tingimustele vastavat arengukava ei leita, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
- Otsitakse Objektid#DevelopmentPlan objekti, mille:
- Kui tegemist on PDF-failina jagatud versiooniga (Objektid#DevelopmentPlanVersion.versionType = "PDF"), eemaldatakse süsteemist sellega seotud fail:
- Tuvastatakse PDF-faili asukoht failihoidlas:
- Otsitakse Objektid#File objekti, mille:
- id = sisendis esitatud versiooniga seotud faili ID (Objektid#DevelopmentPlanVersion.fileId)
- Kui sellist objekti ei leita, logitakse viga.
- Otsitakse Objektid#File objekti, mille:
- Eemaldatakse fail ja selle metaandmed:
- Failihoidlast eemaldatakse fail, mille id = leitud Objektid#File.fileSystemId.
- Eemaldatakse varem leitud Objektid#File.
- kse päringu töötlemine ja tagastatakse http veakood.
- Tuvastatakse PDF-faili asukoht failihoidlas:
- Kui tegemist on URL-ina jagatud versiooniga (Objektid#DevelopmentPlanVersion.versionType = "URL"), eemaldatakse süsteemist selle andmed:
- Süsteem eemaldab versiooni sektsioonid ja vormielemendid:
- Otsitakse versiooniga seotud sektsioone:
- Otsitakse kõiki Objektid#DevelopmentPlanSection objekte, mille:
- developmentPlanId = sisendis esitatud versiooniga seotud arengukava ID (Objektid#DevelopmentPlanVersion.developmentPlanId)
- Kui ühtegi sektsiooni ei leita, jätkub protsess sammust 7.b.
- Otsitakse kõiki Objektid#DevelopmentPlanSection objekte, mille:
- Iga leitud sektsiooni kohta:
- Otsitakse kõiki sellega seotud vormielemente:
- Otsitakse kõiki Objektid#DevelopmentPlanElement objekte, mille:
- developmentPlanSectionId = töödeldava sektsiooni ID (Objektid#DevelopmentPlanSection.id)
- Kui ühtegi vormielementi ei leita, liigub süsteem järgmise sektsiooni juurde.
- Kui tingimustele vastavad vormielemendid leitakse:
- Iga leitud vormielemendi puhul, mille inputType = "IMAGE":
- Tuvastatakse vormielemendiga seotud pildifaili asukoht failihoidlas:
- Otsitakse Objektid#File objekti, mille:
- id = töödeldava vormielemendi Objektid#DevelopmentPlanElement.file.id väärtus
- Kui sellist objekti ei leita, logitakse viga.
- Otsitakse Objektid#File objekti, mille:
- Süsteemist eemaldatakse fail ja selle metaandmed:
- Failihoidlast eemaldatakse fail, mille id = leitud Objektid#File.fileSystemId väärtus.
- Eemaldatakse varem leitud Objektid#File.
- Tuvastatakse vormielemendiga seotud pildifaili asukoht failihoidlas:
- Seejärel eemaldatakse töödeldav vormielement (Objektid#DevelopmentPlanElement.id) jäädavalt andmebaasist.
- Iga leitud vormielemendi puhul, mille inputType = "IMAGE":
- Otsitakse kõiki Objektid#DevelopmentPlanElement objekte, mille:
- Kui kõik sektsiooni vormielemendid on eemaldatud, eemaldatakse ka sektsioon (Objektid#DevelopmentPlanSection.id) jäädavalt andmebaasist.
- Otsitakse kõiki sellega seotud vormielemente:
- Otsitakse versiooniga seotud sektsioone:
- Süsteem eemaldab versiooniga seotud eesmärgid:
- Otsitakse versiooni eesmärke:
- Otsitakse kõiki Objektid#DevelopmentPlanGoal objekte, mille:
- developmentPlanId = sisendis esitatud versiooniga seotud arengukava ID (Objektid#DevelopmentPlanVersion.developmentPlanId)
- Kõik leitud eesmärgid eemaldatakse andmebaasist jäädavalt.
- Otsitakse kõiki Objektid#DevelopmentPlanGoal objekte, mille:
- Otsitakse versiooni eesmärke:
- Süsteem kustutab arengukava versiooni põhiandmed:
- Kui sisendis esitatud arengukava versioonil on logo (versiooniga seotud arengukava Objektid#DevelopmentPlan.logoFileId != NULL), kustutatakse see.
- Tuvastatakse logo faili asukoht failihoidlas:
- Otsitakse Objektid#File objekti, mille:
- id = versiooniga seotud arengukava Objektid#DevelopmentPlan.logoFileId väärtus
- Kui sellist objekti ei leita, logitakse viga.
- Otsitakse Objektid#File objekti, mille:
- Süsteemist eemaldatakse fail ja selle metaandmed:
- Failihoidlast eemaldatakse fail, mille id = leitud Objektid#File.fileSystemId väärtus.
- Eemaldatakse varem leitud Objektid#File.
- Tuvastatakse logo faili asukoht failihoidlas:
- Eemaldatakse andmebaasist jäädavalt versiooniga seotud Objektid#DevelopmentPlan objekt.
- Eemaldatakse Objektid#DevelopmentPlan objekt, mille id = sisendis esitatud versiooni Objektid#DevelopmentPlanVersion.developmentPlanId väärtus.
- Kui sisendis esitatud arengukava versioonil on logo (versiooniga seotud arengukava Objektid#DevelopmentPlan.logoFileId != NULL), kustutatakse see.
- Süsteem eemaldab versiooni sektsioonid ja vormielemendid:
- Süsteem kustutab arengukava versiooni:
- Eemaldatakse Objektid#DevelopmentPlanVersion objekti, mille id = sisendis esitatud versionId väärtus.
- Süsteem tagastab kustutatud arengukava versiooni andmed.