From 32ab162f99571f0ebc2f854e0319ac516fb546a1 Mon Sep 17 00:00:00 2001 From: Alexis POYEN <apoyen@grandlyon.com> Date: Thu, 28 May 2020 14:41:33 +0200 Subject: [PATCH] Resolve "Prevent duplacated name of election" --- internal/models/election.go | 10 ++++++++++ web/components/management/election.js | 7 +++++++ 2 files changed, 17 insertions(+) diff --git a/internal/models/election.go b/internal/models/election.go index 970cfd4..e62a10a 100644 --- a/internal/models/election.go +++ b/internal/models/election.go @@ -74,6 +74,16 @@ func (d *DataHandler) postElection(w http.ResponseWriter, r *http.Request) { http.Error(w, err.Error(), http.StatusInternalServerError) return } + + var elections []Election + d.db.Find(&elections) + for _, val := range elections { + if o.Name == val.Name { + http.Error(w, "Name Already exist.", 409) + return + } + } + d.db.Create(&o) d.db.Last(&o) json.NewEncoder(w).Encode(o) diff --git a/web/components/management/election.js b/web/components/management/election.js index a7b7f3e..ffbcb2a 100644 --- a/web/components/management/election.js +++ b/web/components/management/election.js @@ -256,6 +256,12 @@ class Election { }), } ); + if (response.status == 409) { + throw new Error( + `The name of the election already exist (status ${response.status})` + + ); + } if (response.status !== 200) { throw new Error( `Election could not be updated or created (status ${response.status})` @@ -266,6 +272,7 @@ class Election { } catch (e) { Messages.Show("is-warning", e.message); console.error(e); + return } Common.toggleModal("election-modal", "election-modal-card"); this.activateElection(election); -- GitLab