Skip to content

Commit 9f73c36

Browse files
committed
added routes for delete api
restructure database package files renamed: database/addDoc.go -> database/doc.go renamed: database/addImage.go -> database/image.go modified: router/api.go - added routes for delete api renamed: util/handlers/docs/handleDocsUpload.go -> util/handlers/docs/handleDocUpload.go
1 parent 584a09e commit 9f73c36

File tree

6 files changed

+104
-2
lines changed

6 files changed

+104
-2
lines changed

database/addDoc.go database/doc.go

+14
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,17 @@ func AddDoc(fileName string, fileHashBuffer []byte) (string, bool) {
1919
return entries[0].FileName, true
2020
}
2121
}
22+
23+
24+
func DeleteDoc(fileName string) (string, bool) {
25+
var doc models.Doc
26+
27+
result := DB.Where("file_name = ?", fileName).First(&doc)
28+
29+
if result.Error == nil {
30+
DB.Delete(&doc)
31+
return fileName, true
32+
} else {
33+
return "", false
34+
}
35+
}

database/addImage.go database/image.go

+13
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,16 @@ func AddImage(fileName string, fileHashBuffer []byte) (string, bool) {
1919
return entries[0].FileName, true
2020
}
2121
}
22+
23+
func DeleteImage(fileName string) (string, bool) {
24+
var image models.Image
25+
26+
result := DB.Where("file_name = ?", fileName).First(&image)
27+
28+
if result.Error == nil {
29+
DB.Delete(&image)
30+
return fileName, true
31+
} else {
32+
return "", false
33+
}
34+
}

router/api.go

+7-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,12 @@ func AddApiRoutes(r *gin.Engine) {
2929
upload := cdn.Group("/upload")
3030
{
3131
upload.POST("/image", iHandlers.HandleImageUpload)
32-
upload.POST("/doc", dHandlers.HandleDocsUpload)
32+
upload.POST("/doc", dHandlers.HandleDocUpload)
33+
}
34+
35+
delete := cdn.Group("/delete")
36+
{
37+
delete.DELETE("/image/:filename", iHandlers.HandleImageDelete)
38+
delete.DELETE("/doc/:filename", dHandlers.HandleDocDelete)
3339
}
3440
}

util/handlers/docs/handleDocDelete.go

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package handlers
2+
3+
import (
4+
"net/http"
5+
6+
"fmt"
7+
"github.com/gin-gonic/gin"
8+
"github.com/go-fast-cdn/database"
9+
"github.com/go-fast-cdn/util"
10+
"os"
11+
)
12+
13+
func HandleDocDelete(c *gin.Context) {
14+
fileName := c.Param("filename")
15+
if fileName == "" {
16+
c.JSON(http.StatusBadRequest, gin.H{
17+
"error": "Doc name is required",
18+
})
19+
return
20+
}
21+
deletedFileName, success := database.DeleteDoc(fileName)
22+
filePath := fmt.Sprintf("%v/uploads/docs/%v", util.ExPath, deletedFileName)
23+
err := os.Remove(filePath)
24+
if success && err == nil {
25+
c.JSON(http.StatusOK, gin.H{
26+
"message": "Document deleted successfuly",
27+
"fileName": deletedFileName,
28+
})
29+
} else {
30+
fmt.Println(success)
31+
fmt.Println(err)
32+
c.JSON(http.StatusNotFound, gin.H{
33+
"error": "Document not found",
34+
})
35+
}
36+
}

util/handlers/docs/handleDocsUpload.go util/handlers/docs/handleDocUpload.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"github.com/go-fast-cdn/util"
1111
)
1212

13-
func HandleDocsUpload(c *gin.Context) {
13+
func HandleDocUpload(c *gin.Context) {
1414
fileHeader, err := c.FormFile("doc")
1515
newName := c.PostForm("filename")
1616

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package handlers
2+
3+
import (
4+
"fmt"
5+
"github.com/gin-gonic/gin"
6+
"github.com/go-fast-cdn/database"
7+
"github.com/go-fast-cdn/util"
8+
"net/http"
9+
"os"
10+
)
11+
12+
func HandleImageDelete(c *gin.Context) {
13+
fileName := c.Param("filename")
14+
if fileName == "" {
15+
c.JSON(http.StatusBadRequest, gin.H{
16+
"error": "Doc name is required",
17+
})
18+
return
19+
}
20+
deletedFileName, success := database.DeleteImage(fileName)
21+
filePath := fmt.Sprintf("%v/uploads/images/%v", util.ExPath, deletedFileName)
22+
err := os.Remove(filePath)
23+
if success && err == nil {
24+
c.JSON(http.StatusOK, gin.H{
25+
"message": "Image deleted successfuly",
26+
"fileName": deletedFileName,
27+
})
28+
} else {
29+
c.JSON(http.StatusNotFound, gin.H{
30+
"error": "Image not found",
31+
})
32+
}
33+
}

0 commit comments

Comments
 (0)