Example #1
0
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)
}