From fe014295acc7a1b5f32f017df7911719dca19d13 Mon Sep 17 00:00:00 2001 From: AlexisPoyen <apoyen@grandlyon.com> Date: Fri, 10 Jul 2020 16:12:25 +0200 Subject: [PATCH] Refactor : factorize code to get capturer and deskround --- internal/models/capturerDeskRound.go | 32 +++++++++++++++------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/internal/models/capturerDeskRound.go b/internal/models/capturerDeskRound.go index eeb51ee..b6fbb08 100644 --- a/internal/models/capturerDeskRound.go +++ b/internal/models/capturerDeskRound.go @@ -48,14 +48,9 @@ func (d *DataHandler) postCapturerDeskRound(w http.ResponseWriter, r *http.Reque http.Error(w, err.Error(), http.StatusInternalServerError) return } - var capturer Capturer - if err := d.db.First(&capturer, o.CapturerID).Error; err != nil { - http.Error(w, ErrorIDDoesNotExist, http.StatusNotFound) - return - } - var deskRound DeskRound - if err := d.db.First(&deskRound, o.DeskRoundID).Error; err != nil { + flag, capturer, deskRound := d.checkCapturerAndDeskRound(o) + if !flag { http.Error(w, ErrorIDDoesNotExist, http.StatusNotFound) return } @@ -72,18 +67,25 @@ func (d *DataHandler) deleteCapturerDeskRound(w http.ResponseWriter, r *http.Req http.Error(w, err.Error(), http.StatusInternalServerError) return } - var capturer Capturer - if err := d.db.First(&capturer, o.CapturerID).Error; err != nil { - http.Error(w, ErrorIDDoesNotExist, http.StatusNotFound) - return - } - var deskRound DeskRound - if err := d.db.First(&deskRound, o.DeskRoundID).Error; err != nil { + flag, capturer, deskRound := d.checkCapturerAndDeskRound(o) + if !flag { http.Error(w, ErrorIDDoesNotExist, http.StatusNotFound) - return } d.db.Model(&capturer).Association("DeskRounds").Delete(&deskRound) json.NewEncoder(w).Encode(capturer) } + +func (d *DataHandler) checkCapturerAndDeskRound(o capturerDeskRound) (bool, Capturer, DeskRound) { + var capturer Capturer + var deskRound DeskRound + if err := d.db.First(&capturer, o.CapturerID).Error; err != nil { + return false, capturer, deskRound + } + + if err := d.db.First(&deskRound, o.DeskRoundID).Error; err != nil { + return false, capturer, deskRound + } + return true, capturer, deskRound +} -- GitLab