fix: app by id, views with computed objects (#583)

* feat: read app by id if my events

* fix: handlers if no sublist

* fix: removed app

* fix: removed project

* fix: removed app

* fix: removed app

* fix: app by id with projectid
This commit is contained in:
Fabi
2020-08-13 08:28:18 +02:00
committed by GitHub
parent 2f404be7c6
commit 5c4fef296f
18 changed files with 71 additions and 14 deletions

View File

@@ -297,12 +297,13 @@ func (repo *ProjectRepo) ProjectChanges(ctx context.Context, id string, lastSequ
}
func (repo *ProjectRepo) ApplicationByID(ctx context.Context, projectID, appID string) (*proj_model.ApplicationView, error) {
app, viewErr := repo.View.ApplicationByID(appID)
app, viewErr := repo.View.ApplicationByID(projectID, appID)
if viewErr != nil && !caos_errs.IsNotFound(viewErr) {
return nil, viewErr
}
if caos_errs.IsNotFound(viewErr) {
app = new(model.ApplicationView)
app.ID = appID
}
events, esErr := repo.ProjectEvents.ProjectEventsByID(ctx, projectID, app.Sequence)
@@ -317,10 +318,13 @@ func (repo *ProjectRepo) ApplicationByID(ctx context.Context, projectID, appID s
viewApp := *app
for _, event := range events {
err := app.AppendEvent(event)
err := app.AppendEventIfMyApp(event)
if err != nil {
return model.ApplicationViewToModel(&viewApp), nil
}
if app.State == int32(proj_model.AppStateRemoved) {
return nil, caos_errs.ThrowNotFound(nil, "EVENT-Msl96", "Errors.Application.NotFound")
}
}
return model.ApplicationViewToModel(app), nil
}

View File

@@ -46,7 +46,7 @@ func (p *Application) Reduce(event *models.Event) (err error) {
if err != nil {
return err
}
app, err = p.view.ApplicationByID(app.ID)
app, err = p.view.ApplicationByID(event.AggregateID, app.ID)
if err != nil {
return err
}

View File

@@ -87,6 +87,9 @@ func (m *OrgMember) processUser(event *models.Event) (err error) {
if err != nil {
return err
}
if len(members) == 0 {
return m.view.ProcessedOrgMemberSequence(event.Sequence)
}
user, err := m.userEvents.UserByID(context.Background(), event.AggregateID)
if err != nil {
return err

View File

@@ -90,6 +90,9 @@ func (p *ProjectGrantMember) processUser(event *models.Event) (err error) {
if err != nil {
return err
}
if len(members) == 0 {
return p.view.ProcessedProjectGrantMemberSequence(event.Sequence)
}
user, err := p.userEvents.UserByID(context.Background(), event.AggregateID)
if err != nil {
return err

View File

@@ -89,6 +89,9 @@ func (p *ProjectMember) processUser(event *models.Event) (err error) {
if err != nil {
return err
}
if len(members) == 0 {
return p.view.ProcessedProjectGrantMemberSequence(event.Sequence)
}
user, err := p.userEvents.UserByID(context.Background(), event.AggregateID)
if err != nil {
return err

View File

@@ -36,7 +36,7 @@ func (p *ProjectRole) Reduce(event *models.Event) (err error) {
role := new(view_model.ProjectRoleView)
switch event.Type {
case es_model.ProjectRoleAdded:
role.AppendEvent(event)
err = role.AppendEvent(event)
case es_model.ProjectRoleChanged:
err := role.SetData(event)
if err != nil {

View File

@@ -97,6 +97,9 @@ func (u *UserGrant) processUser(event *models.Event) (err error) {
if err != nil {
return err
}
if len(grants) == 0 {
return u.view.ProcessedUserGrantSequence(event.Sequence)
}
user, err := u.userEvents.UserByID(context.Background(), event.AggregateID)
if err != nil {
return err
@@ -121,6 +124,9 @@ func (u *UserGrant) processProject(event *models.Event) (err error) {
if err != nil {
return err
}
if len(grants) == 0 {
return u.view.ProcessedUserGrantSequence(event.Sequence)
}
project, err := u.projectEvents.ProjectByID(context.Background(), event.AggregateID)
if err != nil {
return err

View File

@@ -11,8 +11,8 @@ const (
applicationTable = "management.applications"
)
func (v *View) ApplicationByID(appID string) (*model.ApplicationView, error) {
return view.ApplicationByID(v.Db, applicationTable, appID)
func (v *View) ApplicationByID(projectID, appID string) (*model.ApplicationView, error) {
return view.ApplicationByID(v.Db, applicationTable, projectID, appID)
}
func (v *View) ApplicationsByProjectID(ProjectID string) ([]*model.ApplicationView, error) {