diff options
| author | Paul Buetow <paul@buetow.org> | 2024-05-06 20:32:35 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-05-06 20:32:35 +0300 |
| commit | 8c2e75df51d1a74d8bca1d3d1a423f777159ba82 (patch) | |
| tree | b340984869230f92d0aea54d104efc5618c54954 /handlers.go | |
| parent | d06809e50aa20b7f2e12ed43374aebb39e77a220 (diff) | |
refactor project file structure
Diffstat (limited to 'handlers.go')
| -rw-r--r-- | handlers.go | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/handlers.go b/handlers.go deleted file mode 100644 index f293e9c..0000000 --- a/handlers.go +++ /dev/null @@ -1,76 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "io" - "net/http" - "os" - "regexp" - "time" -) - -var getIDRe = regexp.MustCompile(`^/[0-9]{4}/[a-z0-9]{64}\.json$`) - -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/%s.json", dataDir, time.Now().Format("2006"), entry.id) - - jsonStr, err := entry.serialize() - if err != nil { - return err - } - - if err := saveFile(filePath, jsonStr); err != nil { - return err - } - - return nil -} - -func handleList(w http.ResponseWriter, r *http.Request, dataDir string) error { - if r.Method != "GET" { - return fmt.Errorf("expexted GET request") - } - - repository := newRepository(dataDir) - ids, err := repository.list() - if err != nil { - return err - } - - jsonData, err := json.Marshal(ids) - if err != nil { - return err - } - - fmt.Fprint(w, string(jsonData)) - return nil -} - -func handleGet(w http.ResponseWriter, r *http.Request, dataDir string) error { - path := r.URL.Query().Get("path") - if !getIDRe.MatchString(path) { - return fmt.Errorf("invalid path %s", path) - } - - data, err := os.ReadFile(fmt.Sprintf("%s/%s", dataDir, path)) - if err != err { - return err - } - - fmt.Fprint(w, string(data)) - return nil -} |
