diff --git a/internal/models/capturerDeskRound.go b/internal/models/capturerDeskRound.go index eeb51ee03dd20547857cb9c30e030fa14383cc9b..b6fbb086871218a545a9c725fefe8d4570e1c6dd 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 +}