2024-08-27 11:10:31 +08:00
|
|
|
|
package devcontainer
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
2024-08-29 12:53:07 +08:00
|
|
|
|
"code.gitea.io/gitea/models/db"
|
|
|
|
|
|
"code.gitea.io/gitea/modules/setting"
|
2025-02-17 05:36:49 +00:00
|
|
|
|
|
2024-08-27 11:10:31 +08:00
|
|
|
|
Result "code.gitea.io/gitea/routers/entity"
|
2024-09-30 06:48:01 +00:00
|
|
|
|
gitea_web_context "code.gitea.io/gitea/services/context"
|
2025-02-17 05:36:49 +00:00
|
|
|
|
devcontainer_service "code.gitea.io/gitea/services/devcontainer"
|
2024-08-27 11:10:31 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
2024-09-30 06:48:01 +00:00
|
|
|
|
// ListUserDevcontainers 枚举已登录用户所有的 DevContainers
|
2024-08-27 11:10:31 +08:00
|
|
|
|
//
|
2024-08-29 12:53:07 +08:00
|
|
|
|
// GET /api/devcontainer/user
|
|
|
|
|
|
// 请求输入参数:
|
|
|
|
|
|
// - page: 当前第几页(默认第1页),从1开始计数
|
|
|
|
|
|
// - pageSize: 每页记录数(默认值 setting.UI.Admin.DevContainersPagingNum)
|
2024-09-30 06:48:01 +00:00
|
|
|
|
func ListUserDevcontainers(ctx *gitea_web_context.Context) {
|
2024-08-27 11:10:31 +08:00
|
|
|
|
|
2024-08-27 19:03:07 +08:00
|
|
|
|
// 1. 检查用户登录状态,若未登录则返回未授权错误
|
|
|
|
|
|
if ctx.Doer == nil {
|
|
|
|
|
|
Result.RespUnauthorizedFailure.RespondJson2HttpResponseWriter(ctx.Resp)
|
|
|
|
|
|
return
|
2024-08-27 11:10:31 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-08-27 19:03:07 +08:00
|
|
|
|
// 2. 查询数据库 当前登录用户拥有写入权限的仓库
|
2024-08-29 12:53:07 +08:00
|
|
|
|
userPage := ctx.FormInt("page")
|
|
|
|
|
|
if userPage <= 0 {
|
|
|
|
|
|
userPage = 1
|
|
|
|
|
|
}
|
|
|
|
|
|
userPageSize := ctx.FormInt("page_size")
|
|
|
|
|
|
if userPageSize <= 0 || userPageSize > setting.UI.Admin.DevContainersPagingNum {
|
|
|
|
|
|
userPageSize = setting.UI.Admin.DevContainersPagingNum
|
|
|
|
|
|
}
|
2025-02-17 05:36:49 +00:00
|
|
|
|
opts := &devcontainer_service.SearchUserDevcontainerListItemVoOptions{
|
2024-08-29 12:53:07 +08:00
|
|
|
|
Actor: ctx.Doer,
|
|
|
|
|
|
PaginationOptions: db.ListOptions{
|
|
|
|
|
|
Page: userPage,
|
|
|
|
|
|
PageSize: userPageSize,
|
|
|
|
|
|
},
|
|
|
|
|
|
}
|
2025-02-17 05:36:49 +00:00
|
|
|
|
userDevcontainersVO, err := devcontainer_service.GetUserDevcontainersList(ctx, opts)
|
2024-10-23 03:05:44 +00:00
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
resultFailed2ListUserDevcontainerList := Result.ResultType{
|
|
|
|
|
|
Code: Result.RespFailedListUserDevcontainers.Code,
|
|
|
|
|
|
Msg: Result.RespFailedListUserDevcontainers.Msg,
|
|
|
|
|
|
Data: map[string]string{
|
|
|
|
|
|
"ErrorMsg": err.Error(),
|
|
|
|
|
|
},
|
|
|
|
|
|
}
|
|
|
|
|
|
resultFailed2ListUserDevcontainerList.RespondJson2HttpResponseWriter(ctx.Resp)
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
2024-08-27 11:10:31 +08:00
|
|
|
|
|
2024-08-27 19:03:07 +08:00
|
|
|
|
// 3. 封装VO
|
|
|
|
|
|
resultListUserDevcontainersVO := Result.ResultType{
|
2024-08-28 15:36:22 +08:00
|
|
|
|
Code: Result.RespSuccess.Code,
|
|
|
|
|
|
Msg: Result.RespSuccess.Msg,
|
2024-08-29 12:53:07 +08:00
|
|
|
|
Data: userDevcontainersVO,
|
2024-08-27 11:10:31 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-08-27 19:03:07 +08:00
|
|
|
|
// 4. JSON序列化,写入输出流
|
2024-08-27 11:10:31 +08:00
|
|
|
|
responseWriter := ctx.Resp
|
2024-08-27 19:03:07 +08:00
|
|
|
|
resultListUserDevcontainersVO.RespondJson2HttpResponseWriter(responseWriter)
|
2024-08-27 11:10:31 +08:00
|
|
|
|
}
|