package notes

import (
	"fmt"
	"html"
	"io/ioutil"
	"net/http"
	"os"
	"path"
	"strings"
)

func (s *Server) submit(w http.ResponseWriter, r *http.Request) {
	if r.Method != "POST" {
		http.NotFound(w, r)
		return
	}
	content := r.FormValue("content")
	content = html.UnescapeString(content)
	content = strings.ReplaceAll(content, "\r", "")
	p := NewPathFromURL(r.URL.Path)
	os.MkdirAll(path.Dir(p.Local), os.ModePerm)
	if err := ioutil.WriteFile(p.Local, []byte(content), os.ModePerm); err != nil {
		w.WriteHeader(http.StatusInternalServerError)
		fmt.Fprintln(w, err)
	} else {
		url := *r.URL
		url.Path = path.Join("/notes/", p.BaseHREF)
		http.Redirect(w, r, url.String(), http.StatusSeeOther)
	}
}
