MCPcopy Create free account
hub / github.com/bytebase/bytebase / GetProject

Method GetProject

backend/store/project.go:82–106  ·  view source on GitHub ↗
(ctx context.Context, find *FindProjectMessage)

Source from the content-addressed store, hash-verified

80}
81
82func (s *Store) GetProject(ctx context.Context, find *FindProjectMessage) (*ProjectMessage, error) {
83 if find.ResourceID != nil {
84 if v, ok := s.projectCache.Get(*find.ResourceID); ok && s.enableCache {
85 return v, nil
86 }
87 }
88
89 // We will always return the resource regardless of its deleted state.
90 find.ShowDeleted = true
91
92 projects, err := s.ListProjects(ctx, find)
93 if err != nil {
94 return nil, err
95 }
96 if len(projects) == 0 {
97 return nil, nil
98 }
99 if len(projects) > 1 {
100 return nil, &common.Error{Code: common.Conflict, Err: errors.Errorf("found %d projects with filter %+v, expect 1", len(projects), find)}
101 }
102 project := projects[0]
103
104 s.storeProjectCache(project)
105 return project, nil
106}
107
108// ListProjects lists all projects.
109func (s *Store) ListProjects(ctx context.Context, find *FindProjectMessage) ([]*ProjectMessage, error) {

Callers 1

GetDefaultProjectIDMethod · 0.95

Calls 4

ListProjectsMethod · 0.95
storeProjectCacheMethod · 0.95
GetMethod · 0.80
ErrorfMethod · 0.80

Tested by

no test coverage detected