Files
gitea/services/convert/project.go
Mikhail Kilin ee3b2ac09d
Some checks failed
cron-lock / action (push) Has been cancelled
cron-translations / crowdin-pull (push) Has been cancelled
cron-translations / crowdin-push (push) Has been cancelled
Add AgentBoard project board card API
2026-05-28 17:39:06 +03:00

91 lines
2.1 KiB
Go

// Copyright 2023 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package convert
import (
"context"
project_model "code.gitea.io/gitea/models/project"
api "code.gitea.io/gitea/modules/structs"
)
func ToAPIProjectBoard(ctx context.Context, board *project_model.Board) *api.ProjectBoard {
apiProjectBoard := api.ProjectBoard{
ID: board.ID,
Title: board.Title,
Color: board.Color,
Default: board.Default,
Sorting: board.Sorting,
}
return &apiProjectBoard
}
func ToApiProjectBoardList(
ctx context.Context,
boards []*project_model.Board,
) ([]*api.ProjectBoard, error) {
result := make([]*api.ProjectBoard, len(boards))
for i := range boards {
result[i] = ToAPIProjectBoard(ctx, boards[i])
}
return result, nil
}
func ToAPIProject(ctx context.Context, project *project_model.Project) *api.Project {
apiProject := &api.Project{
ID: project.ID,
Title: project.Title,
Description: project.Description,
BoardType: uint8(project.BoardType),
IsClosed: project.IsClosed,
Created: project.CreatedUnix.AsTime(),
Updated: project.UpdatedUnix.AsTime(),
Closed: project.ClosedDateUnix.AsTime(),
}
// try to laod the repo
_ = project.LoadRepo(ctx)
if project.Repo != nil {
apiProject.Repo = &api.RepositoryMeta{
ID: project.RepoID,
Name: project.Repo.Name,
Owner: project.Repo.OwnerName,
FullName: project.Repo.FullName(),
}
}
_ = project.LoadCreator(ctx)
if project.Creator != nil {
apiProject.Creator = &api.User{
ID: project.Creator.ID,
UserName: project.Creator.Name,
FullName: project.Creator.FullName,
}
}
_ = project.LoadOwner(ctx)
if project.Owner != nil {
apiProject.Owner = &api.User{
ID: project.Owner.ID,
UserName: project.Owner.Name,
FullName: project.Owner.FullName,
}
}
return apiProject
}
func ToAPIProjectList(
ctx context.Context,
projects []*project_model.Project,
) ([]*api.Project, error) {
result := make([]*api.Project, len(projects))
for i := range projects {
result[i] = ToAPIProject(ctx, projects[i])
}
return result, nil
}