Files
devstar/routers/api/devcontainer/devcontainer_list.go

67 lines
2.0 KiB
Go
Raw Permalink Normal View History

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