From 55acb46da2450116834ef2357d01925fdcee09a3 Mon Sep 17 00:00:00 2001 From: Emile Date: Fri, 18 Oct 2019 23:37:06 +0200 Subject: added some endpoints --- src/http.go | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/src/http.go b/src/http.go index a813ae6..6ba657a 100644 --- a/src/http.go +++ b/src/http.go @@ -3,7 +3,10 @@ package main import ( "flag" "fmt" + "io/ioutil" + "log" "net/http" + "strings" "github.com/gorilla/mux" ) @@ -20,6 +23,11 @@ func setupHTTPServer() http.Server { r := mux.NewRouter() r.HandleFunc("/", indexHandler) + r.HandleFunc("/create", createGetHandler).Methods("GET") + r.HandleFunc("/create", createPostHandler).Methods("POST") + r.HandleFunc("/view", viewGetHandler).Methods("GET") + r.HandleFunc("/edit", editGetHandler).Methods("GET") + r.HandleFunc("/edit", editPostHandler).Methods("POST") return http.Server{ Addr: fmt.Sprintf("0.0.0.0:%d", *port), @@ -31,3 +39,40 @@ func setupHTTPServer() http.Server { func indexHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "%s", "Hello World!\n") } + +func createGetHandler(w http.ResponseWriter, r *http.Request) { + log.Println("create GET") + readFileToResponse(w, "/create.html") +} + +func createPostHandler(w http.ResponseWriter, r *http.Request) { + log.Println("create POST") +} + +func viewGetHandler(w http.ResponseWriter, r *http.Request) { + log.Println("ciew GET") + readFileToResponse(w, "/view.html") +} + +func editGetHandler(w http.ResponseWriter, r *http.Request) { + log.Println("edit GET") + readFileToResponse(w, "/edit.html") +} + +func editPostHandler(w http.ResponseWriter, r *http.Request) { + log.Println("edit POST") + +} + +// Helper function to host files off of "hosted/" directory +func readFileToResponse(w http.ResponseWriter, path string) { + requestedFile := strings.Replace(path, "..", "", -1) + + contents, readError := ioutil.ReadFile(fmt.Sprintf("hosted/%s", requestedFile)) + + if readError != nil { + w.Write([]byte(fmt.Sprintf("unable to read %s", requestedFile))) + } else { + w.Write([]byte(contents)) + } +} -- cgit 1.4.1