package badge import ( "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/routers/response" "code.gitea.io/gitea/services/admin/operate_log" "errors" ) func GetBadgeList(opts models.GetBadgeOpts) (int64, []*models.Badge4AdminShow, error) { total, list, err := models.GetBadgeList(opts) if err != nil { return 0, nil, err } if len(list) == 0 { return 0, nil, nil } r := make([]*models.Badge4AdminShow, len(list)) for i := 0; i < len(list); i++ { r[i] = list[i].ToShow() } return total, r, nil } func AddBadge(m models.BadgeOperateReq, doer *models.User) *response.BizError { _, err := models.GetBadgeCategoryById(m.CategoryId) if err != nil { if models.IsErrRecordNotExist(err) { return response.NewBizError(errors.New("badge category is not available")) } return response.NewBizError(err) } _, err = models.AddBadge(m.ToDTO()) if err != nil { return response.NewBizError(err) } operate_log.Log4Add(operate_log.BadgeOperate, m, doer.ID, "新增了勋章") return nil } func EditBadge(m models.BadgeOperateReq, doer *models.User) *response.BizError { if m.ID == 0 { log.Error(" EditBadge param error") return response.NewBizError(errors.New("param error")) } old, err := models.GetBadgeById(m.ID) if err != nil { return response.NewBizError(err) } _, err = models.UpdateBadgeById(m.ID, m.ToDTO()) if err != nil { return response.NewBizError(err) } operate_log.Log4Edit(operate_log.BadgeOperate, old, m.ToDTO(), doer.ID, "修改了勋章") return nil } func DelBadge(id int64, doer *models.User) *response.BizError { if id == 0 { log.Error(" DelBadge param error") return response.NewBizError(errors.New("param error")) } old, err := models.GetBadgeById(id) if err != nil { return response.NewBizError(err) } n, _, err := models.GetBadgeUsers(id, models.ListOptions{PageSize: 1, Page: 1}) if err != nil { return response.NewBizError(err) } if n > 0 { return response.BADGES_STILL_HAS_USERS } _, err = models.DelBadge(id) operate_log.Log4Del(operate_log.BadgeOperate, old, doer.ID, "删除了勋章") return nil }