From 71fc23bf50116d97d981aa87448b3d22b01f2e8d Mon Sep 17 00:00:00 2001 From: matst80 Date: Thu, 16 Oct 2025 22:49:12 +0200 Subject: [PATCH] update --- cmd/backoffice/fileserver.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/cmd/backoffice/fileserver.go b/cmd/backoffice/fileserver.go index dfe8d0b..6fe0f6c 100644 --- a/cmd/backoffice/fileserver.go +++ b/cmd/backoffice/fileserver.go @@ -5,6 +5,7 @@ import ( "encoding/json" "errors" "fmt" + "io" "io/fs" "net/http" "os" @@ -156,6 +157,34 @@ func (fs *FileServer) CartsHandler(w http.ResponseWriter, r *http.Request) { }) } +func (fs *FileServer) PromotionsHandler(w http.ResponseWriter, r *http.Request) { + fileName := filepath.Join(fs.dataDir, "promotions.json") + if r.Method == http.MethodGet { + file, err := os.Open(fileName) + if err != nil { + writeJSON(w, http.StatusInternalServerError, map[string]string{"error": err.Error()}) + return + } + defer file.Close() + + io.Copy(w, file) + return + } + if r.Method == http.MethodPost { + file, err := os.Create(fileName) + if err != nil { + writeJSON(w, http.StatusInternalServerError, map[string]string{"error": err.Error()}) + return + } + defer file.Close() + + io.Copy(file, r.Body) + return + } + + w.WriteHeader(http.StatusMethodNotAllowed) +} + type JsonError struct { Error string `json:"error"` }