init push
This commit is contained in:
130
backend/handler/v1/kb_user.go
Normal file
130
backend/handler/v1/kb_user.go
Normal file
@@ -0,0 +1,130 @@
|
||||
package v1
|
||||
|
||||
import (
|
||||
"github.com/labstack/echo/v4"
|
||||
|
||||
v1 "github.com/chaitin/panda-wiki/api/kb/v1"
|
||||
"github.com/chaitin/panda-wiki/consts"
|
||||
"github.com/chaitin/panda-wiki/domain"
|
||||
)
|
||||
|
||||
// KBUserList
|
||||
//
|
||||
// @Summary KBUserList
|
||||
// @Description KBUserList
|
||||
// @Tags knowledge_base
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Security bearerAuth
|
||||
// @Param kb_id query string true "Knowledge Base ID"
|
||||
// @Success 200 {object} domain.PWResponse{data=[]v1.KBUserListItemResp}
|
||||
// @Router /api/v1/knowledge_base/user/list [get]
|
||||
func (h *KnowledgeBaseHandler) KBUserList(c echo.Context) error {
|
||||
var req v1.KBUserListReq
|
||||
if err := c.Bind(&req); err != nil {
|
||||
return h.NewResponseWithError(c, "request params is invalid", err)
|
||||
}
|
||||
if err := c.Validate(req); err != nil {
|
||||
return h.NewResponseWithError(c, "validate request params failed", err)
|
||||
}
|
||||
|
||||
resp, err := h.usecase.GetKBUserList(c.Request().Context(), req)
|
||||
if err != nil {
|
||||
return h.NewResponseWithError(c, "get kb user list failed", err)
|
||||
}
|
||||
|
||||
return h.NewResponseWithData(c, resp)
|
||||
}
|
||||
|
||||
// KBUserInvite
|
||||
//
|
||||
// @Summary KBUserInvite
|
||||
// @Description Invite user to knowledge base
|
||||
// @Tags knowledge_base
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Security bearerAuth
|
||||
// @Param param body v1.KBUserInviteReq true "Invite User Request"
|
||||
// @Success 200 {object} domain.Response
|
||||
// @Router /api/v1/knowledge_base/user/invite [post]
|
||||
func (h *KnowledgeBaseHandler) KBUserInvite(c echo.Context) error {
|
||||
var req v1.KBUserInviteReq
|
||||
if err := c.Bind(&req); err != nil {
|
||||
return h.NewResponseWithError(c, "invalid request", err)
|
||||
}
|
||||
if err := c.Validate(&req); err != nil {
|
||||
return h.NewResponseWithError(c, "validate request failed", err)
|
||||
}
|
||||
|
||||
if !domain.GetBaseEditionLimitation(c.Request().Context()).AllowAdminPerm && req.Perm != consts.UserKBPermissionFullControl {
|
||||
return h.NewResponseWithError(c, "当前版本不支持管理员分权控制", nil)
|
||||
}
|
||||
|
||||
err := h.usecase.KBUserInvite(c.Request().Context(), req)
|
||||
if err != nil {
|
||||
return h.NewResponseWithError(c, "invite user to kb failed", err)
|
||||
}
|
||||
|
||||
return h.NewResponseWithData(c, nil)
|
||||
}
|
||||
|
||||
// KBUserUpdate
|
||||
//
|
||||
// @Summary KBUserUpdate
|
||||
// @Description Update user permission in knowledge base
|
||||
// @Tags knowledge_base
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Security bearerAuth
|
||||
// @Param param body v1.KBUserUpdateReq true "Update User Permission Request"
|
||||
// @Success 200 {object} domain.Response
|
||||
// @Router /api/v1/knowledge_base/user/update [patch]
|
||||
func (h *KnowledgeBaseHandler) KBUserUpdate(c echo.Context) error {
|
||||
var req v1.KBUserUpdateReq
|
||||
if err := c.Bind(&req); err != nil {
|
||||
return h.NewResponseWithError(c, "invalid request", err)
|
||||
}
|
||||
if err := c.Validate(&req); err != nil {
|
||||
return h.NewResponseWithError(c, "validate request failed", err)
|
||||
}
|
||||
|
||||
if !domain.GetBaseEditionLimitation(c.Request().Context()).AllowAdminPerm && req.Perm != consts.UserKBPermissionFullControl {
|
||||
return h.NewResponseWithError(c, "当前版本不支持管理员分权控制", nil)
|
||||
}
|
||||
|
||||
err := h.usecase.UpdateUserKB(c.Request().Context(), req)
|
||||
if err != nil {
|
||||
return h.NewResponseWithError(c, "update user kb permission failed", err)
|
||||
}
|
||||
|
||||
return h.NewResponseWithData(c, nil)
|
||||
}
|
||||
|
||||
// KBUserDelete
|
||||
//
|
||||
// @Summary KBUserDelete
|
||||
// @Description Remove user from knowledge base
|
||||
// @Tags knowledge_base
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Security bearerAuth
|
||||
// @Param param query v1.KBUserDeleteReq true "Remove User Request"
|
||||
// @Success 200 {object} domain.Response
|
||||
// @Router /api/v1/knowledge_base/user/delete [delete]
|
||||
func (h *KnowledgeBaseHandler) KBUserDelete(c echo.Context) error {
|
||||
var req v1.KBUserDeleteReq
|
||||
if err := c.Bind(&req); err != nil {
|
||||
return h.NewResponseWithError(c, "invalid request", err)
|
||||
}
|
||||
|
||||
if err := c.Validate(&req); err != nil {
|
||||
return h.NewResponseWithError(c, "validate request failed", err)
|
||||
}
|
||||
|
||||
err := h.usecase.KBUserDelete(c.Request().Context(), req)
|
||||
if err != nil {
|
||||
return h.NewResponseWithError(c, "remove user from kb failed", err)
|
||||
}
|
||||
|
||||
return h.NewResponseWithData(c, nil)
|
||||
}
|
||||
Reference in New Issue
Block a user