fix: session handlers (#586)

* fix: session handler when no sessions exists

* fix: error handling

* error handling

* fix: error handling

* fix: error handling

* fix: error handling

* some errors

Co-authored-by: Fabiennne <fabienne.gerschwiler@gmail.com>
This commit is contained in:
Livio Amstutz 2020-08-13 09:43:47 +02:00 committed by GitHub
parent 5c4fef296f
commit f61b30420a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 63 additions and 47 deletions

View File

@ -36,13 +36,13 @@ func (p *Application) Reduce(event *models.Event) (err error) {
app := new(view_model.ApplicationView)
switch event.Type {
case es_model.ApplicationAdded:
app.AppendEvent(event)
err = app.AppendEvent(event)
case es_model.ApplicationChanged,
es_model.OIDCConfigAdded,
es_model.OIDCConfigChanged,
es_model.ApplicationDeactivated,
es_model.ApplicationReactivated:
err := app.SetData(event)
err = app.SetData(event)
if err != nil {
return err
}
@ -50,7 +50,7 @@ func (p *Application) Reduce(event *models.Event) (err error) {
if err != nil {
return err
}
app.AppendEvent(event)
err = app.AppendEvent(event)
case es_model.ApplicationRemoved:
err := app.SetData(event)
if err != nil {

View File

@ -30,14 +30,14 @@ func (o *Org) EventQuery() (*es_models.SearchQuery, error) {
return eventsourcing.OrgQuery(sequence.CurrentSequence), nil
}
func (o *Org) Reduce(event *es_models.Event) error {
func (o *Org) Reduce(event *es_models.Event) (err error) {
org := new(org_model.OrgView)
switch event.Type {
case model.OrgAdded:
org.AppendEvent(event)
err = org.AppendEvent(event)
case model.OrgChanged:
err := org.SetData(event)
err = org.SetData(event)
if err != nil {
return err
}
@ -46,12 +46,12 @@ func (o *Org) Reduce(event *es_models.Event) error {
return err
}
err = org.AppendEvent(event)
if err != nil {
return err
}
default:
return o.view.ProcessedOrgSequence(event.Sequence)
}
if err != nil {
return err
}
return o.view.PutOrg(org)
}

View File

@ -57,7 +57,10 @@ func (p *User) ProcessUser(event *models.Event) (err error) {
switch event.Type {
case es_model.UserAdded,
es_model.UserRegistered:
user.AppendEvent(event)
err = user.AppendEvent(event)
if err != nil {
return err
}
p.fillLoginNames(user)
case es_model.UserProfileChanged,
es_model.UserEmailChanged,

View File

@ -70,6 +70,9 @@ func (u *UserSession) Reduce(event *models.Event) (err error) {
if err != nil {
return err
}
if len(sessions) == 0 {
return u.view.ProcessedUserSessionSequence(event.Sequence)
}
for _, session := range sessions {
if err := u.updateSession(session, event); err != nil {
return err

View File

@ -36,13 +36,13 @@ func (p *Application) Reduce(event *models.Event) (err error) {
app := new(view_model.ApplicationView)
switch event.Type {
case es_model.ApplicationAdded:
app.AppendEvent(event)
err = app.AppendEvent(event)
case es_model.ApplicationChanged,
es_model.OIDCConfigAdded,
es_model.OIDCConfigChanged,
es_model.ApplicationDeactivated,
es_model.ApplicationReactivated:
err := app.SetData(event)
err = app.SetData(event)
if err != nil {
return err
}
@ -50,9 +50,9 @@ func (p *Application) Reduce(event *models.Event) (err error) {
if err != nil {
return err
}
app.AppendEvent(event)
err = app.AppendEvent(event)
case es_model.ApplicationRemoved:
err := app.SetData(event)
err = app.SetData(event)
if err != nil {
return err
}

View File

@ -30,14 +30,14 @@ func (o *Org) EventQuery() (*es_models.SearchQuery, error) {
return eventsourcing.OrgQuery(sequence.CurrentSequence), nil
}
func (o *Org) Reduce(event *es_models.Event) error {
func (o *Org) Reduce(event *es_models.Event) (err error) {
org := new(org_model.OrgView)
switch event.Type {
case model.OrgAdded:
org.AppendEvent(event)
err = org.AppendEvent(event)
case model.OrgChanged:
err := org.SetData(event)
err = org.SetData(event)
if err != nil {
return err
}
@ -46,13 +46,12 @@ func (o *Org) Reduce(event *es_models.Event) error {
return err
}
err = org.AppendEvent(event)
if err != nil {
return err
}
default:
return o.view.ProcessedOrgSequence(event.Sequence)
}
if err != nil {
return err
}
return o.view.PutOrg(org)
}

View File

@ -44,7 +44,7 @@ func (d *OrgDomain) processOrgDomain(event *models.Event) (err error) {
domain := new(org_model.OrgDomainView)
switch event.Type {
case model.OrgDomainAdded:
domain.AppendEvent(event)
err = domain.AppendEvent(event)
case model.OrgDomainVerified:
err = domain.SetData(event)
if err != nil {
@ -54,7 +54,7 @@ func (d *OrgDomain) processOrgDomain(event *models.Event) (err error) {
if err != nil {
return err
}
domain.AppendEvent(event)
err = domain.AppendEvent(event)
case model.OrgDomainPrimarySet:
err = domain.SetData(event)
if err != nil {
@ -75,7 +75,7 @@ func (d *OrgDomain) processOrgDomain(event *models.Event) (err error) {
return err
}
}
domain.AppendEvent(event)
err = domain.AppendEvent(event)
case model.OrgDomainRemoved:
err = domain.SetData(event)
if err != nil {

View File

@ -52,10 +52,13 @@ func (m *OrgMember) processOrgMember(event *models.Event) (err error) {
member := new(org_model.OrgMemberView)
switch event.Type {
case model.OrgMemberAdded:
member.AppendEvent(event)
m.fillData(member)
err = member.AppendEvent(event)
if err != nil {
return err
}
err = m.fillData(member)
case model.OrgMemberChanged:
err := member.SetData(event)
err = member.SetData(event)
if err != nil {
return err
}
@ -63,9 +66,9 @@ func (m *OrgMember) processOrgMember(event *models.Event) (err error) {
if err != nil {
return err
}
member.AppendEvent(event)
err = member.AppendEvent(event)
case model.OrgMemberRemoved:
err := member.SetData(event)
err = member.SetData(event)
if err != nil {
return err
}

View File

@ -36,7 +36,7 @@ func (p *Project) Reduce(event *models.Event) (err error) {
project := new(view_model.ProjectView)
switch event.Type {
case es_model.ProjectAdded:
project.AppendEvent(event)
err = project.AppendEvent(event)
case es_model.ProjectChanged,
es_model.ProjectDeactivated,
es_model.ProjectReactivated:

View File

@ -70,7 +70,7 @@ func (p *ProjectGrant) Reduce(event *models.Event) (err error) {
p.fillOrgData(grantedProject, org, resourceOwner)
case es_model.ProjectGrantChanged, es_model.ProjectGrantCascadeChanged:
grant := new(view_model.ProjectGrant)
err := grant.SetData(event)
err = grant.SetData(event)
if err != nil {
return err
}

View File

@ -52,10 +52,13 @@ func (p *ProjectGrantMember) processProjectGrantMember(event *models.Event) (err
member := new(view_model.ProjectGrantMemberView)
switch event.Type {
case proj_es_model.ProjectGrantMemberAdded:
member.AppendEvent(event)
p.fillData(member)
err = member.AppendEvent(event)
if err != nil {
return err
}
err = p.fillData(member)
case proj_es_model.ProjectGrantMemberChanged:
err := member.SetData(event)
err = member.SetData(event)
if err != nil {
return err
}
@ -63,16 +66,15 @@ func (p *ProjectGrantMember) processProjectGrantMember(event *models.Event) (err
if err != nil {
return err
}
member.AppendEvent(event)
err = member.AppendEvent(event)
case proj_es_model.ProjectGrantMemberRemoved:
err := member.SetData(event)
err = member.SetData(event)
if err != nil {
return err
}
return p.view.DeleteProjectGrantMember(member.GrantID, member.UserID, event.Sequence)
case proj_es_model.ProjectRemoved:
return p.view.DeleteProjectGrantMembersByProjectID(event.AggregateID)
default:
return p.view.ProcessedProjectGrantMemberSequence(event.Sequence)
}

View File

@ -52,10 +52,13 @@ func (p *ProjectMember) processProjectMember(event *models.Event) (err error) {
member := new(view_model.ProjectMemberView)
switch event.Type {
case proj_es_model.ProjectMemberAdded:
member.AppendEvent(event)
err = member.AppendEvent(event)
if err != nil {
return err
}
p.fillData(member)
case proj_es_model.ProjectMemberChanged:
err := member.SetData(event)
err = member.SetData(event)
if err != nil {
return err
}
@ -63,9 +66,9 @@ func (p *ProjectMember) processProjectMember(event *models.Event) (err error) {
if err != nil {
return err
}
member.AppendEvent(event)
err = member.AppendEvent(event)
case proj_es_model.ProjectMemberRemoved:
err := member.SetData(event)
err = member.SetData(event)
if err != nil {
return err
}
@ -90,7 +93,7 @@ func (p *ProjectMember) processUser(event *models.Event) (err error) {
return err
}
if len(members) == 0 {
return p.view.ProcessedProjectGrantMemberSequence(event.Sequence)
return p.view.ProcessedProjectMemberSequence(event.Sequence)
}
user, err := p.userEvents.UserByID(context.Background(), event.AggregateID)
if err != nil {

View File

@ -38,7 +38,7 @@ func (p *ProjectRole) Reduce(event *models.Event) (err error) {
case es_model.ProjectRoleAdded:
err = role.AppendEvent(event)
case es_model.ProjectRoleChanged:
err := role.SetData(event)
err = role.SetData(event)
if err != nil {
return err
}
@ -46,9 +46,9 @@ func (p *ProjectRole) Reduce(event *models.Event) (err error) {
if err != nil {
return err
}
role.AppendEvent(event)
err = role.AppendEvent(event)
case es_model.ProjectRoleRemoved:
err := role.SetData(event)
err = role.SetData(event)
if err != nil {
return err
}

View File

@ -56,8 +56,11 @@ func (p *User) ProcessUser(event *models.Event) (err error) {
switch event.Type {
case es_model.UserAdded,
es_model.UserRegistered:
user.AppendEvent(event)
p.fillLoginNames(user)
err = user.AppendEvent(event)
if err != nil {
return err
}
err = p.fillLoginNames(user)
case es_model.UserProfileChanged,
es_model.UserEmailChanged,
es_model.UserEmailVerified,