Ejemplo n.º 1
0
func (c articlesController) ServeHTTP(w app.ResponseWriter, r *app.Request) {
	var err error

	// default args
	offset := 0
	limit := c.PagePerNumberMAX
	category_id := 0
	err = nil

	str_category_id := r.PathParams["category_id"]
	if str_category_id != "" {
		category_id, err = strconv.Atoi(str_category_id)
		if err != nil {
			logging.Logger.Error(fmt.Sprintf("Error: %s", err))
			category_id = 0
		}
	}

	uri_params := r.URL.Query()

	if limit_str := uri_params["limit"]; limit_str != nil {
		limit, err = strconv.Atoi(limit_str[0])
		if err != nil {
			logging.Logger.Error(fmt.Sprintf("Error: %s", err))
			limit = c.PagePerNumberMAX
		}
	}

	if offset_str := uri_params["offset"]; offset_str != nil {
		offset, err = strconv.Atoi(offset_str[0])
		if err != nil {
			logging.Logger.Error(fmt.Sprintf("Error: %s", err))
			offset = 0
		}
	}

	category := models.Category{ID: category_id}
	articles := category.AllArticles(offset, limit)

	w.WriteJson(articles)
}