package calls

import (
	"fmt"
	"log"
	"net/http"
	"strconv"

	b "streifling.com/jason/cpolis/cmd/backend"
)

func ServeArticle(c *b.Config, db *b.DB) http.HandlerFunc {
	return func(w http.ResponseWriter, r *http.Request) {
		if tokenIsVerified(w, r, c) {
			idString := r.PathValue("id")
			id, err := strconv.ParseInt(idString, 10, 64)
			if err != nil {
				log.Println(err)
				http.Error(w, err.Error(), http.StatusInternalServerError)
				return
			}

			article, err := db.GetArticle(id)
			if err != nil {
				log.Println(err)
				http.Error(w, err.Error(), http.StatusInternalServerError)
				return
			}

			fmt.Fprint(w, article.Content)
		}
	}
}