|
|
@@ -6,7 +6,6 @@ import (
|
|
|
"woord-core-service/model"
|
|
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
- "gorm.io/gorm"
|
|
|
)
|
|
|
|
|
|
type ListDictsResponse struct {
|
|
|
@@ -16,9 +15,7 @@ type ListDictsResponse struct {
|
|
|
|
|
|
// 列出所有词库
|
|
|
func ListDicts(c *gin.Context) {
|
|
|
- dicts, err := model.ListDicts(&model.Dict{
|
|
|
- UserID: c.MustGet(AuthUserKey).(uint),
|
|
|
- })
|
|
|
+ dicts, err := model.ListDicts(c.MustGet(AuthUserKey).(uint))
|
|
|
if err != nil {
|
|
|
respondUnknownError(c, err)
|
|
|
return
|
|
|
@@ -52,12 +49,7 @@ func GetDict(c *gin.Context) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- dict, err := model.GetDict(&model.Dict{
|
|
|
- Model: &gorm.Model{
|
|
|
- ID: request.DictID,
|
|
|
- },
|
|
|
- UserID: c.MustGet(AuthUserKey).(uint),
|
|
|
- })
|
|
|
+ dict, err := model.GetDict(request.DictID, c.MustGet(AuthUserKey).(uint))
|
|
|
if err != nil {
|
|
|
if errors.Is(err, model.ErrDictNotFound) {
|
|
|
respondError(c, http.StatusNotFound, err)
|
|
|
@@ -67,9 +59,7 @@ func GetDict(c *gin.Context) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- words, err := model.ListWords(&model.Word{
|
|
|
- DictID: request.DictID,
|
|
|
- })
|
|
|
+ words, err := model.ListWords(request.DictID)
|
|
|
if err != nil {
|
|
|
respondUnknownError(c, err)
|
|
|
return
|
|
|
@@ -86,9 +76,9 @@ func GetDict(c *gin.Context) {
|
|
|
|
|
|
type CreateDictRequest struct {
|
|
|
DictName string `form:"name" binding:"required"`
|
|
|
- ValueTitle string `form:"value" binding:"required"`
|
|
|
- MeaningTitle string `form:"meaning" binding:"required"`
|
|
|
- ExtraTitle string `form:"extra"`
|
|
|
+ ValueTitle string `form:"valueTitle" binding:"required"`
|
|
|
+ MeaningTitle string `form:"meaningTitle" binding:"required"`
|
|
|
+ ExtraTitle string `form:"extraTitle"`
|
|
|
}
|
|
|
|
|
|
// 创建词库
|
|
|
@@ -99,13 +89,42 @@ func CreateDict(c *gin.Context) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- dict, err := model.CreateDict(&model.Dict{
|
|
|
- Name: request.DictName,
|
|
|
- ValueTitle: request.ValueTitle,
|
|
|
- MeaningTitle: request.MeaningTitle,
|
|
|
- ExtraTitle: request.ExtraTitle,
|
|
|
- UserID: c.MustGet(AuthUserKey).(uint),
|
|
|
- })
|
|
|
+ dict, err := model.CreateDict(request.DictName, request.ValueTitle, request.MeaningTitle, request.ExtraTitle, c.MustGet(AuthUserKey).(uint))
|
|
|
+ if err != nil {
|
|
|
+ respondUnknownError(c, err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ respondOK(c, dict)
|
|
|
+}
|
|
|
+
|
|
|
+type UpdateDictRequest struct {
|
|
|
+ DictID uint `form:"id" binding:"required"`
|
|
|
+ DictName string `form:"name" binding:"required"`
|
|
|
+ ValueTitle string `form:"valueTitle" binding:"required"`
|
|
|
+ MeaningTitle string `form:"meaningTitle" binding:"required"`
|
|
|
+ ExtraTitle string `form:"extraTitle"`
|
|
|
+}
|
|
|
+
|
|
|
+// 更新词库
|
|
|
+func UpdateDict(c *gin.Context) {
|
|
|
+ var request UpdateDictRequest
|
|
|
+ if err := c.ShouldBind(&request); err != nil {
|
|
|
+ respondError(c, http.StatusBadRequest, err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ _, err := model.GetDict(request.DictID, c.MustGet(AuthUserKey).(uint))
|
|
|
+ if err != nil {
|
|
|
+ if errors.Is(err, model.ErrDictNotFound) {
|
|
|
+ respondError(c, http.StatusNotFound, err)
|
|
|
+ } else {
|
|
|
+ respondUnknownError(c, err)
|
|
|
+ }
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ dict, err := model.UpdateDict(request.DictID, request.DictName, request.ValueTitle, request.MeaningTitle, request.ExtraTitle)
|
|
|
if err != nil {
|
|
|
respondUnknownError(c, err)
|
|
|
return
|
|
|
@@ -113,3 +132,34 @@ func CreateDict(c *gin.Context) {
|
|
|
|
|
|
respondOK(c, dict)
|
|
|
}
|
|
|
+
|
|
|
+type DeleteDictRequest struct {
|
|
|
+ DictID uint `form:"id" binding:"required"`
|
|
|
+}
|
|
|
+
|
|
|
+// 删除词库
|
|
|
+func DeleteDict(c *gin.Context) {
|
|
|
+ var request DeleteDictRequest
|
|
|
+ if err := c.ShouldBind(&request); err != nil {
|
|
|
+ respondError(c, http.StatusBadRequest, err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ _, err := model.GetDict(request.DictID, c.MustGet(AuthUserKey).(uint))
|
|
|
+ if err != nil {
|
|
|
+ if errors.Is(err, model.ErrDictNotFound) {
|
|
|
+ respondError(c, http.StatusNotFound, err)
|
|
|
+ } else {
|
|
|
+ respondUnknownError(c, err)
|
|
|
+ }
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ err = model.DeleteDict(request.DictID)
|
|
|
+ if err != nil {
|
|
|
+ respondUnknownError(c, err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ respondOK(c, nil)
|
|
|
+}
|