func GetArticle(w app.ResponseWriter, r *app.Request) {
	article_id, err := strconv.Atoi(r.PathParams["article_id"])

	if err == nil {
		article := models.Article{}
		article.Find(article_id)

		if article.ID != 0 {
			w.WriteJson(article)
			return
		}
	}
	logging.Logger.Error(fmt.Sprintf("Error: %s", err))
	w.WriteHeader(404)
	w.WriteJson(map[string]string{"error": "article no found"})
}
func PostArticle(w app.ResponseWriter, r *app.Request) {
	user := r.Env["user"].(*models.User)

	title, markdown, category, html := generateArticleContent(r)

	if title == "" {
		w.WriteHeader(400)
		w.WriteJson(map[string]string{"error": "missing stuff"})
		return
	}

	// create article
	article := models.Article{Title: title, Content: string(html), Markdown: markdown}
	user.AddArticle(&article)
	category.AddArticle(&article)
	article.Create()

	w.WriteJson(article)
}
func ModifyArticle(w app.ResponseWriter, r *app.Request) {
	article_id, err := strconv.Atoi(r.PathParams["article_id"])

	if err == nil {
		title, markdown, _, html := generateArticleContent(r)

		article := models.Article{}
		article.Find(article_id)

		if article.ID != 0 {
			article.Title = title
			article.Markdown = markdown
			article.Content = string(html)
			// category.AddArticle(&article)
			article.Save()
			w.WriteJson(article)
			return
		}
	}
	logging.Logger.Error(fmt.Sprintf("Error: %s", err))
	w.WriteHeader(404)
	w.WriteJson(map[string]string{"error": "article no found"})
}