From 59ac7f051f903f473a40d8bdeb04e84140270503 Mon Sep 17 00:00:00 2001 From: Silvan Date: Wed, 8 Jul 2020 14:26:35 +0200 Subject: [PATCH] fix: empty project by id (#393) * fix: check if project found in by id * fix: check length of events --- .../eventsourcing/eventstore/project.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/internal/management/repository/eventsourcing/eventstore/project.go b/internal/management/repository/eventsourcing/eventstore/project.go index 0495f51a2a..1105f64ecd 100644 --- a/internal/management/repository/eventsourcing/eventstore/project.go +++ b/internal/management/repository/eventsourcing/eventstore/project.go @@ -34,17 +34,21 @@ type ProjectRepo struct { } func (repo *ProjectRepo) ProjectByID(ctx context.Context, id string) (*proj_model.ProjectView, error) { - project, err := repo.View.ProjectByID(id) - if err != nil && !caos_errs.IsNotFound(err) { - return nil, err + project, viewErr := repo.View.ProjectByID(id) + if viewErr != nil && !caos_errs.IsNotFound(viewErr) { + return nil, viewErr } - if caos_errs.IsNotFound(err) { + if caos_errs.IsNotFound(viewErr) { project = new(model.ProjectView) } - events, err := repo.ProjectEvents.ProjectEventsByID(ctx, id, project.Sequence) - if err != nil { - logging.Log("EVENT-V9x1V").WithError(err).Debug("error retrieving new events") + events, esErr := repo.ProjectEvents.ProjectEventsByID(ctx, id, project.Sequence) + if caos_errs.IsNotFound(viewErr) && len(events) == 0 { + return nil, caos_errs.ThrowNotFound(nil, "EVENT-8yfKu", "Errors.Project.NotFound") + } + + if esErr != nil { + logging.Log("EVENT-V9x1V").WithError(viewErr).Debug("error retrieving new events") return model.ProjectToModel(project), nil }