feat: add manage apis for ApplicationPassword

pull/351/head
textworld 1 year ago
parent 013b939ac7
commit 8cdafbcd4d

@ -6,6 +6,8 @@ import (
"github.com/go-sonic/sonic/model/entity"
"github.com/go-sonic/sonic/model/param"
"github.com/go-sonic/sonic/service"
"github.com/go-sonic/sonic/util/xerr"
"strings"
)
type TagHandler struct {
@ -21,7 +23,7 @@ func NewTagHandler(tagService service.TagService) *TagHandler {
func (handler *TagHandler) List(ctx *gin.Context) (interface{}, error) {
var err error
var listParam param.TagListParam
if err = ctx.ShouldBindJSON(&listParam); err != nil {
if err = ctx.ShouldBind(&listParam); err != nil {
return nil, err
}
@ -38,6 +40,40 @@ func (handler *TagHandler) List(ctx *gin.Context) (interface{}, error) {
return tagDTOList, nil
}
func (handler *TagHandler) Create(ctx *gin.Context) (interface{}, error) {
var err error
var createParam param.TagCreateParam
if err = ctx.ShouldBindJSON(&createParam); err != nil {
return nil, err
}
createParam.Name = strings.TrimSpace(createParam.Name)
if createParam.Name == "" {
return nil, xerr.WithStatus(err, xerr.StatusBadRequest).WithMsg("blank name")
}
tagEntity, err := handler.TagService.GetByName(ctx, createParam.Name)
if err != nil {
return nil, err
}
if tagEntity != nil {
return nil, xerr.WithStatus(err, xerr.StatusBadRequest).WithMsg("tag exists")
}
tagParam := &param.Tag{
Name: createParam.Name,
Slug: createParam.Slug,
Thumbnail: "",
Color: "",
}
create, err := handler.TagService.Create(ctx, tagParam)
if err != nil {
return nil, err
}
return convertToWpTag(create), nil
}
func convertToWpTag(tagEntity *entity.Tag) *wp.TagDTO {
tagDTO := &wp.TagDTO{
ID: tagEntity.ID,

@ -55,6 +55,7 @@ func (s *Server) RegisterRouters() {
}
{
wpCompatibleRouter.GET("/tags", s.wrapWpHandler(s.WpTagHandler.List))
wpCompatibleRouter.POST("/tags", s.wrapWpHandler(s.WpTagHandler.Create))
}
{
wpCompatibleRouter.GET("/users", s.wrapWpHandler(s.WpUserHandler.List))

@ -1,5 +1,12 @@
package param
type TagListParam struct {
Search string `json:"search"`
Search string `form:"search" json:"search"`
}
type TagCreateParam struct {
Description string `json:"description"`
Name string `json:"name"`
Slug string `json:"slug"`
Meta map[string]interface{} `json:"meta"`
}

@ -241,7 +241,7 @@ func (t tagServiceImpl) ListByOption(ctx context.Context, option *param.TagListP
search := strings.TrimSpace(option.Search)
if search != "" {
query.Where(tagDAL.Name.Like("%" + search + "%"))
query = query.Where(tagDAL.Name.Like("%" + search + "%"))
}
return query.Find()

Loading…
Cancel
Save