From b6859ffb7c853fa25e15bbed0eb681d14335f890 Mon Sep 17 00:00:00 2001 From: Rowan Seymour Date: Mon, 30 Aug 2021 17:33:19 -0500 Subject: [PATCH 1/6] Notifications (WIP) --- core/models/notifications.go | 101 ++++++++++++++++++++++++++++++ core/models/notifications_test.go | 28 +++++++++ mailroom_test.dump | Bin 1876337 -> 1895000 bytes 3 files changed, 129 insertions(+) create mode 100644 core/models/notifications.go create mode 100644 core/models/notifications_test.go diff --git a/core/models/notifications.go b/core/models/notifications.go new file mode 100644 index 000000000..b7591fa02 --- /dev/null +++ b/core/models/notifications.go @@ -0,0 +1,101 @@ +package models + +import ( + "context" + + "github.com/nyaruka/mailroom/utils/dbutil" + "github.com/pkg/errors" +) + +// LogID is our type for log ids +type LogID int + +type LogType string + +const ( + LogTypeBroadcastStarted LogType = "bcast:started" + LogTypeBroadcastCompleted LogType = "bcast:completed" + LogTypeChannelAlert LogType = "channel:alert" + LogTypeExportStarted LogType = "export:started" + LogTypeExportCompleted LogType = "export:completed" + LogTypeFlowStartStarted LogType = "start:started" + LogTypeFlowStartCompleted LogType = "start:completed" + LogTypeImportStarted LogType = "import:started" + LogTypeImportCompleted LogType = "import:completed" + LogTypeTicketOpened LogType = "ticket:opened" + LogTypeTicketNewMsgs LogType = "ticket:msgs" + LogTypeTicketAssignment LogType = "ticket:assign" + LogTypeTicketNote LogType = "ticket:note" +) + +type Log struct { + ID LogID `db:"id"` + OrgID OrgID `db:"org_id"` + LogType LogType `db:"log_type"` + CreatedByID UserID `db:"created_by_id"` + + BroadcastID BroadcastID `db:"broadcast_id"` + FlowStartID StartID `db:"flow_start_id"` + TicketID TicketID `db:"ticket_id"` +} + +type Notification struct { + ID LogID `db:"id"` + OrgID OrgID `db:"org_id"` + UserID UserID `db:"user_id"` + LogID LogID `db:"log_id"` +} + +func LogTicketOpened(ctx context.Context, db Queryer, oa *OrgAssets, ticket *Ticket) error { + log := &Log{OrgID: ticket.OrgID(), LogType: LogTypeTicketOpened, TicketID: ticket.ID()} + return logAndNotify(ctx, db, oa, log, []UserRole{UserRoleAdministrator, UserRoleEditor, UserRoleAgent}, false) +} + +const insertLogSQL = ` +INSERT INTO notifications_log(org_id, log_type, created_on, created_by_id, broadcast_id, flow_start_id, ticket_id) + VALUES(:org_id, :log_type, NOW(), :created_by_id, :broadcast_id, :flow_start_id, :ticket_id) +RETURNING id` + +const insertNotificationSQL = ` +INSERT INTO notifications_notification(org_id, user_id, log_id, is_seen) + VALUES(:org_id, :user_id, :log_id, FALSE)` + +func logAndNotify(ctx context.Context, db Queryer, oa *OrgAssets, log *Log, notifyRoles []UserRole, notifyUser bool) error { + // TODO use a more efficient simple Exec + err := dbutil.BulkQuery(ctx, db, insertLogSQL, []interface{}{log}) + if err != nil { + return errors.Wrapf(err, "error inserting %s log", log.LogType) + } + + notifyUsers := getUsersToNotify(oa, notifyRoles, notifyUser, log.CreatedByID) + + var notifications []interface{} + for _, user := range notifyUsers { + notifications = append(notifications, &Notification{OrgID: oa.OrgID(), UserID: user.ID(), LogID: log.ID}) + } + + err = dbutil.BulkQuery(ctx, db, insertNotificationSQL, notifications) + + return errors.Wrap(err, "error inserting notifications") +} + +func getUsersToNotify(oa *OrgAssets, notifyRoles []UserRole, notifyUser bool, logUserID UserID) []*User { + var users []*User + + for _, u := range oa.users { + user := u.(*User) + + if !notifyUser && logUserID == user.ID() { + continue + } + + for _, r := range notifyRoles { + if user.Role() == r { + users = append(users, user) + break + } + } + } + + return users +} diff --git a/core/models/notifications_test.go b/core/models/notifications_test.go new file mode 100644 index 000000000..ea102aa52 --- /dev/null +++ b/core/models/notifications_test.go @@ -0,0 +1,28 @@ +package models_test + +import ( + "testing" + + "github.com/nyaruka/mailroom/core/models" + "github.com/nyaruka/mailroom/testsuite" + "github.com/nyaruka/mailroom/testsuite/testdata" + "github.com/stretchr/testify/require" +) + +func TestNotifications(t *testing.T) { + ctx, _, db, _ := testsuite.Reset() + + oa, err := models.GetOrgAssets(ctx, db, testdata.Org1.ID) + require.NoError(t, err) + + ticket := testdata.InsertOpenTicket(db, testdata.Org1, testdata.Cathy, testdata.Internal, testdata.SupportTopic, "", "Where my pants", "", nil) + modelTicket := ticket.Load(db) + + err = models.LogTicketOpened(ctx, db, oa, modelTicket) + require.NoError(t, err) + + testsuite.AssertQuery(t, db, `SELECT org_id, log_type, ticket_id FROM notifications_log`). + Columns(map[string]interface{}{"org_id": int64(testdata.Org1.ID), "log_type": "ticket:opened", "ticket_id": int64(modelTicket.ID())}) + + testsuite.AssertQuery(t, db, `SELECT count(*) FROM notifications_notification`).Returns(3) +} diff --git a/mailroom_test.dump b/mailroom_test.dump index 2ee9b53cf8b8ab25c6261c5a12ae1d4cc7b83015..fa09ffa4f6acc440407a48b5c05189ba025eb601 100644 GIT binary patch delta 108534 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 delta 98925 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 J85c<4{ttCz!!-Z^ From 2bf23d7ca5d580da577cd773c2a7f5e87752f35d Mon Sep 17 00:00:00 2001 From: Rowan Seymour Date: Wed, 1 Sep 2021 12:23:13 -0500 Subject: [PATCH 2/6] Rework LogTicketsOpened to handle bulk insertion of logs --- core/hooks/insert_tickets.go | 6 ++ core/models/notifications.go | 118 ++++++++++++++++++++++-------- core/models/notifications_test.go | 64 ++++++++++++++-- testsuite/testdata/constants.go | 7 ++ testsuite/testdata/tickets.go | 6 +- 5 files changed, 158 insertions(+), 43 deletions(-) diff --git a/core/hooks/insert_tickets.go b/core/hooks/insert_tickets.go index b0c009c64..a937bac7c 100644 --- a/core/hooks/insert_tickets.go +++ b/core/hooks/insert_tickets.go @@ -44,5 +44,11 @@ func (h *insertTicketsHook) Apply(ctx context.Context, tx *sqlx.Tx, rp *redis.Po return errors.Wrapf(err, "error inserting ticket opened events") } + // and insert logs/notifications for those + err = models.LogTicketsOpened(ctx, tx, oa, openEvents) + if err != nil { + return errors.Wrapf(err, "error inserting ticket opened logs and notifications") + } + return nil } diff --git a/core/models/notifications.go b/core/models/notifications.go index b7591fa02..e65bbbdd6 100644 --- a/core/models/notifications.go +++ b/core/models/notifications.go @@ -34,9 +34,10 @@ type Log struct { LogType LogType `db:"log_type"` CreatedByID UserID `db:"created_by_id"` - BroadcastID BroadcastID `db:"broadcast_id"` - FlowStartID StartID `db:"flow_start_id"` - TicketID TicketID `db:"ticket_id"` + BroadcastID BroadcastID `db:"broadcast_id"` + FlowStartID StartID `db:"flow_start_id"` + TicketID TicketID `db:"ticket_id"` + TicketEventID TicketEventID `db:"ticket_event_id"` } type Notification struct { @@ -46,32 +47,92 @@ type Notification struct { LogID LogID `db:"log_id"` } -func LogTicketOpened(ctx context.Context, db Queryer, oa *OrgAssets, ticket *Ticket) error { - log := &Log{OrgID: ticket.OrgID(), LogType: LogTypeTicketOpened, TicketID: ticket.ID()} - return logAndNotify(ctx, db, oa, log, []UserRole{UserRoleAdministrator, UserRoleEditor, UserRoleAgent}, false) +type notifyWhoFunc func(l *Log) ([]UserRole, []UserID) + +func notifyUser(id UserID) notifyWhoFunc { + return func(l *Log) ([]UserRole, []UserID) { + return nil, []UserID{id} + } +} + +func notifyRoles(roles ...UserRole) notifyWhoFunc { + return func(l *Log) ([]UserRole, []UserID) { + return roles, nil + } +} + +// LogTicketsOpened logs the opening of new tickets and notifies all assignable users if tickets is not already assigned +func LogTicketsOpened(ctx context.Context, db Queryer, oa *OrgAssets, openEvents []*TicketEvent) error { + // create log for each ticket event and record of which ones are for tickets which are already assigned + logs := make([]*Log, len(openEvents)) + assigned := make(map[*Log]bool, len(openEvents)) + + for i, evt := range openEvents { + log := &Log{ + OrgID: evt.OrgID(), + LogType: LogTypeTicketOpened, + CreatedByID: evt.CreatedByID(), + TicketID: evt.TicketID(), + TicketEventID: evt.ID(), + } + logs[i] = log + assigned[log] = evt.AssigneeID() != NilUserID + } + + return insertLogsAndNotifications(ctx, db, oa, logs, func(l *Log) ([]UserRole, []UserID) { + if !assigned[l] { + return []UserRole{UserRoleAdministrator, UserRoleEditor, UserRoleAgent}, nil + } + return nil, nil + }) +} + +// LogTicketAssigned logs the assignment of a ticket and notifies the assignee +func LogTicketAssigned(ctx context.Context, db Queryer, oa *OrgAssets, ticket *Ticket, assignment *TicketEvent) error { + log := &Log{ + OrgID: assignment.OrgID(), + LogType: LogTypeTicketAssignment, + CreatedByID: assignment.CreatedByID(), + TicketID: ticket.ID(), + TicketEventID: assignment.ID(), + } + + return insertLogsAndNotifications(ctx, db, oa, []*Log{log}, notifyUser(assignment.AssigneeID())) } const insertLogSQL = ` -INSERT INTO notifications_log(org_id, log_type, created_on, created_by_id, broadcast_id, flow_start_id, ticket_id) - VALUES(:org_id, :log_type, NOW(), :created_by_id, :broadcast_id, :flow_start_id, :ticket_id) +INSERT INTO notifications_log(org_id, log_type, created_on, created_by_id, broadcast_id, flow_start_id, ticket_id, ticket_event_id) + VALUES(:org_id, :log_type, NOW(), :created_by_id, :broadcast_id, :flow_start_id, :ticket_id, :ticket_event_id) RETURNING id` const insertNotificationSQL = ` INSERT INTO notifications_notification(org_id, user_id, log_id, is_seen) VALUES(:org_id, :user_id, :log_id, FALSE)` -func logAndNotify(ctx context.Context, db Queryer, oa *OrgAssets, log *Log, notifyRoles []UserRole, notifyUser bool) error { - // TODO use a more efficient simple Exec - err := dbutil.BulkQuery(ctx, db, insertLogSQL, []interface{}{log}) - if err != nil { - return errors.Wrapf(err, "error inserting %s log", log.LogType) +func insertLogsAndNotifications(ctx context.Context, db Queryer, oa *OrgAssets, logs []*Log, notifyWho notifyWhoFunc) error { + is := make([]interface{}, len(logs)) + for i := range logs { + is[i] = logs[i] } - notifyUsers := getUsersToNotify(oa, notifyRoles, notifyUser, log.CreatedByID) + err := dbutil.BulkQuery(ctx, db, insertLogSQL, is) + if err != nil { + return errors.Wrap(err, "error inserting logs") + } var notifications []interface{} - for _, user := range notifyUsers { - notifications = append(notifications, &Notification{OrgID: oa.OrgID(), UserID: user.ID(), LogID: log.ID}) + + for _, log := range logs { + notifyRoles, notifyUsers := notifyWho(log) + + for _, u := range oa.users { + user := u.(*User) + + // don't create a notification for the user that did the logged thing + if log.CreatedByID != user.ID() && userMatchesRoleOrID(user, notifyRoles, notifyUsers) { + notifications = append(notifications, &Notification{OrgID: oa.OrgID(), UserID: user.ID(), LogID: log.ID}) + } + } } err = dbutil.BulkQuery(ctx, db, insertNotificationSQL, notifications) @@ -79,23 +140,16 @@ func logAndNotify(ctx context.Context, db Queryer, oa *OrgAssets, log *Log, noti return errors.Wrap(err, "error inserting notifications") } -func getUsersToNotify(oa *OrgAssets, notifyRoles []UserRole, notifyUser bool, logUserID UserID) []*User { - var users []*User - - for _, u := range oa.users { - user := u.(*User) - - if !notifyUser && logUserID == user.ID() { - continue +func userMatchesRoleOrID(user *User, roles []UserRole, ids []UserID) bool { + for _, r := range roles { + if user.Role() == r { + return true } - - for _, r := range notifyRoles { - if user.Role() == r { - users = append(users, user) - break - } + } + for _, id := range ids { + if user.ID() == id { + return true } } - - return users + return false } diff --git a/core/models/notifications_test.go b/core/models/notifications_test.go index ea102aa52..26667d4e1 100644 --- a/core/models/notifications_test.go +++ b/core/models/notifications_test.go @@ -1,11 +1,14 @@ package models_test import ( + "context" "testing" + "github.com/jmoiron/sqlx" "github.com/nyaruka/mailroom/core/models" "github.com/nyaruka/mailroom/testsuite" "github.com/nyaruka/mailroom/testsuite/testdata" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -15,14 +18,63 @@ func TestNotifications(t *testing.T) { oa, err := models.GetOrgAssets(ctx, db, testdata.Org1.ID) require.NoError(t, err) - ticket := testdata.InsertOpenTicket(db, testdata.Org1, testdata.Cathy, testdata.Internal, testdata.SupportTopic, "", "Where my pants", "", nil) - modelTicket := ticket.Load(db) + // open an unassigned ticket by a flow (i.e. no user) + ticket, openedEvent := openTicket(ctx, db, nil, nil) + err = models.LogTicketsOpened(ctx, db, oa, []*models.TicketEvent{openedEvent}) + require.NoError(t, err) + + // check that all assignable users are notified + log := assertNotifications(t, ctx, db, models.LogTypeTicketOpened, nil, []*testdata.User{testdata.Admin, testdata.Editor, testdata.Agent}) + assert.Equal(t, ticket.ID(), log.TicketID) + assert.Equal(t, openedEvent.ID(), log.TicketEventID) + + // open an unassigned ticket by a user + _, openedEvent = openTicket(ctx, db, testdata.Editor, nil) + err = models.LogTicketsOpened(ctx, db, oa, []*models.TicketEvent{openedEvent}) + require.NoError(t, err) + + // check that all assignable users are notified except the user who opened the ticket + assertNotifications(t, ctx, db, models.LogTypeTicketOpened, testdata.Editor, []*testdata.User{testdata.Admin, testdata.Agent}) + + // open an assigned ticket + _, openedEvent = openTicket(ctx, db, nil, testdata.Agent) + err = models.LogTicketsOpened(ctx, db, oa, []*models.TicketEvent{openedEvent}) + require.NoError(t, err) + + // check that we don't notify any users + assertNotifications(t, ctx, db, models.LogTypeTicketOpened, nil, nil) +} - err = models.LogTicketOpened(ctx, db, oa, modelTicket) +func assertNotifications(t *testing.T, ctx context.Context, db *sqlx.DB, expectedType models.LogType, expectedCreatedBy *testdata.User, expectedNotified []*testdata.User) *models.Log { + // check last log + log := &models.Log{} + err := db.GetContext(ctx, log, `SELECT id, org_id, log_type, created_by_id, ticket_id, ticket_event_id FROM notifications_log ORDER BY id DESC LIMIT 1`) require.NoError(t, err) - testsuite.AssertQuery(t, db, `SELECT org_id, log_type, ticket_id FROM notifications_log`). - Columns(map[string]interface{}{"org_id": int64(testdata.Org1.ID), "log_type": "ticket:opened", "ticket_id": int64(modelTicket.ID())}) + assert.Equal(t, expectedType, log.LogType, "log type mismatch") + assert.Equal(t, expectedCreatedBy.SafeID(), log.CreatedByID, "log created by mismatch") + + // check who was notified + var actualNotifiedIDs []models.UserID + err = db.SelectContext(ctx, &actualNotifiedIDs, `SELECT user_id FROM notifications_notification WHERE log_id = $1`, log.ID) + require.NoError(t, err) + + expectedNotifiedIDs := make([]models.UserID, len(expectedNotified)) + for i := range expectedNotified { + expectedNotifiedIDs[i] = expectedNotified[i].ID + } + + assert.ElementsMatch(t, expectedNotifiedIDs, actualNotifiedIDs, "notified users mismatch") + + return log +} + +func openTicket(ctx context.Context, db *sqlx.DB, openedBy *testdata.User, assignee *testdata.User) (*models.Ticket, *models.TicketEvent) { + ticket := testdata.InsertOpenTicket(db, testdata.Org1, testdata.Cathy, testdata.Internal, testdata.SupportTopic, "", "Where my pants", "", assignee) + modelTicket := ticket.Load(db) + + openedEvent := models.NewTicketOpenedEvent(modelTicket, openedBy.SafeID(), assignee.SafeID()) + models.InsertTicketEvents(ctx, db, []*models.TicketEvent{openedEvent}) - testsuite.AssertQuery(t, db, `SELECT count(*) FROM notifications_notification`).Returns(3) + return modelTicket, openedEvent } diff --git a/testsuite/testdata/constants.go b/testsuite/testdata/constants.go index 1813dee87..6b5bcfc24 100644 --- a/testsuite/testdata/constants.go +++ b/testsuite/testdata/constants.go @@ -18,6 +18,13 @@ type User struct { Email string } +func (u *User) SafeID() models.UserID { + if u != nil { + return u.ID + } + return models.NilUserID +} + type Classifier struct { ID models.ClassifierID UUID assets.ClassifierUUID diff --git a/testsuite/testdata/tickets.go b/testsuite/testdata/tickets.go index f418665c0..76a2c1ae2 100644 --- a/testsuite/testdata/tickets.go +++ b/testsuite/testdata/tickets.go @@ -51,15 +51,11 @@ func insertTicket(db *sqlx.DB, org *Org, contact *Contact, ticketer *Ticketer, s t := dates.Now() closedOn = &t } - assigneeID := models.NilUserID - if assignee != nil { - assigneeID = assignee.ID - } var id models.TicketID must(db.Get(&id, `INSERT INTO tickets_ticket(uuid, org_id, contact_id, ticketer_id, status, topic_id, subject, body, external_id, opened_on, modified_on, closed_on, last_activity_on, assignee_id) - VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9, NOW(), NOW(), $10, NOW(), $11) RETURNING id`, uuid, org.ID, contact.ID, ticketer.ID, status, topic.ID, subject, body, externalID, closedOn, assigneeID, + VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9, NOW(), NOW(), $10, NOW(), $11) RETURNING id`, uuid, org.ID, contact.ID, ticketer.ID, status, topic.ID, subject, body, externalID, closedOn, assignee.SafeID(), )) return &Ticket{id, uuid} } From a5de6fe6a37331c463e1cdd3346d969a235b4543 Mon Sep 17 00:00:00 2001 From: Rowan Seymour Date: Wed, 1 Sep 2021 14:39:34 -0500 Subject: [PATCH 3/6] Opening a ticket with an assignee should create a ticket assigned event rather than ticket opened --- core/handlers/ticket_opened_test.go | 10 +++++ core/hooks/insert_tickets.go | 2 +- core/models/notifications.go | 66 ++++++++++++++++++++--------- core/models/notifications_test.go | 52 ++++++++++++++++++----- core/models/tickets.go | 9 +++- core/models/tickets_test.go | 5 +++ 6 files changed, 110 insertions(+), 34 deletions(-) diff --git a/core/handlers/ticket_opened_test.go b/core/handlers/ticket_opened_test.go index 252e78ee6..652552356 100644 --- a/core/handlers/ticket_opened_test.go +++ b/core/handlers/ticket_opened_test.go @@ -119,6 +119,16 @@ func TestTicketOpened(t *testing.T) { Args: []interface{}{testdata.Admin.ID}, Count: 1, }, + { // admin will have a ticket assigned notification for the ticket directly assigned to them + SQL: "select count(*) from notifications_notification n inner join notifications_log l on l.id = n.log_id where n.user_id = $1 and l.log_type = 'ticket:assigned'", + Args: []interface{}{testdata.Admin.ID}, + Count: 1, + }, + { // all assignable users will have a ticket opened notification for the unassigned ticket + SQL: "select count(*) from notifications_notification n inner join notifications_log l on l.id = n.log_id where l.log_type = 'ticket:opened'", + Args: nil, + Count: 3, + }, }, }, } diff --git a/core/hooks/insert_tickets.go b/core/hooks/insert_tickets.go index a937bac7c..16820a446 100644 --- a/core/hooks/insert_tickets.go +++ b/core/hooks/insert_tickets.go @@ -47,7 +47,7 @@ func (h *insertTicketsHook) Apply(ctx context.Context, tx *sqlx.Tx, rp *redis.Po // and insert logs/notifications for those err = models.LogTicketsOpened(ctx, tx, oa, openEvents) if err != nil { - return errors.Wrapf(err, "error inserting ticket opened logs and notifications") + return errors.Wrapf(err, "error inserting logs and notifications") } return nil diff --git a/core/models/notifications.go b/core/models/notifications.go index e65bbbdd6..6c2d997a3 100644 --- a/core/models/notifications.go +++ b/core/models/notifications.go @@ -24,7 +24,7 @@ const ( LogTypeImportCompleted LogType = "import:completed" LogTypeTicketOpened LogType = "ticket:opened" LogTypeTicketNewMsgs LogType = "ticket:msgs" - LogTypeTicketAssignment LogType = "ticket:assign" + LogTypeTicketAssigned LogType = "ticket:assigned" LogTypeTicketNote LogType = "ticket:note" ) @@ -62,42 +62,68 @@ func notifyRoles(roles ...UserRole) notifyWhoFunc { } // LogTicketsOpened logs the opening of new tickets and notifies all assignable users if tickets is not already assigned -func LogTicketsOpened(ctx context.Context, db Queryer, oa *OrgAssets, openEvents []*TicketEvent) error { - // create log for each ticket event and record of which ones are for tickets which are already assigned - logs := make([]*Log, len(openEvents)) - assigned := make(map[*Log]bool, len(openEvents)) +func LogTicketsOpened(ctx context.Context, db Queryer, oa *OrgAssets, events []*TicketEvent) error { + // create log for each ticket event and record which users are assigned + logs := make([]*Log, len(events)) + assignees := make(map[*Log]UserID, len(events)) + + for i, evt := range events { + logType := LogTypeTicketOpened + if evt.AssigneeID() != NilUserID { + logType = LogTypeTicketAssigned + } - for i, evt := range openEvents { log := &Log{ OrgID: evt.OrgID(), - LogType: LogTypeTicketOpened, + LogType: logType, CreatedByID: evt.CreatedByID(), TicketID: evt.TicketID(), TicketEventID: evt.ID(), } logs[i] = log - assigned[log] = evt.AssigneeID() != NilUserID + assignees[log] = evt.AssigneeID() } return insertLogsAndNotifications(ctx, db, oa, logs, func(l *Log) ([]UserRole, []UserID) { - if !assigned[l] { - return []UserRole{UserRoleAdministrator, UserRoleEditor, UserRoleAgent}, nil + // if this log is actually an assignment then only notify the assignee + if l.LogType == LogTypeTicketAssigned { + return nil, []UserID{assignees[l]} } - return nil, nil + + // otherwise notify all possible assignees + return []UserRole{UserRoleAdministrator, UserRoleEditor, UserRoleAgent}, nil }) } -// LogTicketAssigned logs the assignment of a ticket and notifies the assignee -func LogTicketAssigned(ctx context.Context, db Queryer, oa *OrgAssets, ticket *Ticket, assignment *TicketEvent) error { - log := &Log{ - OrgID: assignment.OrgID(), - LogType: LogTypeTicketAssignment, - CreatedByID: assignment.CreatedByID(), - TicketID: ticket.ID(), - TicketEventID: assignment.ID(), +// LogTicketsAssigned logs the assignment of tickets and notifies the assignees +func LogTicketsAssigned(ctx context.Context, db Queryer, oa *OrgAssets, events []*TicketEvent) error { + // create log for each ticket event and record which users are assigned + logs := make([]*Log, len(events)) + assignees := make(map[*Log]UserID, len(events)) + + for i, evt := range events { + log := &Log{ + OrgID: evt.OrgID(), + LogType: LogTypeTicketAssigned, + CreatedByID: evt.CreatedByID(), + TicketID: evt.TicketID(), + TicketEventID: evt.ID(), + } + logs[i] = log + assignees[log] = evt.AssigneeID() } - return insertLogsAndNotifications(ctx, db, oa, []*Log{log}, notifyUser(assignment.AssigneeID())) + return insertLogsAndNotifications(ctx, db, oa, logs, func(l *Log) ([]UserRole, []UserID) { + assigneeID := assignees[l] + + // if ticket has been assigned, notify assignee + if assigneeID != NilUserID { + return nil, []UserID{assigneeID} + } + + // otherwise don't notify anyone if it's being unassigned + return nil, nil + }) } const insertLogSQL = ` diff --git a/core/models/notifications_test.go b/core/models/notifications_test.go index 26667d4e1..15e43d248 100644 --- a/core/models/notifications_test.go +++ b/core/models/notifications_test.go @@ -12,37 +12,66 @@ import ( "github.com/stretchr/testify/require" ) -func TestNotifications(t *testing.T) { - ctx, _, db, _ := testsuite.Reset() +func TestTicketOpenedNotifications(t *testing.T) { + ctx, _, db, _ := testsuite.Get() oa, err := models.GetOrgAssets(ctx, db, testdata.Org1.ID) require.NoError(t, err) // open an unassigned ticket by a flow (i.e. no user) - ticket, openedEvent := openTicket(ctx, db, nil, nil) + _, openedEvent := openTicket(t, ctx, db, nil, nil) err = models.LogTicketsOpened(ctx, db, oa, []*models.TicketEvent{openedEvent}) require.NoError(t, err) // check that all assignable users are notified log := assertNotifications(t, ctx, db, models.LogTypeTicketOpened, nil, []*testdata.User{testdata.Admin, testdata.Editor, testdata.Agent}) - assert.Equal(t, ticket.ID(), log.TicketID) + assert.Equal(t, openedEvent.TicketID(), log.TicketID) assert.Equal(t, openedEvent.ID(), log.TicketEventID) // open an unassigned ticket by a user - _, openedEvent = openTicket(ctx, db, testdata.Editor, nil) + _, openedEvent = openTicket(t, ctx, db, testdata.Editor, nil) err = models.LogTicketsOpened(ctx, db, oa, []*models.TicketEvent{openedEvent}) require.NoError(t, err) // check that all assignable users are notified except the user who opened the ticket assertNotifications(t, ctx, db, models.LogTypeTicketOpened, testdata.Editor, []*testdata.User{testdata.Admin, testdata.Agent}) - // open an assigned ticket - _, openedEvent = openTicket(ctx, db, nil, testdata.Agent) + // open an already assigned ticket + _, openedEvent = openTicket(t, ctx, db, nil, testdata.Agent) err = models.LogTicketsOpened(ctx, db, oa, []*models.TicketEvent{openedEvent}) require.NoError(t, err) - // check that we don't notify any users - assertNotifications(t, ctx, db, models.LogTypeTicketOpened, nil, nil) + // check that the log type is actually assigned and that we notify the assigned user only + assertNotifications(t, ctx, db, models.LogTypeTicketAssigned, nil, []*testdata.User{testdata.Agent}) + + // unless they self-assigned.. + _, openedEvent = openTicket(t, ctx, db, testdata.Agent, testdata.Agent) + err = models.LogTicketsOpened(ctx, db, oa, []*models.TicketEvent{openedEvent}) + require.NoError(t, err) + + // in which case there is nobody to notify + assertNotifications(t, ctx, db, models.LogTypeTicketAssigned, testdata.Agent, nil) +} + +func TestTicketAssignedNotifications(t *testing.T) { + ctx, _, db, _ := testsuite.Get() + + oa, err := models.GetOrgAssets(ctx, db, testdata.Org1.ID) + require.NoError(t, err) + + // open an unassigned ticket + ticket, _ := openTicket(t, ctx, db, nil, nil) + require.NoError(t, err) + + assignedEvent := models.NewTicketAssignedEvent(ticket, testdata.Admin.ID, testdata.Agent.ID, "please") + err = models.InsertTicketEvents(ctx, db, []*models.TicketEvent{assignedEvent}) + require.NoError(t, err) + + err = models.LogTicketsAssigned(ctx, db, oa, []*models.TicketEvent{assignedEvent}) + require.NoError(t, err) + + // check that assignee is notified + assertNotifications(t, ctx, db, models.LogTypeTicketAssigned, testdata.Admin, []*testdata.User{testdata.Agent}) } func assertNotifications(t *testing.T, ctx context.Context, db *sqlx.DB, expectedType models.LogType, expectedCreatedBy *testdata.User, expectedNotified []*testdata.User) *models.Log { @@ -69,12 +98,13 @@ func assertNotifications(t *testing.T, ctx context.Context, db *sqlx.DB, expecte return log } -func openTicket(ctx context.Context, db *sqlx.DB, openedBy *testdata.User, assignee *testdata.User) (*models.Ticket, *models.TicketEvent) { +func openTicket(t *testing.T, ctx context.Context, db *sqlx.DB, openedBy *testdata.User, assignee *testdata.User) (*models.Ticket, *models.TicketEvent) { ticket := testdata.InsertOpenTicket(db, testdata.Org1, testdata.Cathy, testdata.Internal, testdata.SupportTopic, "", "Where my pants", "", assignee) modelTicket := ticket.Load(db) openedEvent := models.NewTicketOpenedEvent(modelTicket, openedBy.SafeID(), assignee.SafeID()) - models.InsertTicketEvents(ctx, db, []*models.TicketEvent{openedEvent}) + err := models.InsertTicketEvents(ctx, db, []*models.TicketEvent{openedEvent}) + require.NoError(t, err) return modelTicket, openedEvent } diff --git a/core/models/tickets.go b/core/models/tickets.go index d88af5333..1c96ee34f 100644 --- a/core/models/tickets.go +++ b/core/models/tickets.go @@ -420,12 +420,17 @@ func TicketsAssign(ctx context.Context, db Queryer, oa *OrgAssets, userID UserID // mark the tickets as assigned in the db err := Exec(ctx, "assign tickets", db, ticketsAssignSQL, pq.Array(ids), assigneeID, now) if err != nil { - return nil, errors.Wrapf(err, "error updating tickets") + return nil, errors.Wrap(err, "error updating tickets") } err = InsertTicketEvents(ctx, db, events) if err != nil { - return nil, errors.Wrapf(err, "error inserting ticket events") + return nil, errors.Wrap(err, "error inserting ticket events") + } + + err = LogTicketsAssigned(ctx, db, oa, events) + if err != nil { + return nil, errors.Wrap(err, "error inserting logs and notifications") } return eventsByTicket, nil diff --git a/core/models/tickets_test.go b/core/models/tickets_test.go index af3cb8106..9b80f69e7 100644 --- a/core/models/tickets_test.go +++ b/core/models/tickets_test.go @@ -209,6 +209,9 @@ func TestTicketsAssign(t *testing.T) { // and there are new assigned events testsuite.AssertQuery(t, db, `SELECT count(*) FROM tickets_ticketevent WHERE event_type = 'A' AND note = 'please handle these'`).Returns(2) + + testsuite.AssertQuery(t, db, `SELECT count(*) FROM notifications_log WHERE log_type = 'ticket:assigned' AND created_by_id = $1`, testdata.Admin.ID).Returns(2) + testsuite.AssertQuery(t, db, `SELECT count(*) FROM notifications_notification WHERE user_id = $1`, testdata.Agent.ID).Returns(2) } func TestTicketsAddNote(t *testing.T) { @@ -370,6 +373,8 @@ func TestReopenTickets(t *testing.T) { } func deleteTickets(db *sqlx.DB) { + db.MustExec(`DELETE FROM notifications_notification`) + db.MustExec(`DELETE FROM notifications_log`) db.MustExec(`DELETE FROM request_logs_httplog`) db.MustExec(`DELETE FROM tickets_ticketevent`) db.MustExec(`DELETE FROM tickets_ticket`) From 5570d6755092eeadd1c6d4554c8af512f50b599e Mon Sep 17 00:00:00 2001 From: Rowan Seymour Date: Wed, 1 Sep 2021 17:13:15 -0500 Subject: [PATCH 4/6] Remove unused code --- core/models/notifications.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/models/notifications.go b/core/models/notifications.go index 6c2d997a3..fb011ba02 100644 --- a/core/models/notifications.go +++ b/core/models/notifications.go @@ -49,6 +49,7 @@ type Notification struct { type notifyWhoFunc func(l *Log) ([]UserRole, []UserID) +/* func notifyUser(id UserID) notifyWhoFunc { return func(l *Log) ([]UserRole, []UserID) { return nil, []UserID{id} @@ -60,6 +61,7 @@ func notifyRoles(roles ...UserRole) notifyWhoFunc { return roles, nil } } +*/ // LogTicketsOpened logs the opening of new tickets and notifies all assignable users if tickets is not already assigned func LogTicketsOpened(ctx context.Context, db Queryer, oa *OrgAssets, events []*TicketEvent) error { From 68dafd96daa27d448831068c596cefa1d444d703 Mon Sep 17 00:00:00 2001 From: Rowan Seymour Date: Mon, 6 Sep 2021 16:21:40 -0500 Subject: [PATCH 5/6] Update to latest RP schema which removes Log model --- core/handlers/ticket_opened_test.go | 4 +- core/hooks/insert_tickets.go | 9 +- core/models/imports.go | 9 +- core/models/notifications.go | 222 ++++++++++------------------ core/models/notifications_test.go | 126 +++++++++------- core/models/tickets.go | 4 +- core/models/tickets_test.go | 4 +- mailroom_test.dump | Bin 1895000 -> 1899551 bytes 8 files changed, 173 insertions(+), 205 deletions(-) diff --git a/core/handlers/ticket_opened_test.go b/core/handlers/ticket_opened_test.go index 652552356..51fa7c50d 100644 --- a/core/handlers/ticket_opened_test.go +++ b/core/handlers/ticket_opened_test.go @@ -120,12 +120,12 @@ func TestTicketOpened(t *testing.T) { Count: 1, }, { // admin will have a ticket assigned notification for the ticket directly assigned to them - SQL: "select count(*) from notifications_notification n inner join notifications_log l on l.id = n.log_id where n.user_id = $1 and l.log_type = 'ticket:assigned'", + SQL: "select count(*) from notifications_notification where user_id = $1 and notification_type = 'tickets:activity'", Args: []interface{}{testdata.Admin.ID}, Count: 1, }, { // all assignable users will have a ticket opened notification for the unassigned ticket - SQL: "select count(*) from notifications_notification n inner join notifications_log l on l.id = n.log_id where l.log_type = 'ticket:opened'", + SQL: "select count(*) from notifications_notification where notification_type = 'tickets:opened'", Args: nil, Count: 3, }, diff --git a/core/hooks/insert_tickets.go b/core/hooks/insert_tickets.go index 16820a446..4860aeaf4 100644 --- a/core/hooks/insert_tickets.go +++ b/core/hooks/insert_tickets.go @@ -34,8 +34,11 @@ func (h *insertTicketsHook) Apply(ctx context.Context, tx *sqlx.Tx, rp *redis.Po // generate opened events for each ticket openEvents := make([]*models.TicketEvent, len(tickets)) + eventsByTicket := make(map[*models.Ticket]*models.TicketEvent, len(tickets)) for i, ticket := range tickets { - openEvents[i] = models.NewTicketOpenedEvent(ticket, models.NilUserID, ticket.AssigneeID()) + evt := models.NewTicketOpenedEvent(ticket, models.NilUserID, ticket.AssigneeID()) + openEvents[i] = evt + eventsByTicket[ticket] = evt } // and insert those too @@ -45,9 +48,9 @@ func (h *insertTicketsHook) Apply(ctx context.Context, tx *sqlx.Tx, rp *redis.Po } // and insert logs/notifications for those - err = models.LogTicketsOpened(ctx, tx, oa, openEvents) + err = models.NotificationsFromTicketEvents(ctx, tx, oa, eventsByTicket) if err != nil { - return errors.Wrapf(err, "error inserting logs and notifications") + return errors.Wrapf(err, "error inserting notifications") } return nil diff --git a/core/models/imports.go b/core/models/imports.go index bd91d3a66..0f6aab119 100644 --- a/core/models/imports.go +++ b/core/models/imports.go @@ -2,6 +2,7 @@ package models import ( "context" + "database/sql/driver" "encoding/json" "fmt" "strings" @@ -14,13 +15,19 @@ import ( "github.com/nyaruka/goflow/envs" "github.com/nyaruka/goflow/flows" "github.com/nyaruka/goflow/flows/modifiers" + "github.com/nyaruka/null" "github.com/pkg/errors" "github.com/jmoiron/sqlx" ) // ContactImportID is the type for contact import IDs -type ContactImportID int64 +type ContactImportID null.Int + +func (i ContactImportID) MarshalJSON() ([]byte, error) { return null.Int(i).MarshalJSON() } +func (i *ContactImportID) UnmarshalJSON(b []byte) error { return null.UnmarshalInt(b, (*null.Int)(i)) } +func (i ContactImportID) Value() (driver.Value, error) { return null.Int(i).Value() } +func (i *ContactImportID) Scan(value interface{}) error { return null.ScanInt(value, (*null.Int)(i)) } // ContactImportBatchID is the type for contact import batch IDs type ContactImportBatchID int64 diff --git a/core/models/notifications.go b/core/models/notifications.go index fb011ba02..3491d8786 100644 --- a/core/models/notifications.go +++ b/core/models/notifications.go @@ -2,182 +2,116 @@ package models import ( "context" + "time" "github.com/nyaruka/mailroom/utils/dbutil" "github.com/pkg/errors" ) -// LogID is our type for log ids -type LogID int +// NotificationID is our type for notification ids +type NotificationID int -type LogType string +type NotificationType string const ( - LogTypeBroadcastStarted LogType = "bcast:started" - LogTypeBroadcastCompleted LogType = "bcast:completed" - LogTypeChannelAlert LogType = "channel:alert" - LogTypeExportStarted LogType = "export:started" - LogTypeExportCompleted LogType = "export:completed" - LogTypeFlowStartStarted LogType = "start:started" - LogTypeFlowStartCompleted LogType = "start:completed" - LogTypeImportStarted LogType = "import:started" - LogTypeImportCompleted LogType = "import:completed" - LogTypeTicketOpened LogType = "ticket:opened" - LogTypeTicketNewMsgs LogType = "ticket:msgs" - LogTypeTicketAssigned LogType = "ticket:assigned" - LogTypeTicketNote LogType = "ticket:note" + NotificationTypeChannelAlert NotificationType = "channel:alert" + NotificationTypeExportFinished NotificationType = "export:finished" + NotificationTypeImportFinished NotificationType = "import:finished" + NotificationTypeTicketsOpened NotificationType = "tickets:opened" + NotificationTypeTicketsActivity NotificationType = "tickets:activity" ) -type Log struct { - ID LogID `db:"id"` - OrgID OrgID `db:"org_id"` - LogType LogType `db:"log_type"` - CreatedByID UserID `db:"created_by_id"` - - BroadcastID BroadcastID `db:"broadcast_id"` - FlowStartID StartID `db:"flow_start_id"` - TicketID TicketID `db:"ticket_id"` - TicketEventID TicketEventID `db:"ticket_event_id"` -} - type Notification struct { - ID LogID `db:"id"` - OrgID OrgID `db:"org_id"` - UserID UserID `db:"user_id"` - LogID LogID `db:"log_id"` -} - -type notifyWhoFunc func(l *Log) ([]UserRole, []UserID) - -/* -func notifyUser(id UserID) notifyWhoFunc { - return func(l *Log) ([]UserRole, []UserID) { - return nil, []UserID{id} - } -} - -func notifyRoles(roles ...UserRole) notifyWhoFunc { - return func(l *Log) ([]UserRole, []UserID) { - return roles, nil - } + ID NotificationID `db:"id"` + OrgID OrgID `db:"org_id"` + Type NotificationType `db:"notification_type"` + Scope string `db:"scope"` + UserID UserID `db:"user_id"` + IsSeen bool `db:"is_seen"` + CreatedOn time.Time `db:"created_on"` + + ChannelID ChannelID `db:"channel_id"` + ContactImportID ContactImportID `db:"contact_import_id"` } -*/ - -// LogTicketsOpened logs the opening of new tickets and notifies all assignable users if tickets is not already assigned -func LogTicketsOpened(ctx context.Context, db Queryer, oa *OrgAssets, events []*TicketEvent) error { - // create log for each ticket event and record which users are assigned - logs := make([]*Log, len(events)) - assignees := make(map[*Log]UserID, len(events)) - - for i, evt := range events { - logType := LogTypeTicketOpened - if evt.AssigneeID() != NilUserID { - logType = LogTypeTicketAssigned - } - log := &Log{ - OrgID: evt.OrgID(), - LogType: logType, - CreatedByID: evt.CreatedByID(), - TicketID: evt.TicketID(), - TicketEventID: evt.ID(), +var ticketAssignableToles = []UserRole{UserRoleAdministrator, UserRoleEditor, UserRoleAgent} + +// NotificationsFromTicketEvents logs the opening of new tickets and notifies all assignable users if tickets is not already assigned +func NotificationsFromTicketEvents(ctx context.Context, db Queryer, oa *OrgAssets, events map[*Ticket]*TicketEvent) error { + notifyTicketsOpened := make(map[UserID]bool) + notifyTicketsActivity := make(map[UserID]bool) + + for ticket, evt := range events { + switch evt.EventType() { + case TicketEventTypeOpened: + // if ticket is unassigned notify all possible assignees + if evt.AssigneeID() == NilUserID { + for _, u := range oa.users { + user := u.(*User) + + if hasAnyRole(user, ticketAssignableToles) && evt.CreatedByID() != user.ID() { + notifyTicketsOpened[user.ID()] = true + } + } + } else if evt.AssigneeID() != evt.CreatedByID() { + notifyTicketsActivity[evt.AssigneeID()] = true + } + case TicketEventTypeAssigned: + // notify new ticket assignee if they didn't self-assign + if evt.AssigneeID() != NilUserID && evt.AssigneeID() != evt.CreatedByID() { + notifyTicketsActivity[evt.AssigneeID()] = true + } + case TicketEventTypeNoteAdded: + // notify ticket assignee if they didn't add note themselves + if ticket.AssigneeID() != evt.CreatedByID() { + notifyTicketsActivity[ticket.AssigneeID()] = true + } } - logs[i] = log - assignees[log] = evt.AssigneeID() } - return insertLogsAndNotifications(ctx, db, oa, logs, func(l *Log) ([]UserRole, []UserID) { - // if this log is actually an assignment then only notify the assignee - if l.LogType == LogTypeTicketAssigned { - return nil, []UserID{assignees[l]} - } - - // otherwise notify all possible assignees - return []UserRole{UserRoleAdministrator, UserRoleEditor, UserRoleAgent}, nil - }) -} + notifications := make([]*Notification, 0, len(events)) -// LogTicketsAssigned logs the assignment of tickets and notifies the assignees -func LogTicketsAssigned(ctx context.Context, db Queryer, oa *OrgAssets, events []*TicketEvent) error { - // create log for each ticket event and record which users are assigned - logs := make([]*Log, len(events)) - assignees := make(map[*Log]UserID, len(events)) - - for i, evt := range events { - log := &Log{ - OrgID: evt.OrgID(), - LogType: LogTypeTicketAssigned, - CreatedByID: evt.CreatedByID(), - TicketID: evt.TicketID(), - TicketEventID: evt.ID(), - } - logs[i] = log - assignees[log] = evt.AssigneeID() + for userID := range notifyTicketsOpened { + notifications = append(notifications, &Notification{ + OrgID: oa.OrgID(), + Type: NotificationTypeTicketsOpened, + Scope: "", + UserID: userID, + }) } - return insertLogsAndNotifications(ctx, db, oa, logs, func(l *Log) ([]UserRole, []UserID) { - assigneeID := assignees[l] - - // if ticket has been assigned, notify assignee - if assigneeID != NilUserID { - return nil, []UserID{assigneeID} - } + for userID := range notifyTicketsActivity { + notifications = append(notifications, &Notification{ + OrgID: oa.OrgID(), + Type: NotificationTypeTicketsActivity, + Scope: "", + UserID: userID, + }) + } - // otherwise don't notify anyone if it's being unassigned - return nil, nil - }) + return insertNotifications(ctx, db, notifications) } -const insertLogSQL = ` -INSERT INTO notifications_log(org_id, log_type, created_on, created_by_id, broadcast_id, flow_start_id, ticket_id, ticket_event_id) - VALUES(:org_id, :log_type, NOW(), :created_by_id, :broadcast_id, :flow_start_id, :ticket_id, :ticket_event_id) -RETURNING id` - const insertNotificationSQL = ` -INSERT INTO notifications_notification(org_id, user_id, log_id, is_seen) - VALUES(:org_id, :user_id, :log_id, FALSE)` - -func insertLogsAndNotifications(ctx context.Context, db Queryer, oa *OrgAssets, logs []*Log, notifyWho notifyWhoFunc) error { - is := make([]interface{}, len(logs)) - for i := range logs { - is[i] = logs[i] - } - - err := dbutil.BulkQuery(ctx, db, insertLogSQL, is) - if err != nil { - return errors.Wrap(err, "error inserting logs") - } - - var notifications []interface{} - - for _, log := range logs { - notifyRoles, notifyUsers := notifyWho(log) - - for _, u := range oa.users { - user := u.(*User) - - // don't create a notification for the user that did the logged thing - if log.CreatedByID != user.ID() && userMatchesRoleOrID(user, notifyRoles, notifyUsers) { - notifications = append(notifications, &Notification{OrgID: oa.OrgID(), UserID: user.ID(), LogID: log.ID}) - } - } +INSERT INTO notifications_notification(org_id, notification_type, scope, user_id, is_seen, created_on, channel_id, contact_import_id) + VALUES(:org_id, :notification_type, :scope, :user_id, FALSE, NOW(), :channel_id, :contact_import_id) + ON CONFLICT DO NOTHING` + +func insertNotifications(ctx context.Context, db Queryer, notifications []*Notification) error { + is := make([]interface{}, len(notifications)) + for i := range notifications { + is[i] = notifications[i] } - err = dbutil.BulkQuery(ctx, db, insertNotificationSQL, notifications) - + err := dbutil.BulkQuery(ctx, db, insertNotificationSQL, is) return errors.Wrap(err, "error inserting notifications") } -func userMatchesRoleOrID(user *User, roles []UserRole, ids []UserID) bool { +func hasAnyRole(user *User, roles []UserRole) bool { for _, r := range roles { if user.Role() == r { return true } } - for _, id := range ids { - if user.ID() == id { - return true - } - } return false } diff --git a/core/models/notifications_test.go b/core/models/notifications_test.go index 15e43d248..fe333c0f8 100644 --- a/core/models/notifications_test.go +++ b/core/models/notifications_test.go @@ -3,6 +3,7 @@ package models_test import ( "context" "testing" + "time" "github.com/jmoiron/sqlx" "github.com/nyaruka/mailroom/core/models" @@ -12,90 +13,115 @@ import ( "github.com/stretchr/testify/require" ) -func TestTicketOpenedNotifications(t *testing.T) { +func TestTicketNotifications(t *testing.T) { ctx, _, db, _ := testsuite.Get() + defer deleteTickets(db) + oa, err := models.GetOrgAssets(ctx, db, testdata.Org1.ID) require.NoError(t, err) - // open an unassigned ticket by a flow (i.e. no user) - _, openedEvent := openTicket(t, ctx, db, nil, nil) - err = models.LogTicketsOpened(ctx, db, oa, []*models.TicketEvent{openedEvent}) + t0 := time.Now() + + // open unassigned tickets by a flow (i.e. no user) + ticket1, openedEvent1 := openTicket(t, ctx, db, nil, nil) + ticket2, openedEvent2 := openTicket(t, ctx, db, nil, nil) + err = models.NotificationsFromTicketEvents(ctx, db, oa, map[*models.Ticket]*models.TicketEvent{ticket1: openedEvent1, ticket2: openedEvent2}) require.NoError(t, err) - // check that all assignable users are notified - log := assertNotifications(t, ctx, db, models.LogTypeTicketOpened, nil, []*testdata.User{testdata.Admin, testdata.Editor, testdata.Agent}) - assert.Equal(t, openedEvent.TicketID(), log.TicketID) - assert.Equal(t, openedEvent.ID(), log.TicketEventID) + // check that all assignable users are notified once + assertNotifications(t, ctx, db, t0, map[*testdata.User][]models.NotificationType{ + testdata.Admin: {models.NotificationTypeTicketsOpened}, + testdata.Editor: {models.NotificationTypeTicketsOpened}, + testdata.Agent: {models.NotificationTypeTicketsOpened}, + }) + + t1 := time.Now() + + // another ticket opened won't create new notifications + ticket3, openedEvent3 := openTicket(t, ctx, db, nil, nil) + err = models.NotificationsFromTicketEvents(ctx, db, oa, map[*models.Ticket]*models.TicketEvent{ticket3: openedEvent3}) + require.NoError(t, err) + + assertNotifications(t, ctx, db, t1, map[*testdata.User][]models.NotificationType{}) + + // mark all notifications as seen + db.MustExec(`UPDATE notifications_notification SET is_seen = TRUE`) // open an unassigned ticket by a user - _, openedEvent = openTicket(t, ctx, db, testdata.Editor, nil) - err = models.LogTicketsOpened(ctx, db, oa, []*models.TicketEvent{openedEvent}) + ticket4, openedEvent4 := openTicket(t, ctx, db, testdata.Editor, nil) + err = models.NotificationsFromTicketEvents(ctx, db, oa, map[*models.Ticket]*models.TicketEvent{ticket4: openedEvent4}) require.NoError(t, err) - // check that all assignable users are notified except the user who opened the ticket - assertNotifications(t, ctx, db, models.LogTypeTicketOpened, testdata.Editor, []*testdata.User{testdata.Admin, testdata.Agent}) + // check that all assignable users are notified except the user that opened the ticket + assertNotifications(t, ctx, db, t1, map[*testdata.User][]models.NotificationType{ + testdata.Admin: {models.NotificationTypeTicketsOpened}, + testdata.Agent: {models.NotificationTypeTicketsOpened}, + }) + + t2 := time.Now() + db.MustExec(`UPDATE notifications_notification SET is_seen = TRUE`) // open an already assigned ticket - _, openedEvent = openTicket(t, ctx, db, nil, testdata.Agent) - err = models.LogTicketsOpened(ctx, db, oa, []*models.TicketEvent{openedEvent}) + ticket5, openedEvent5 := openTicket(t, ctx, db, nil, testdata.Agent) + err = models.NotificationsFromTicketEvents(ctx, db, oa, map[*models.Ticket]*models.TicketEvent{ticket5: openedEvent5}) require.NoError(t, err) - // check that the log type is actually assigned and that we notify the assigned user only - assertNotifications(t, ctx, db, models.LogTypeTicketAssigned, nil, []*testdata.User{testdata.Agent}) + // check that the assigned user gets a ticket activity notification + assertNotifications(t, ctx, db, t2, map[*testdata.User][]models.NotificationType{ + testdata.Agent: {models.NotificationTypeTicketsActivity}, + }) + + t3 := time.Now() - // unless they self-assigned.. - _, openedEvent = openTicket(t, ctx, db, testdata.Agent, testdata.Agent) - err = models.LogTicketsOpened(ctx, db, oa, []*models.TicketEvent{openedEvent}) + // however if a user opens a ticket which is assigned to themselves, no notification + ticket6, openedEvent6 := openTicket(t, ctx, db, testdata.Admin, testdata.Admin) + err = models.NotificationsFromTicketEvents(ctx, db, oa, map[*models.Ticket]*models.TicketEvent{ticket6: openedEvent6}) require.NoError(t, err) - // in which case there is nobody to notify - assertNotifications(t, ctx, db, models.LogTypeTicketAssigned, testdata.Agent, nil) -} + // check that the assigned user gets a ticket activity notification + assertNotifications(t, ctx, db, t3, map[*testdata.User][]models.NotificationType{}) -func TestTicketAssignedNotifications(t *testing.T) { - ctx, _, db, _ := testsuite.Get() + t4 := time.Now() + db.MustExec(`UPDATE notifications_notification SET is_seen = TRUE`) - oa, err := models.GetOrgAssets(ctx, db, testdata.Org1.ID) + // now have a user assign existing tickets to another user + _, err = models.TicketsAssign(ctx, db, oa, testdata.Admin.ID, []*models.Ticket{ticket1, ticket2}, testdata.Agent.ID, "") require.NoError(t, err) - // open an unassigned ticket - ticket, _ := openTicket(t, ctx, db, nil, nil) - require.NoError(t, err) + // check that the assigned user gets a ticket activity notification + assertNotifications(t, ctx, db, t4, map[*testdata.User][]models.NotificationType{ + testdata.Agent: {models.NotificationTypeTicketsActivity}, + }) - assignedEvent := models.NewTicketAssignedEvent(ticket, testdata.Admin.ID, testdata.Agent.ID, "please") - err = models.InsertTicketEvents(ctx, db, []*models.TicketEvent{assignedEvent}) - require.NoError(t, err) + t5 := time.Now() + db.MustExec(`UPDATE notifications_notification SET is_seen = TRUE`) - err = models.LogTicketsAssigned(ctx, db, oa, []*models.TicketEvent{assignedEvent}) + // and finally a user assigning a ticket to themselves + _, err = models.TicketsAssign(ctx, db, oa, testdata.Editor.ID, []*models.Ticket{ticket3}, testdata.Editor.ID, "") require.NoError(t, err) - // check that assignee is notified - assertNotifications(t, ctx, db, models.LogTypeTicketAssigned, testdata.Admin, []*testdata.User{testdata.Agent}) + // no notifications for self-assignment + assertNotifications(t, ctx, db, t5, map[*testdata.User][]models.NotificationType{}) } -func assertNotifications(t *testing.T, ctx context.Context, db *sqlx.DB, expectedType models.LogType, expectedCreatedBy *testdata.User, expectedNotified []*testdata.User) *models.Log { +func assertNotifications(t *testing.T, ctx context.Context, db *sqlx.DB, after time.Time, expected map[*testdata.User][]models.NotificationType) { // check last log - log := &models.Log{} - err := db.GetContext(ctx, log, `SELECT id, org_id, log_type, created_by_id, ticket_id, ticket_event_id FROM notifications_log ORDER BY id DESC LIMIT 1`) + var notifications []*models.Notification + err := db.SelectContext(ctx, ¬ifications, `SELECT id, org_id, notification_type, scope, user_id, is_seen, created_on FROM notifications_notification WHERE created_on > $1 ORDER BY id`, after) require.NoError(t, err) - assert.Equal(t, expectedType, log.LogType, "log type mismatch") - assert.Equal(t, expectedCreatedBy.SafeID(), log.CreatedByID, "log created by mismatch") - - // check who was notified - var actualNotifiedIDs []models.UserID - err = db.SelectContext(ctx, &actualNotifiedIDs, `SELECT user_id FROM notifications_notification WHERE log_id = $1`, log.ID) - require.NoError(t, err) - - expectedNotifiedIDs := make([]models.UserID, len(expectedNotified)) - for i := range expectedNotified { - expectedNotifiedIDs[i] = expectedNotified[i].ID + expectedByID := map[models.UserID][]models.NotificationType{} + for user, notificationTypes := range expected { + expectedByID[user.ID] = notificationTypes } - assert.ElementsMatch(t, expectedNotifiedIDs, actualNotifiedIDs, "notified users mismatch") + actual := map[models.UserID][]models.NotificationType{} + for _, notification := range notifications { + actual[notification.UserID] = append(actual[notification.UserID], notification.Type) + } - return log + assert.Equal(t, expectedByID, actual) } func openTicket(t *testing.T, ctx context.Context, db *sqlx.DB, openedBy *testdata.User, assignee *testdata.User) (*models.Ticket, *models.TicketEvent) { diff --git a/core/models/tickets.go b/core/models/tickets.go index 1c96ee34f..e6f01dcc3 100644 --- a/core/models/tickets.go +++ b/core/models/tickets.go @@ -428,9 +428,9 @@ func TicketsAssign(ctx context.Context, db Queryer, oa *OrgAssets, userID UserID return nil, errors.Wrap(err, "error inserting ticket events") } - err = LogTicketsAssigned(ctx, db, oa, events) + err = NotificationsFromTicketEvents(ctx, db, oa, eventsByTicket) if err != nil { - return nil, errors.Wrap(err, "error inserting logs and notifications") + return nil, errors.Wrap(err, "error inserting notifications") } return eventsByTicket, nil diff --git a/core/models/tickets_test.go b/core/models/tickets_test.go index 9b80f69e7..17da6cb33 100644 --- a/core/models/tickets_test.go +++ b/core/models/tickets_test.go @@ -210,8 +210,7 @@ func TestTicketsAssign(t *testing.T) { // and there are new assigned events testsuite.AssertQuery(t, db, `SELECT count(*) FROM tickets_ticketevent WHERE event_type = 'A' AND note = 'please handle these'`).Returns(2) - testsuite.AssertQuery(t, db, `SELECT count(*) FROM notifications_log WHERE log_type = 'ticket:assigned' AND created_by_id = $1`, testdata.Admin.ID).Returns(2) - testsuite.AssertQuery(t, db, `SELECT count(*) FROM notifications_notification WHERE user_id = $1`, testdata.Agent.ID).Returns(2) + testsuite.AssertQuery(t, db, `SELECT count(*) FROM notifications_notification WHERE user_id = $1 AND notification_type = 'tickets:activity'`, testdata.Agent.ID).Returns(1) } func TestTicketsAddNote(t *testing.T) { @@ -374,7 +373,6 @@ func TestReopenTickets(t *testing.T) { func deleteTickets(db *sqlx.DB) { db.MustExec(`DELETE FROM notifications_notification`) - db.MustExec(`DELETE FROM notifications_log`) db.MustExec(`DELETE FROM request_logs_httplog`) db.MustExec(`DELETE FROM tickets_ticketevent`) db.MustExec(`DELETE FROM tickets_ticket`) diff --git a/mailroom_test.dump b/mailroom_test.dump index fa09ffa4f6acc440407a48b5c05189ba025eb601..0b203ddbcf28f0163946155f35ad8a3c8d5a2f3a 100644 GIT binary patch delta 88271 zcmaHU2Y8gl7Iwb2yIBb7z0-TP7iy3qASED((h^WmymTxSg>dZ!39fSViV{�Vzfq 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 delta 86922 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 From 76bdeddedac6fa32a041eb993adcb79acb377357 Mon Sep 17 00:00:00 2001 From: Rowan Seymour Date: Mon, 6 Sep 2021 16:46:15 -0500 Subject: [PATCH 6/6] Generate ticket activity notifications for new ticket notes --- core/models/notifications.go | 2 +- core/models/tickets.go | 5 +++++ core/models/tickets_test.go | 4 +++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/core/models/notifications.go b/core/models/notifications.go index 3491d8786..1e2f27589 100644 --- a/core/models/notifications.go +++ b/core/models/notifications.go @@ -63,7 +63,7 @@ func NotificationsFromTicketEvents(ctx context.Context, db Queryer, oa *OrgAsset } case TicketEventTypeNoteAdded: // notify ticket assignee if they didn't add note themselves - if ticket.AssigneeID() != evt.CreatedByID() { + if ticket.AssigneeID() != NilUserID && ticket.AssigneeID() != evt.CreatedByID() { notifyTicketsActivity[ticket.AssigneeID()] = true } } diff --git a/core/models/tickets.go b/core/models/tickets.go index e6f01dcc3..9105f5404 100644 --- a/core/models/tickets.go +++ b/core/models/tickets.go @@ -457,6 +457,11 @@ func TicketsAddNote(ctx context.Context, db Queryer, oa *OrgAssets, userID UserI return nil, errors.Wrapf(err, "error inserting ticket events") } + err = NotificationsFromTicketEvents(ctx, db, oa, eventsByTicket) + if err != nil { + return nil, errors.Wrap(err, "error inserting notifications") + } + return eventsByTicket, nil } diff --git a/core/models/tickets_test.go b/core/models/tickets_test.go index 17da6cb33..01523cb70 100644 --- a/core/models/tickets_test.go +++ b/core/models/tickets_test.go @@ -224,7 +224,7 @@ func TestTicketsAddNote(t *testing.T) { ticket1 := testdata.InsertClosedTicket(db, testdata.Org1, testdata.Cathy, testdata.Mailgun, testdata.DefaultTopic, "Problem", "Where my shoes", "123", nil) modelTicket1 := ticket1.Load(db) - ticket2 := testdata.InsertOpenTicket(db, testdata.Org1, testdata.Cathy, testdata.Zendesk, testdata.DefaultTopic, "Old Problem", "Where my pants", "234", nil) + ticket2 := testdata.InsertOpenTicket(db, testdata.Org1, testdata.Cathy, testdata.Zendesk, testdata.DefaultTopic, "Old Problem", "Where my pants", "234", testdata.Agent) modelTicket2 := ticket2.Load(db) testdata.InsertOpenTicket(db, testdata.Org1, testdata.Cathy, testdata.Mailgun, testdata.DefaultTopic, "Ignore", "", "", nil) @@ -237,6 +237,8 @@ func TestTicketsAddNote(t *testing.T) { // check there are new note events testsuite.AssertQuery(t, db, `SELECT count(*) FROM tickets_ticketevent WHERE event_type = 'N' AND note = 'spam'`).Returns(2) + + testsuite.AssertQuery(t, db, `SELECT count(*) FROM notifications_notification WHERE user_id = $1 AND notification_type = 'tickets:activity'`, testdata.Agent.ID).Returns(1) } func TestTicketsChangeTopic(t *testing.T) {