diff options
| author | Paul Buetow <paul@buetow.org> | 2024-05-05 15:43:29 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-05-05 15:43:29 +0300 |
| commit | f173d052d3f8679716862d233d8751f67d3b197c (patch) | |
| tree | bfb1e7ca88b669cac319c78aa5c2ebbd737818f1 /submit.go | |
| parent | 2e1e698f3232d72f441bbac7d4bc2c2b29accaf8 (diff) | |
can retrieve JSON payload
Diffstat (limited to 'submit.go')
| -rw-r--r-- | submit.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/submit.go b/submit.go new file mode 100644 index 0000000..2c65d6b --- /dev/null +++ b/submit.go @@ -0,0 +1,39 @@ +package main + +import ( + "crypto/sha256" + "fmt" + "io" + "net/http" + "time" +) + +func handleSubmit(w http.ResponseWriter, r *http.Request, dataDir string) error { + if r.Method != "POST" { + return fmt.Errorf("Expexted POST request") + } + + bytes, err := io.ReadAll(r.Body) + if err != nil { + return err + } + + entry, err := newEntry(bytes) + if err != nil { + return err + } + + filePath := fmt.Sprintf("%s/%s/%x.json", dataDir, + time.Now().Format("2006"), sha256.Sum256(bytes)) + + jsonStr, err := entry.serialize() + if err != nil { + return err + } + + if err := saveFile(filePath, jsonStr); err != nil { + return err + } + + return nil +} |
