|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- package badge
-
- import (
- "code.gitea.io/gitea/models"
- "code.gitea.io/gitea/modules/context"
- "code.gitea.io/gitea/modules/log"
- "code.gitea.io/gitea/modules/setting"
- "code.gitea.io/gitea/routers/response"
- "code.gitea.io/gitea/services/badge"
- "errors"
- "github.com/unknwon/com"
- "net/http"
- "strings"
- )
-
- func GetCustomizeBadgeList(ctx *context.Context) {
- page := ctx.QueryInt("page")
- category := ctx.QueryInt64("category")
- pageSize := 50
- n, r, err := badge.GetBadgeList(models.GetBadgeOpts{CategoryId: category, BadgeType: models.CustomizeBadge, ListOpts: models.ListOptions{PageSize: pageSize, Page: page}})
- if err != nil {
- log.Error("GetCustomizeBadgeList error.%v", err)
- ctx.JSON(http.StatusOK, response.ServerError(err.Error()))
- return
- }
- m := make(map[string]interface{})
- m["List"] = r
- m["Total"] = n
- m["PageSize"] = pageSize
- ctx.JSON(http.StatusOK, response.SuccessWithData(m))
- }
-
- func OperateBadge(ctx *context.Context, req models.BadgeOperateReq) {
- action := ctx.Params(":action")
-
- var err *response.BizError
- switch action {
- case "edit":
- err = badge.EditBadge(req, ctx.User)
- case "new":
- err = badge.AddBadge(req, ctx.User)
- case "del":
- err = badge.DelBadge(req.ID, ctx.User)
- default:
- err = response.NewBizError(errors.New("action type error"))
- }
-
- if err != nil {
- log.Error("OperateBadge error ,%v", err)
- ctx.JSON(http.StatusOK, response.ResponseError(err))
- return
- }
- ctx.JSON(http.StatusOK, response.Success())
- }
-
- func GetBadgeUsers(ctx *context.Context) {
- page := ctx.QueryInt("page")
- badgeId := ctx.QueryInt64("badge")
- pageSize := 50
- n, r, err := badge.GetBadgeUsers(badgeId, models.ListOptions{PageSize: pageSize, Page: page})
- if err != nil {
- log.Error("GetBadgeUsers error.%v", err)
- ctx.JSON(http.StatusOK, response.ServerError(err.Error()))
- return
- }
- m := make(map[string]interface{})
- m["List"] = r
- m["Total"] = n
- m["PageSize"] = pageSize
- ctx.JSON(http.StatusOK, response.SuccessWithData(m))
- }
-
- func AddOperateBadgeUsers(ctx *context.Context, req models.AddBadgeUsersReq) {
- userStr := req.Users
- if userStr == "" {
- ctx.JSON(http.StatusOK, response.Success())
- return
- }
- userStr = strings.ReplaceAll(userStr, " ", "")
- userStr = strings.ReplaceAll(userStr, "\r", "")
- userNames := strings.Split(userStr, "\n")
- n, err := badge.AddBadgeUsers(req.BadgeId, userNames)
- if err != nil {
- log.Error("AddOperateBadgeUsers error.%v", err)
- ctx.JSON(http.StatusOK, response.ServerError(err.Error()))
- return
- }
- m := make(map[string]interface{})
- m["Total"] = len(userNames)
- m["Success"] = n
- ctx.JSON(http.StatusOK, response.SuccessWithData(m))
- }
-
- func DelBadgeUsers(ctx *context.Context, req models.DelBadgeUserReq) {
- id := req.ID
- if id <= 0 {
- ctx.JSON(http.StatusOK, response.Success())
- return
- }
-
- err := badge.DelBadgeUser(id)
- if err != nil {
- log.Error("DelBadgeUsers error.%v", err)
- ctx.JSON(http.StatusOK, response.ServerError(err.Error()))
- return
- }
- ctx.JSON(http.StatusOK, response.Success())
- }
-
- func UploadIcon(ctx *context.Context, form badge.IconUploadForm) {
-
- uploader := badge.NewIconUploader(badge.IconUploadConfig{
- FileMaxSize: setting.BadgeIconMaxFileSize,
- FileMaxWidth: setting.BadgeIconMaxWidth,
- FileMaxHeight: setting.BadgeIconMaxHeight,
- NeedSquare: true,
- })
- iconName, err := uploader.Upload(form, ctx.User)
- if err != nil {
- log.Error("UploadIcon error.%v", err)
- ctx.JSON(http.StatusOK, response.ServerError(err.Error()))
- return
- }
- m := make(map[string]string, 0)
- m["IconName"] = iconName
- ctx.JSON(http.StatusOK, response.SuccessWithData(m))
- }
-
- func GetIcon(ctx *context.Context) {
- hash := ctx.Params(":hash")
- if !com.IsFile(models.GetCustomIconByHash(hash)) {
- ctx.NotFound(ctx.Req.URL.RequestURI(), nil)
- return
- }
- ctx.Redirect(setting.AppSubURL + "/icons/" + hash)
- }
|