Skip to content

Commit

Permalink
delete handle
Browse files Browse the repository at this point in the history
  • Loading branch information
mstgnz committed Jan 25, 2024
1 parent 72e42db commit 49b0a33
Showing 1 changed file with 55 additions and 63 deletions.
118 changes: 55 additions & 63 deletions handler/image.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ type Image interface {
GetImage(c *fiber.Ctx) error
UploadImage(c *fiber.Ctx) error
UploadImageWithAws(c *fiber.Ctx) error
ResizeImage(c *fiber.Ctx) error
DeleteImage(c *fiber.Ctx) error
DeleteImageWithAws(c *fiber.Ctx) error
ResizeImage(c *fiber.Ctx) error
UploadImageWithUrl(c *fiber.Ctx) error
}

Expand Down Expand Up @@ -93,71 +93,25 @@ func (i image) GetImage(c *fiber.Ctx) error {
return c.Send(getByte)
}

func (i image) DeleteImage(c *fiber.Ctx) error {

ctx := context.Background()

if err := service.CheckToken(c); err != nil {
return service.Response(c, fiber.StatusBadRequest, false, "Invalid Token")
}

bucket := c.FormValue("bucket")
object := c.FormValue("object")

if len(bucket) == 0 || len(object) == 0 {
return service.Response(c, fiber.StatusBadRequest, false, "invalid path or bucket or file.")
}

// Minio Bucket Exists
if found, _ := i.minioService.BucketExists(ctx, bucket); !found {
return service.Response(c, fiber.StatusBadRequest, false, "Bucket Not Found On Minio!")
}

err := i.minioService.RemoveObject(ctx, bucket, object, minio.RemoveObjectOptions{})
if err != nil {
return service.Response(c, fiber.StatusInternalServerError, false, err.Error())
}

return service.Response(c, fiber.StatusOK, true, "File Successfully Deleted")
}

func (i image) DeleteImageWithAws(c *fiber.Ctx) error {

func (i image) UploadImage(c *fiber.Ctx) error {
ctx := context.Background()

if err := service.CheckToken(c); err != nil {
return service.Response(c, fiber.StatusBadRequest, false, "Invalid Token")
}

path := c.FormValue("path")
bucket := c.FormValue("bucket")
object := c.FormValue("object")

if len(bucket) == 0 || len(object) == 0 {
return service.Response(c, fiber.StatusBadRequest, false, "invalid path or bucket or file.")
}

// Minio Bucket Exists
if found, _ := i.minioService.BucketExists(ctx, bucket); !found {
return service.Response(c, fiber.StatusBadRequest, false, "Bucket Not Found On Minio!")
}

// Aws Bucket Exists
if !i.awsService.BucketExists(bucket) {
return service.Response(c, fiber.StatusBadRequest, false, "Bucket Not Found On Aws S3!")
}

if err := i.minioService.RemoveObject(ctx, bucket, object, minio.RemoveObjectOptions{}); err != nil {
return service.Response(c, fiber.StatusInternalServerError, false, err.Error())
}
file, err := c.FormFile("file")

if err := i.awsService.DeleteObjects(bucket, []string{object}); err != nil {
return service.Response(c, fiber.StatusInternalServerError, false, err.Error())
if file == nil || err != nil {
return service.Response(c, fiber.StatusBadRequest, false, "File Not Found!")
}

return service.Response(c, fiber.StatusOK, true, "File Successfully Deleted")
return i.commonUpload(c, ctx, path, bucket, file, false)
}

func (i image) UploadImage(c *fiber.Ctx) error {
func (i image) UploadImageWithAws(c *fiber.Ctx) error {
ctx := context.Background()

if err := service.CheckToken(c); err != nil {
Expand All @@ -172,25 +126,31 @@ func (i image) UploadImage(c *fiber.Ctx) error {
return service.Response(c, fiber.StatusBadRequest, false, "File Not Found!")
}

return i.commonUpload(c, ctx, path, bucket, file, false)
return i.commonUpload(c, ctx, path, bucket, file, true)
}

func (i image) UploadImageWithAws(c *fiber.Ctx) error {
func (i image) DeleteImage(c *fiber.Ctx) error {
ctx := context.Background()
bucket := c.FormValue("bucket")
object := c.FormValue("object")

if err := service.CheckToken(c); err != nil {
return service.Response(c, fiber.StatusBadRequest, false, "Invalid Token")
if len(bucket) == 0 || len(object) == 0 {
return service.Response(c, fiber.StatusBadRequest, false, "invalid path or bucket or file.")
}

path := c.FormValue("path")
return i.deleteObject(c, ctx, bucket, object, false)
}

func (i image) DeleteImageWithAws(c *fiber.Ctx) error {
ctx := context.Background()
bucket := c.FormValue("bucket")
file, err := c.FormFile("file")
object := c.FormValue("object")

if file == nil || err != nil {
return service.Response(c, fiber.StatusBadRequest, false, "File Not Found!")
if len(bucket) == 0 || len(object) == 0 {
return service.Response(c, fiber.StatusBadRequest, false, "invalid path or bucket or file.")
}

return i.commonUpload(c, ctx, path, bucket, file, true)
return i.deleteObject(c, ctx, bucket, object, true)
}

func (i image) ResizeImage(c *fiber.Ctx) error {
Expand Down Expand Up @@ -371,3 +331,35 @@ func (i image) commonUpload(c *fiber.Ctx, ctx context.Context, path, bucket stri
"link": link,
})
}

// Minio And Aws Delete
func (i image) deleteObject(c *fiber.Ctx, ctx context.Context, bucket, object string, awsDelete bool) error {
// Check token
if err := service.CheckToken(c); err != nil {
return service.Response(c, fiber.StatusBadRequest, false, "Invalid Token")
}

// Check if the bucket exists on Minio
if found, _ := i.minioService.BucketExists(ctx, bucket); !found {
return service.Response(c, fiber.StatusBadRequest, false, "Bucket Not Found On Minio!")
}

// Check if the bucket exists on AWS S3 if required
if awsDelete && !i.awsService.BucketExists(bucket) {
return service.Response(c, fiber.StatusBadRequest, false, "Bucket Not Found On Aws S3!")
}

// Remove object from Minio
if err := i.minioService.RemoveObject(ctx, bucket, object, minio.RemoveObjectOptions{}); err != nil {
return service.Response(c, fiber.StatusInternalServerError, false, err.Error())
}

// Remove object from AWS S3 if required
if awsDelete {
if err := i.awsService.DeleteObjects(bucket, []string{object}); err != nil {
return service.Response(c, fiber.StatusInternalServerError, false, err.Error())
}
}

return service.Response(c, fiber.StatusOK, true, "File Successfully Deleted")
}

0 comments on commit 49b0a33

Please sign in to comment.