package calls

import (
	"log"
	"net/http"
	"path/filepath"

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

func ServeImage(c *b.Config, s *b.CookieStore) http.HandlerFunc {
	return func(w http.ResponseWriter, r *http.Request) {
		if _, err := f.GetSession(w, r, c, s); err != nil {
			if !tokenIsVerified(w, r, c) {
				return
			}
		}

		absFilepath, err := filepath.Abs(c.PicsDir)
		if err != nil {
			log.Println(err)
			http.Error(w, err.Error(), http.StatusInternalServerError)
			return
		}

		http.ServeFile(w, r, absFilepath+"/"+r.PathValue("pic"))
	}
}