57 lines
1.5 KiB
Go
57 lines
1.5 KiB
Go
// Copyright 2026 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package convert
|
|
|
|
import (
|
|
project_model "gitea.dev/models/project"
|
|
api "gitea.dev/modules/structs"
|
|
)
|
|
|
|
// ToAPIProject converts a Project to API format
|
|
func ToAPIProject(p *project_model.Project) *api.Project {
|
|
apiProject := &api.Project{
|
|
ID: p.ID,
|
|
Title: p.Title,
|
|
Description: p.Description,
|
|
OwnerID: p.OwnerID,
|
|
RepoID: p.RepoID,
|
|
CreatorID: p.CreatorID,
|
|
IsClosed: p.IsClosed,
|
|
Created: p.CreatedUnix.AsTime(),
|
|
Updated: p.UpdatedUnix.AsTime(),
|
|
}
|
|
if p.IsClosed && p.ClosedDateUnix > 0 {
|
|
apiProject.Closed = p.ClosedDateUnix.AsTimePtr()
|
|
}
|
|
return apiProject
|
|
}
|
|
|
|
// ToAPIProjectList converts a list of Projects to API format
|
|
func ToAPIProjectList(projects []*project_model.Project) []*api.Project {
|
|
result := make([]*api.Project, len(projects))
|
|
for i := range projects {
|
|
result[i] = ToAPIProject(projects[i])
|
|
}
|
|
return result
|
|
}
|
|
|
|
// ToAPIProjectColumn converts a project column to API format
|
|
func ToAPIProjectColumn(column *project_model.Column) *api.ProjectColumn {
|
|
return &api.ProjectColumn{
|
|
ID: column.ID,
|
|
Title: column.Title,
|
|
Color: column.Color,
|
|
Sorting: column.Sorting,
|
|
}
|
|
}
|
|
|
|
// ToAPIProjectColumnList converts project columns to API format
|
|
func ToAPIProjectColumnList(columns project_model.ColumnList) []*api.ProjectColumn {
|
|
result := make([]*api.ProjectColumn, len(columns))
|
|
for i := range columns {
|
|
result[i] = ToAPIProjectColumn(columns[i])
|
|
}
|
|
return result
|
|
}
|