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