Skip to content

Commit

Permalink
Fix reinvitations after cancelled, rejected or completed invitations.
Browse files Browse the repository at this point in the history
  • Loading branch information
Darin Krauss committed Jul 31, 2017
1 parent ea1c5bf commit 297c008
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 5 deletions.
2 changes: 0 additions & 2 deletions api/invite.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,6 @@ func (a *Api) checkForDuplicateInvite(inviteeEmail, invitorId, token string, res
invites, _ := a.Store.FindConfirmations(
&models.Confirmation{CreatorId: invitorId, Email: inviteeEmail, Type: models.TypeCareteamInvite},
models.StatusPending,
models.StatusDeclined,
models.StatusCompleted,
)

if len(invites) > 0 {
Expand Down
4 changes: 2 additions & 2 deletions clients/mongoStoreClient.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ func (d MongoStoreClient) FindConfirmation(confirmation *models.Confirmation) (r
cpy := d.session.Copy()
defer cpy.Close()

if err = mgoConfirmationsCollection(cpy).Find(query).One(&result); err != nil && err != mgo.ErrNotFound {
if err = mgoConfirmationsCollection(cpy).Find(query).Sort("-created").One(&result); err != nil && err != mgo.ErrNotFound {
log.Printf("FindConfirmation: something bad happened [%v]", err)
return result, err
}
Expand Down Expand Up @@ -126,7 +126,7 @@ func (d MongoStoreClient) FindConfirmations(confirmation *models.Confirmation, s
cpy := d.session.Copy()
defer cpy.Close()

if err = mgoConfirmationsCollection(cpy).Find(query).Sort("created").All(&results); err != nil && err != mgo.ErrNotFound {
if err = mgoConfirmationsCollection(cpy).Find(query).Sort("-created").All(&results); err != nil && err != mgo.ErrNotFound {
log.Printf("FindConfirmations: something bad happened [%v]", err)
return results, err
}
Expand Down
12 changes: 11 additions & 1 deletion clients/mongoStoreClient_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package clients

import (
"testing"
"time"

"labix.org/v2/mgo"

Expand Down Expand Up @@ -89,6 +90,9 @@ func TestMongoStoreConfirmationOperations(t *testing.T) {
c1.UpdateStatus(models.StatusDeclined)
mc.UpsertConfirmation(c1)

// Sleep some so the second confirmation created time is after the first confirmation created time
time.Sleep(time.Second)

c2, _ := models.NewConfirmation(models.TypeCareteamInvite, models.TemplateNameCareteamInvite, fromUser)
c2.Email = toOtherEmail
c2.UpdateStatus(models.StatusCompleted)
Expand All @@ -104,13 +108,19 @@ func TestMongoStoreConfirmationOperations(t *testing.T) {
t1 := confirmations[0].Created
t2 := confirmations[1].Created

if t1.After(t2) {
if !t1.After(t2) {
t.Fatalf("the newest confirmtion should be first %v", confirmations)
}

if confirmations[0].Email != toOtherEmail {
t.Fatalf("email invalid: %s", confirmations[0].Email)
}
if confirmations[0].Status != models.StatusCompleted && confirmations[0].Status != models.StatusDeclined {
t.Fatalf("status invalid: %s", confirmations[0].Status)
}
if confirmations[1].Email != toEmail {
t.Fatalf("email invalid: %s", confirmations[1].Email)
}
if confirmations[1].Status != models.StatusCompleted && confirmations[1].Status != models.StatusDeclined {
t.Fatalf("status invalid: %s", confirmations[1].Status)
}
Expand Down

0 comments on commit 297c008

Please sign in to comment.