From fc281bc12b07e3d3c1616b5c057d2658860c0470 Mon Sep 17 00:00:00 2001 From: log101 Date: Tue, 3 Sep 2024 09:41:04 +0300 Subject: [PATCH] feat: better error handling --- handlers/handlers.go | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/handlers/handlers.go b/handlers/handlers.go index 2cdff22..ba43473 100644 --- a/handlers/handlers.go +++ b/handlers/handlers.go @@ -30,11 +30,18 @@ func KonuluKonumCreate(c *fiber.Ctx) error { // Geolocation is stored as JSON array string geolocation := fmt.Sprintf("[%s]", form.Value["geolocation"][0]) - file := form.File["selected-photo"][0] + file := form.File["selected-photo"] + if len(file) != 1 { + fmt.Fprintln(os.Stderr, err) + redirectUrl := fmt.Sprintf("%s?error=%s", clientURL, "true") + return c.Redirect(redirectUrl) + } - newFile, err := file.Open() + newFile, err := file[0].Open() if err != nil { fmt.Fprintln(os.Stderr, err) + redirectUrl := fmt.Sprintf("%s?error=%s", clientURL, "true") + return c.Redirect(redirectUrl) } defer newFile.Close() @@ -42,21 +49,27 @@ func KonuluKonumCreate(c *fiber.Ctx) error { data, err := io.ReadAll(newFile) if err != nil { fmt.Fprintln(os.Stderr, err) + redirectUrl := fmt.Sprintf("%s?error=%s", clientURL, "true") + return c.Redirect(redirectUrl) } // Compress image file and convert to webp newImage, err := bimg.NewImage(data).Convert(bimg.WEBP) if err != nil { fmt.Fprintln(os.Stderr, err) + redirectUrl := fmt.Sprintf("%s?error=%s", clientURL, "true") + return c.Redirect(redirectUrl) } // Save image file in public folder - imageName := strings.Split(file.Filename, ".")[0] + imageName := strings.Split(file[0].Filename, ".")[0] imagePath := fmt.Sprintf("./public/%s.webp", imageName) imageURL := fmt.Sprintf("%s.webp", imageName) err = bimg.Write(imagePath, newImage) if err != nil { fmt.Fprintln(os.Stderr, err) + redirectUrl := fmt.Sprintf("%s?error=%s", clientURL, "true") + return c.Redirect(redirectUrl) } // Generate public uri for the image this will be the