func (nr *NewsResource) SearchNews(c *gin.Context) { var news api.News var multipleNews []api.News params := []string{"patient_id", "spell_id", "location_id", "user_id"} for index, param := range params { id, err := nr.getParamId(c, param) if err != nil { c.JSON(400, api.NewError("problem decoding query parameter sent")) return } if id > 0 { switch { case index == 0: news.PatientId = int32(id) case index == 1: news.SpellId = int32(id) case index == 2: news.LocationId = int32(id) case index == 3: news.UserId = int32(id) } } } if risk := c.Query("risk"); risk != "" { risk := strings.Title(risk) news.Risk = risk } nr.db.Where(&news).Find(&multipleNews) c.JSON(200, multipleNews) }