Files
devstar/services/devstar_devcontainer/UserDevcontainerService.go
2024-08-27 19:03:07 +08:00

55 lines
2.4 KiB
Go

package devstar_devcontainer
import (
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/models/devstar_devcontainer"
DevcontainersVO "code.gitea.io/gitea/routers/web/devcontainer/vo"
"context"
)
// GetUserDevcontainerListByUserId 根据 userId 查询名下 devContainer 列表
func GetUserDevcontainerListByUserId(ctx context.Context, userId int64) ([]DevcontainersVO.DevContainerItemVO, error) {
var devcontainerItemVOList []DevcontainersVO.DevContainerItemVO
/*
SELECT
devstar_devcontainer.repo_id AS RepoId,
repository.name AS RepoName,
repository.description AS RepoDescription,
devstar_devcontainer.id AS DevContainerId,
devstar_devcontainer.name AS DevContainerName,
devstar_devcontainer.devcontainer_host AS DevContainerHost,
devstar_devcontainer.devcontainer_port AS DevContainerPort,
devstar_devcontainer.devcontainer_username AS DevContainerUsername,
devstar_devcontainer.devcontainer_password AS DevContainerPassword,
devstar_devcontainer.devcontainer_work_dir AS DevContainerWorkDir
FROM devstar_devcontainer
LEFT JOIN repository ON devstar_devcontainer.repo_id = repository.id
WHERE devstar_devcontainer.repo_id IN (
SELECT devcontainer_id
FROM devstar_devcontainer_user
WHERE user_id = ?
);
*/
err := db.GetEngine(ctx).
Table("devstar_devcontainer").
Select("devstar_devcontainer.repo_id AS RepoId, repository.name AS RepoName, repository.description AS RepoDescription, devstar_devcontainer.id AS DevContainerId, devstar_devcontainer.name AS DevContainerName, devstar_devcontainer.devcontainer_host AS DevContainerHost, devstar_devcontainer.devcontainer_port AS DevContainerPort, devstar_devcontainer.devcontainer_username AS DevContainerUsername,devstar_devcontainer.devcontainer_password AS DevContainerPassword, devstar_devcontainer.devcontainer_work_dir AS DevContainerWorkDir").
Join("LEFT", "repository", "devstar_devcontainer.repo_id = repository.id").
Where("devstar_devcontainer.repo_id IN (SELECT devcontainer_id FROM devstar_devcontainer_user WHERE user_id = ?)", userId).
Find(&devcontainerItemVOList)
if devcontainerItemVOList == nil {
devcontainerItemVOList = []DevcontainersVO.DevContainerItemVO{}
}
if err != nil {
return devcontainerItemVOList,
devstar_devcontainer.ErrFailedToOperateDevstarDevcontainerDB{
Action: "query user DevContainer List",
Message: err.Error(),
}
}
return devcontainerItemVOList, nil
}