Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added delete apis #28

Merged
merged 2 commits into from
Dec 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ build_ui:
pnpm --dir ./ui build

build_bin:
GOARCH=amd64 GOOS=darwin go build -o bin/${BINARY_NAME}-darwin
GOARCH=amd64 GOOS=darwin CGO_ENABLED=1 go build -o bin/${BINARY_NAME}-darwin
CC="x86_64-linux-musl-gcc" GOARCH=amd64 GOOS=linux go build -o bin/${BINARY_NAME}-linux
CC="x86_64-w64-mingw32-gcc" GOARCH=amd64 GOOS=windows go build -o bin/${BINARY_NAME}-windows

Expand Down
14 changes: 14 additions & 0 deletions database/addDoc.go → database/doc.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,17 @@ func AddDoc(fileName string, fileHashBuffer []byte) (string, bool) {
return entries[0].FileName, true
}
}


func DeleteDoc(fileName string) (string, bool) {
var doc models.Doc

result := DB.Where("file_name = ?", fileName).First(&doc)

if result.Error == nil {
DB.Delete(&doc)
return fileName, true
} else {
return "", false
}
}
13 changes: 13 additions & 0 deletions database/addImage.go → database/image.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,16 @@ func AddImage(fileName string, fileHashBuffer []byte) (string, bool) {
return entries[0].FileName, true
}
}

func DeleteImage(fileName string) (string, bool) {
var image models.Image

result := DB.Where("file_name = ?", fileName).First(&image)

if result.Error == nil {
DB.Delete(&image)
return fileName, true
} else {
return "", false
}
}
8 changes: 7 additions & 1 deletion router/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,12 @@ func AddApiRoutes(r *gin.Engine) {
upload := cdn.Group("/upload")
{
upload.POST("/image", iHandlers.HandleImageUpload)
upload.POST("/doc", dHandlers.HandleDocsUpload)
upload.POST("/doc", dHandlers.HandleDocUpload)
}

delete := cdn.Group("/delete")
{
delete.DELETE("/image/:filename", iHandlers.HandleImageDelete)
delete.DELETE("/doc/:filename", dHandlers.HandleDocDelete)
}
}
36 changes: 36 additions & 0 deletions util/handlers/docs/handleDocDelete.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package handlers

import (
"net/http"

"fmt"
"github.com/gin-gonic/gin"
"github.com/go-fast-cdn/database"
"github.com/go-fast-cdn/util"
"os"
)

func HandleDocDelete(c *gin.Context) {
fileName := c.Param("filename")
if fileName == "" {
c.JSON(http.StatusBadRequest, gin.H{
"error": "Doc name is required",
})
return
}
deletedFileName, success := database.DeleteDoc(fileName)
filePath := fmt.Sprintf("%v/uploads/docs/%v", util.ExPath, deletedFileName)
err := os.Remove(filePath)
if success && err == nil {
c.JSON(http.StatusOK, gin.H{
"message": "Document deleted successfuly",
"fileName": deletedFileName,
})
} else {
fmt.Println(success)
fmt.Println(err)
c.JSON(http.StatusNotFound, gin.H{
"error": "Document not found",
})
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
"github.com/go-fast-cdn/util"
)

func HandleDocsUpload(c *gin.Context) {
func HandleDocUpload(c *gin.Context) {
fileHeader, err := c.FormFile("doc")
newName := c.PostForm("filename")

Expand Down
33 changes: 33 additions & 0 deletions util/handlers/image/handleImageDelete.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package handlers

import (
"fmt"
"github.com/gin-gonic/gin"
"github.com/go-fast-cdn/database"
"github.com/go-fast-cdn/util"
"net/http"
"os"
)

func HandleImageDelete(c *gin.Context) {
fileName := c.Param("filename")
if fileName == "" {
c.JSON(http.StatusBadRequest, gin.H{
"error": "Doc name is required",
})
return
}
deletedFileName, success := database.DeleteImage(fileName)
filePath := fmt.Sprintf("%v/uploads/images/%v", util.ExPath, deletedFileName)
err := os.Remove(filePath)
if success && err == nil {
c.JSON(http.StatusOK, gin.H{
"message": "Image deleted successfuly",
"fileName": deletedFileName,
})
} else {
c.JSON(http.StatusNotFound, gin.H{
"error": "Image not found",
})
}
}