diff --git a/.gitignore b/.gitignore index e934adf..fa80e3a 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ cache/ +wallart-server diff --git a/cmd/wallart-server/main.go b/cmd/wallart-server/main.go index 79444df..5095760 100644 --- a/cmd/wallart-server/main.go +++ b/cmd/wallart-server/main.go @@ -35,7 +35,12 @@ func handleUpload(w http.ResponseWriter, r *http.Request) { return } - if pixil.Width != 8 || pixil.Height != 8 { + if err := pixil.Parse(); err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + + if pixil.width != 8 || pixil.height != 8 { http.Error(w, "Invalid image size", http.StatusBadRequest) return } @@ -106,13 +111,13 @@ func handleUpload(w http.ResponseWriter, r *http.Request) { return } - log.Println("New image successfully uploaded") + log.Println("New image successfully uploaded") } func logRequestHandler(h http.Handler) http.Handler { fn := func(w http.ResponseWriter, r *http.Request) { log.Printf("%s %s %s", r.RemoteAddr, r.Method, r.URL) - h.ServeHTTP(w, r) + h.ServeHTTP(w, r) } return http.HandlerFunc(fn) } diff --git a/cmd/wallart-server/pixil.go b/cmd/wallart-server/pixil.go index 3e3c318..e8115b3 100644 --- a/cmd/wallart-server/pixil.go +++ b/cmd/wallart-server/pixil.go @@ -2,6 +2,7 @@ package main import ( "encoding/base64" + "strconv" "strings" ) @@ -11,9 +12,23 @@ type PixilFrame struct { Preview string `json:"preview"` } type Pixil struct { - Width uint `json:"width"` - Height uint `json:"height"` - Frames []PixilFrame `json:"frames"` + width int + height int + WidthString string `json:"width"` + HeightString string `json:"height"` + Frames []PixilFrame `json:"frames"` +} + +func (p *Pixil) Parse() error { + var err error + + p.width, err = strconv.Atoi(p.WidthString) + if err != nil { + return err + } + + p.height, err = strconv.Atoi(p.HeightString) + return err } func (frame *PixilFrame) GetPreview() []byte {