buildApprovedEvent fires after ApproveAndSend hands the message to SES. sent carries the post-approve message row (now status=sent).
( agent *identity.AgentIdentity, sent *identity.Message, reviewerUserID string, )
| 103 | // buildApprovedEvent fires after ApproveAndSend hands the message to |
| 104 | // SES. sent carries the post-approve message row (now status=sent). |
| 105 | func (a *API) buildApprovedEvent( |
| 106 | agent *identity.AgentIdentity, |
| 107 | sent *identity.Message, |
| 108 | reviewerUserID string, |
| 109 | ) webhookpub.Event { |
| 110 | data := map[string]interface{}{ |
| 111 | "message_id": sent.ID, |
| 112 | "direction": "outbound", |
| 113 | "provider_message_id": sent.ProviderMessageID, |
| 114 | "method": sent.Method, |
| 115 | "from": agent.EmailAddress(), |
| 116 | "to": sent.ToRecipients, |
| 117 | "subject": sent.Subject, |
| 118 | "type": sent.Type, |
| 119 | "edited": sent.Edited, |
| 120 | "reviewed_by_user_id": reviewerUserID, |
| 121 | } |
| 122 | return webhookpub.Event{ |
| 123 | ID: generateEventIDForAgent(), |
| 124 | Type: webhookpub.EventEmailReviewApproved, |
| 125 | CreatedAt: time.Now().UTC(), |
| 126 | UserID: agent.UserID, |
| 127 | AgentID: agent.ID, |
| 128 | MessageID: sent.ID, |
| 129 | Data: data, |
| 130 | } |
| 131 | } |
| 132 | |
| 133 | // buildRejectedEvent fires when a reviewer rejects a pending outbound. |
| 134 | // userID is the reviewer (a separate identity from the agent's owner |