feat: add vue-golang-mysql sample

Signed-off-by: fffzlfk <1319933925qq@gmail.com>
This commit is contained in:
fffzlfk
2022-09-03 14:21:46 +08:00
parent c2f8036fd3
commit 6143cd20b0
58 changed files with 4951 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
package controllers
import (
"code-paste/database"
"code-paste/model"
"net/http"
"time"
"github.com/gin-gonic/gin"
"github.com/google/uuid"
)
func generateUUID() string {
return uuid.New().String()
}
func CreatePaste(c *gin.Context) {
var p model.Paste
if err := c.BindJSON(&p); err != nil {
c.AbortWithStatus(http.StatusBadRequest)
return
}
p.ExpiredAt = time.Now().AddDate(0, 0, p.ExpiredDays)
p.ID = generateUUID()
database.DB.Create(&p)
c.JSON(http.StatusAccepted, gin.H{
"status": "ok",
"uuid": p.ID,
})
}

View File

@@ -0,0 +1,26 @@
package controllers
import (
"code-paste/database"
"code-paste/model"
"net/http"
"time"
"github.com/gin-gonic/gin"
)
func ReadPaste(c *gin.Context) {
id := c.Param("id")
var p model.Paste
res := database.DB.First(&p, "id = ?", id)
if res.Error != nil {
c.AbortWithStatus(http.StatusNotFound)
return
}
if p.ExpiredAt.Before(time.Now()) {
database.DB.Delete(&p)
ReadPaste(c)
return
}
c.JSON(http.StatusAccepted, p)
}