From d719d1ee3048b3e45fbdc2e950dcfbd4ee9a7a9c Mon Sep 17 00:00:00 2001 From: Yuli Date: Wed, 1 Jul 2020 14:51:51 +0300 Subject: [PATCH] delete code LegalBasis --- src/lbasis_api.go | 1 + src/pactivities_db.go | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/src/lbasis_api.go b/src/lbasis_api.go index 889c648..ee4e8f2 100644 --- a/src/lbasis_api.go +++ b/src/lbasis_api.go @@ -99,6 +99,7 @@ func (e mainEnv) deleteLegalBasis(w http.ResponseWriter, r *http.Request, ps htt returnError(w, r, "bad brief format", 405, nil, nil) return } + e.db.unlinkProcessingActivityBrief(brief) e.db.deleteLegalBasis(brief); w.Header().Set("Content-Type", "application/json; charset=utf-8") w.WriteHeader(200) diff --git a/src/pactivities_db.go b/src/pactivities_db.go index ff0f406..d001814 100644 --- a/src/pactivities_db.go +++ b/src/pactivities_db.go @@ -118,6 +118,7 @@ func (dbobj dbcon) unlinkProcessingActivity(activity string, brief string) (bool return false, nil } legalbasis = "" + found := false for _, value := range briefs { if value != brief { if len(legalbasis) > 0 { @@ -125,14 +126,50 @@ func (dbobj dbcon) unlinkProcessingActivity(activity string, brief string) (bool } else { legalbasis = value } + } else { + found = true } } + if found == false { + return true, nil + } bdoc := bson.M{} bdoc["legalbasis"] = legalbasis _, err = dbobj.store.UpdateRecord(storage.TblName.Processingactivities, "activity", activity, &bdoc) return true, err } +func (dbobj dbcon) unlinkProcessingActivityBrief(brief string) (bool, error) { + records, err := dbobj.store.GetList0(storage.TblName.Processingactivities, 0, 0, "") + if err != nil { + return false, err + } + for _, record := range records { + legalbasis := "" + found := false + briefs := strings.Split(record["legalbasis"].(string), ",") + if len(briefs) > 0 { + for _, value := range briefs { + if value != brief { + if len(legalbasis) > 0 { + legalbasis = legalbasis + "," + value + } else { + legalbasis = value + } + } else { + found = true + } + } + } + if found == true { + bdoc := bson.M{} + bdoc["legalbasis"] = legalbasis + dbobj.store.UpdateRecord(storage.TblName.Processingactivities, "activity", record["activity"].(string), &bdoc) + } + } + return true, nil +} + func (dbobj dbcon) listProcessingActivities() ([]byte, int, error) { set := make(map[string]interface{}) records0, err := dbobj.store.GetList0(storage.TblName.Legalbasis, 0, 0, "")