From 75121570fb50d6d858f11b24a6b29e93e070db35 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Thu, 2 Apr 2026 20:24:39 -0700 Subject: [PATCH] fix --- models/project/column_list_test.go | 20 ++++++++++++++++++-- routers/api/v1/api.go | 8 ++++---- services/convert/project.go | 8 -------- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/models/project/column_list_test.go b/models/project/column_list_test.go index 1c296dd64d..af6e830e74 100644 --- a/models/project/column_list_test.go +++ b/models/project/column_list_test.go @@ -12,7 +12,7 @@ import ( "github.com/stretchr/testify/assert" ) -func TestCountColumns(t *testing.T) { +func TestCountProjectColumns(t *testing.T) { assert.NoError(t, unittest.PrepareTestDatabase()) project, err := GetProjectByID(t.Context(), 1) @@ -23,7 +23,7 @@ func TestCountColumns(t *testing.T) { assert.EqualValues(t, 3, count) } -func TestGetColumnsPaginated(t *testing.T) { +func TestGetProjectColumns(t *testing.T) { assert.NoError(t, unittest.PrepareTestDatabase()) project, err := GetProjectByID(t.Context(), 1) @@ -47,3 +47,19 @@ func TestGetColumnsPaginated(t *testing.T) { } assert.Len(t, allIDs, 3) } + +func TestGetColumnsByIDs(t *testing.T) { + assert.NoError(t, unittest.PrepareTestDatabase()) + + project, err := GetProjectByID(t.Context(), 1) + assert.NoError(t, err) + + columns, err := GetColumnsByIDs(t.Context(), project.ID, []int64{1, 3, 4}) + assert.NoError(t, err) + assert.Len(t, columns, 2) + assert.ElementsMatch(t, []int64{1, 3}, []int64{columns[0].ID, columns[1].ID}) + + empty, err := GetColumnsByIDs(t.Context(), project.ID, nil) + assert.NoError(t, err) + assert.Empty(t, empty) +} diff --git a/routers/api/v1/api.go b/routers/api/v1/api.go index 4eb69abe6c..8f32f47305 100644 --- a/routers/api/v1/api.go +++ b/routers/api/v1/api.go @@ -1576,15 +1576,15 @@ func Routes() *web.Router { Post(reqToken(), reqRepoWriter(unit.TypeProjects), mustNotBeArchived, bind(api.CreateProjectOption{}), repo.CreateProject) m.Group("/{id}", func() { m.Combo("").Get(repo.GetProject). - Patch(reqToken(), reqRepoWriter(unit.TypeProjects), bind(api.EditProjectOption{}), repo.EditProject). - Delete(reqToken(), reqRepoWriter(unit.TypeProjects), repo.DeleteProject) + Patch(reqToken(), reqRepoWriter(unit.TypeProjects), mustNotBeArchived, bind(api.EditProjectOption{}), repo.EditProject). + Delete(reqToken(), reqRepoWriter(unit.TypeProjects), mustNotBeArchived, repo.DeleteProject) m.Combo("/columns").Get(repo.ListProjectColumns). Post(reqToken(), reqRepoWriter(unit.TypeProjects), mustNotBeArchived, bind(api.CreateProjectColumnOption{}), repo.CreateProjectColumn) }) m.Group("/columns/{id}", func() { m.Combo(""). - Patch(reqToken(), reqRepoWriter(unit.TypeProjects), bind(api.EditProjectColumnOption{}), repo.EditProjectColumn). - Delete(reqToken(), reqRepoWriter(unit.TypeProjects), repo.DeleteProjectColumn) + Patch(reqToken(), reqRepoWriter(unit.TypeProjects), mustNotBeArchived, bind(api.EditProjectColumnOption{}), repo.EditProjectColumn). + Delete(reqToken(), reqRepoWriter(unit.TypeProjects), mustNotBeArchived, repo.DeleteProjectColumn) m.Post("/issues", reqToken(), reqRepoWriter(unit.TypeProjects), mustNotBeArchived, bind(api.AddIssueToProjectColumnOption{}), repo.AddIssueToProjectColumn) }) }, reqRepoReader(unit.TypeProjects)) diff --git a/services/convert/project.go b/services/convert/project.go index c7a5737444..e28aa25b96 100644 --- a/services/convert/project.go +++ b/services/convert/project.go @@ -12,10 +12,6 @@ import ( // ToProject converts a project_model.Project to api.Project func ToProject(ctx context.Context, p *project_model.Project) *api.Project { - if p == nil { - return nil - } - project := &api.Project{ ID: p.ID, Title: p.Title, @@ -55,10 +51,6 @@ func ToProject(ctx context.Context, p *project_model.Project) *api.Project { // ToProjectColumn converts a project_model.Column to api.ProjectColumn func ToProjectColumn(ctx context.Context, column *project_model.Column) *api.ProjectColumn { - if column == nil { - return nil - } - return &api.ProjectColumn{ ID: column.ID, Title: column.Title,