Esempio n. 1
0
func (c *appContext) createarticleHandler(w http.ResponseWriter, r *http.Request) {
	body := context.Get(r, "body").(*articlesModel.ArticleResource)
	repo := articlesModel.ArticleRepo{c.db.C("articles")}
	doc, err := goquery.NewDocument(body.Data.URL)
	if err != nil {
		log.Fatal(err)
	}

	body.Data.Title = doc.Find("h1").Text()
	doc.Find("p").Each(func(i int, s *goquery.Selection) {
		html, err := s.Html()
		if err != nil {
			log.Fatal(err)
		}

		body.Data.Article += html
	})
	body.Data.Date = time.Now()

	err = repo.Create(&body.Data)
	if err != nil {
		log.Fatal(err)
	}

	w.Header().Set("Content-Type", "application/vnd.api+json")
	w.WriteHeader(201)
	json.NewEncoder(w).Encode(body)
}