@@ -62,11 +62,36 @@ func NewProject(r *repo.Container, gr *gateway.Container) interfaces.Project {
6262}
6363
6464func (i * Project ) Fetch (ctx context.Context , ids []id.ProjectID , _ * usecase.Operator ) ([]* project.Project , error ) {
65- return i .projectRepo .FindByIDs (ctx , ids )
65+ projects , err := i .projectRepo .FindByIDs (ctx , ids )
66+ if err != nil {
67+ return nil , err
68+ }
69+
70+ for idx , p := range projects {
71+ if p != nil && p .CoreSupport () {
72+ projects [idx ] = nil
73+ }
74+ }
75+
76+ return projects , nil
6677}
6778
6879func (i * Project ) FindByWorkspace (ctx context.Context , id accountdomain.WorkspaceID , p * usecasex.Pagination , _ * usecase.Operator ) ([]* project.Project , * usecasex.PageInfo , error ) {
69- return i .projectRepo .FindByWorkspace (ctx , id , p )
80+ projects , pageInfo , err := i .projectRepo .FindByWorkspace (ctx , id , p )
81+ if err != nil {
82+ return nil , nil , err
83+ }
84+
85+ // Re-check to avoid returning core projects even if repository did not filter.
86+ filtered := make ([]* project.Project , 0 , len (projects ))
87+ for _ , prj := range projects {
88+ if prj != nil && prj .CoreSupport () {
89+ continue
90+ }
91+ filtered = append (filtered , prj )
92+ }
93+
94+ return filtered , pageInfo , nil
7095}
7196
7297func (i * Project ) Create (ctx context.Context , p interfaces.CreateProjectParam , operator * usecase.Operator ) (_ * project.Project , err error ) {
0 commit comments