优化站内信图标和哈夫币发布校验
This commit is contained in:
@@ -2,6 +2,7 @@ package listing
|
||||
|
||||
import (
|
||||
"hfb_sys/backend/pkg/response"
|
||||
"strings"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
@@ -14,7 +15,7 @@ func (h *Handler) Create(c *gin.Context) {
|
||||
}
|
||||
var req CreateRequest
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
response.BadRequest(c, "发布信息不完整")
|
||||
response.BadRequest(c, listingBindErrorMessage(err))
|
||||
return
|
||||
}
|
||||
item, err := h.service.Create(c.Request.Context(), ownerID, req)
|
||||
@@ -37,7 +38,7 @@ func (h *Handler) Update(c *gin.Context) {
|
||||
}
|
||||
var req UpdateRequest
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
response.BadRequest(c, "发布信息不完整")
|
||||
response.BadRequest(c, listingBindErrorMessage(err))
|
||||
return
|
||||
}
|
||||
item, err := h.service.Update(c.Request.Context(), ownerID, id, req)
|
||||
@@ -48,6 +49,17 @@ func (h *Handler) Update(c *gin.Context) {
|
||||
response.OK(c, item)
|
||||
}
|
||||
|
||||
func listingBindErrorMessage(err error) string {
|
||||
if err == nil {
|
||||
return "发布信息不完整"
|
||||
}
|
||||
message := strings.ToLower(err.Error())
|
||||
if strings.Contains(message, "hafcoinamount") || strings.Contains(message, "haf_coin_amount") {
|
||||
return "哈夫币数量格式不正确,请重新填写哈夫币/M后再提交"
|
||||
}
|
||||
return "发布信息不完整"
|
||||
}
|
||||
|
||||
func (h *Handler) SubmitReview(c *gin.Context) {
|
||||
ownerID, ok := currentUserID(c)
|
||||
if !ok {
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package listing
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestListingBindErrorMessage(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
err error
|
||||
want string
|
||||
}{
|
||||
{
|
||||
name: "哈夫币字段格式错误",
|
||||
err: errors.New("json: cannot unmarshal number 197100000.1 into Go struct field CreateRequest.haf_coin_amount of type int64"),
|
||||
want: "哈夫币数量格式不正确,请重新填写哈夫币/M后再提交",
|
||||
},
|
||||
{
|
||||
name: "普通绑定错误",
|
||||
err: errors.New("Key: 'CreateRequest.Title' Error:Field validation for 'Title' failed"),
|
||||
want: "发布信息不完整",
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := listingBindErrorMessage(tt.err); got != tt.want {
|
||||
t.Fatalf("listingBindErrorMessage() = %q, want %q", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user