Implement a couple of rpcs
All checks were successful
ci/woodpecker/push/build Pipeline was successful

Signed-off-by: Nikolai Rodionov <iam@allanger.xyz>
This commit is contained in:
2026-06-09 14:52:06 +02:00
parent 7c55e758fc
commit 3ea6765486
7 changed files with 95 additions and 31 deletions

View File

@@ -23,8 +23,9 @@ type ProjectData struct {
}
var (
ErrProjectExists = errors.New("project exists")
ErrInvalidProject = errors.New("invalid project data")
ErrProjectExists = errors.New("project exists")
ErrInvalidProject = errors.New("invalid project data")
ErrProjectNotFound = errors.New("project not found")
)
// Create a new project
@@ -66,6 +67,24 @@ func (ctrl *ProjectsController) Get(ctx context.Context, projectID string) (data
}
// List projects available for a user
func (ctrl *ProjectsController) List(ctx context.Context) (data []*ProjectData, err error) {
return nil, nil
func (ctrl *ProjectsController) List(ctx context.Context, userID string) (data []*ProjectData, err error) {
log := logger.FromContext(ctx)
log.V(2).Info("Listing projects")
data = []*ProjectData{}
res, err := repository.ListProjects(ctx, ctrl.DB, userID)
if err != nil {
if errors.Is(err, repository.ErrNotFound) {
return nil, ErrProjectNotFound
}
log.Error(err, "Couldn't list projects")
return nil, ErrServerError
}
for _, val := range res {
data = append(data, &ProjectData{
UUID: val.UUID,
Name: val.Name,
})
}
return
}