package admin import ( "context" rolev1 "service.xpcool.com/api/admin/v1/system/role" "service.xpcool.com/internal/model/dto" "service.xpcool.com/internal/service/admin/system/role" ) // RoleList pages the roles. func (c *Controller) RoleList(ctx context.Context, req *rolev1.RoleListReq) (res *rolev1.RoleListRes, err error) { items, total, err := role.RoleManage().List(ctx, dto.PageQuery{Page: req.Page, Size: req.Size, Keyword: req.Keyword}) if err != nil { return nil, err } list := make([]*rolev1.RoleItem, 0, len(items)) for _, it := range items { list = append(list, &rolev1.RoleItem{ Id: it.Id, Code: it.Code, Name: it.Name, Status: it.Status, MenuIds: it.MenuIds, CreatedAt: it.CreatedAt, }) } return &rolev1.RoleListRes{List: list, Total: total}, nil } // RoleCreate creates a role. func (c *Controller) RoleCreate(ctx context.Context, req *rolev1.RoleCreateReq) (res *rolev1.RoleCreateRes, err error) { id, err := role.RoleManage().Create(ctx, dto.RoleCreateInput{Code: req.Code, Name: req.Name, Status: req.Status, MenuIds: req.MenuIds}) if err != nil { return nil, err } return &rolev1.RoleCreateRes{Id: id}, nil } // RoleUpdate updates a role. func (c *Controller) RoleUpdate(ctx context.Context, req *rolev1.RoleUpdateReq) (res *rolev1.RoleUpdateRes, err error) { if err = role.RoleManage().Update(ctx, dto.RoleUpdateInput{Id: req.Id, Name: req.Name, Status: req.Status, MenuIds: req.MenuIds}); err != nil { return nil, err } return &rolev1.RoleUpdateRes{}, nil } // RoleDelete deletes a role. func (c *Controller) RoleDelete(ctx context.Context, req *rolev1.RoleDeleteReq) (res *rolev1.RoleDeleteRes, err error) { if err = role.RoleManage().Delete(ctx, req.Id); err != nil { return nil, err } return &rolev1.RoleDeleteRes{}, nil }