From 63a1cad8d4b17ad9dbdc81a988e5984331a38cfc Mon Sep 17 00:00:00 2001 From: Hamza Ali Date: Mon, 12 Aug 2019 17:53:09 +0700 Subject: [PATCH] HTTP Basic implementation: Print file to STDOUT --- main.go | 60 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 48 insertions(+), 12 deletions(-) diff --git a/main.go b/main.go index 7a1b454..147bae0 100644 --- a/main.go +++ b/main.go @@ -1,9 +1,11 @@ package main import ( + "bytes" "fmt" - "os" - "text/template" + "github.com/gorilla/mux" + "io/ioutil" + "net/http" ) const ( @@ -14,20 +16,54 @@ const ( ) func main() { - t := template.New("svgConv") + //_ := template.New("svgConv") - percentage := 0.999 - fill := percentageToRGB(percentage) + //percentage := 0.999 + //fill := percentageToRGB(percentage) - pill := CoveragePill{ - fmt.Sprintf("%.1f", toFixed(percentage, 3)*100), - baseColour, - fill, + //_ := CoveragePill{ + // fmt.Sprintf("%.1f", toFixed(percentage, 3)*100), + // baseColour, + // fill, + //} + + r := mux.NewRouter() + r.HandleFunc("/upload/go", upload) + _ = http.ListenAndServe(":8080", r) +} + +func upload(w http.ResponseWriter, r *http.Request) { + if r.Method != "POST" { + return + } + + err := r.ParseForm() + if err != nil { + http.Error(w, "Request parameters not parsed", 500) + return } - t, err := t.Parse(svgTemplate) + err = r.ParseMultipartForm(5 << 20) if err != nil { - panic(err) + http.Error(w, "Request parameters not parsed", 500) + return + } + + form := r.Form + + project := form.Get("project") + tag := form.Get("tag") + id := form.Get("id") + file, _, err := r.FormFile("file") + b, _ := ioutil.ReadAll(file) + n := bytes.Index(b, []byte{0}) + content := string(b[n]) + + fmt.Print(content) + + if project == "" || tag == "" || id == "" { + http.Error(w, "Request parameters [secret, project, tag, id] not found", 400) + return } - _ = t.Execute(os.Stdout, pill) + _, _ = fmt.Fprintf(w, "project: '%s'\ntag: '%s'\nid: '%s'\n", project, tag, id) }