@memberjunction/communication-engine 2.109.0 → 2.110.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Engine.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- import { BaseCommunicationProvider, CommunicationEngineBase, Message, MessageRecipient, MessageResult } from "@memberjunction/communication-types";
1
+ import { BaseCommunicationProvider, CommunicationEngineBase, CreateDraftResult, Message, MessageRecipient, MessageResult } from "@memberjunction/communication-types";
2
2
  import { CommunicationRunEntity } from "@memberjunction/core-entities";
3
+ import { UserInfo } from "@memberjunction/core";
3
4
  /**
4
5
  * Base class for communications. This class can be sub-classed if desired if you would like to modify the logic across ALL actions. To do so, sub-class this class and use the
5
6
  * @RegisterClass decorator from the @memberjunction/global package to register your sub-class with the ClassFactory. This will cause your sub-class to be used instead of this base class when the Metadata object insantiates the ActionEngine.
@@ -24,5 +25,13 @@ export declare class CommunicationEngine extends CommunicationEngineBase {
24
25
  * Sends a single message using the specified provider. The provider must be one of the providers that are configured in the system.
25
26
  */
26
27
  SendSingleMessage(providerName: string, providerMessageTypeName: string, message: Message, run?: CommunicationRunEntity, previewOnly?: boolean): Promise<MessageResult>;
28
+ /**
29
+ * Creates a draft message using the specified provider
30
+ * @param message - The message to save as a draft
31
+ * @param providerName - Name of the provider to use
32
+ * @param contextUser - Optional user context for server-side operations
33
+ * @returns Promise<CreateDraftResult> - Result containing draft ID if successful
34
+ */
35
+ CreateDraft(message: Message, providerName: string, contextUser?: UserInfo): Promise<CreateDraftResult>;
27
36
  }
28
37
  //# sourceMappingURL=Engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../src/Engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACnJ,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAKvE;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,uBAAuB;IAC5D,WAAkB,QAAQ,IAAI,mBAAmB,CAEhD;IAEA;;;;OAIG;IACI,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,yBAAyB;IAsBnE;;;;;;OAMG;IACU,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,EAAE,WAAW,GAAE,OAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAoB1L;;OAEG;IACU,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,sBAAsB,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;CAsDxL"}
1
+ {"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../src/Engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACtK,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAuB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKrE;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,uBAAuB;IAC5D,WAAkB,QAAQ,IAAI,mBAAmB,CAEhD;IAEA;;;;OAIG;IACI,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,yBAAyB;IAsBnE;;;;;;OAMG;IACU,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,EAAE,WAAW,GAAE,OAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAoB1L;;OAEG;IACU,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,sBAAsB,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAuDpL;;;;;;OAMG;IACU,WAAW,CACpB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,QAAQ,GACvB,OAAO,CAAC,iBAAiB,CAAC;CA2DjC"}
package/dist/Engine.js CHANGED
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CommunicationEngine = void 0;
4
4
  const communication_types_1 = require("@memberjunction/communication-types");
5
+ const core_1 = require("@memberjunction/core");
5
6
  const global_1 = require("@memberjunction/global");
6
7
  const BaseProvider_1 = require("./BaseProvider");
7
8
  /**
@@ -111,6 +112,67 @@ class CommunicationEngine extends communication_types_1.CommunicationEngineBase
111
112
  throw new Error(`Failed to process message: ${processResult.Message}`);
112
113
  }
113
114
  }
115
+ /**
116
+ * Creates a draft message using the specified provider
117
+ * @param message - The message to save as a draft
118
+ * @param providerName - Name of the provider to use
119
+ * @param contextUser - Optional user context for server-side operations
120
+ * @returns Promise<CreateDraftResult> - Result containing draft ID if successful
121
+ */
122
+ async CreateDraft(message, providerName, contextUser) {
123
+ try {
124
+ if (!this.Loaded) {
125
+ return {
126
+ Success: false,
127
+ ErrorMessage: 'Metadata not loaded. Call Config() before creating drafts.'
128
+ };
129
+ }
130
+ // Get provider instance
131
+ const provider = this.GetProvider(providerName);
132
+ if (!provider) {
133
+ return {
134
+ Success: false,
135
+ ErrorMessage: `Provider ${providerName} not found`
136
+ };
137
+ }
138
+ // Check if provider supports drafts
139
+ const providerEntity = this.Providers.find(p => p.Name === providerName);
140
+ if (!providerEntity?.SupportsDrafts) {
141
+ return {
142
+ Success: false,
143
+ ErrorMessage: `Provider ${providerName} does not support creating drafts`
144
+ };
145
+ }
146
+ // Process message (render templates)
147
+ const processedMessage = new BaseProvider_1.ProcessedMessageServer(message);
148
+ const processResult = await processedMessage.Process(false, contextUser || this.ContextUser);
149
+ if (!processResult.Success) {
150
+ return {
151
+ Success: false,
152
+ ErrorMessage: `Failed to process message: ${processResult.Message}`
153
+ };
154
+ }
155
+ // Create draft via provider
156
+ const result = await provider.CreateDraft({
157
+ Message: processedMessage,
158
+ ContextData: message.ContextData
159
+ });
160
+ if (result.Success) {
161
+ (0, core_1.LogStatus)(`Draft created successfully via ${providerName}. Draft ID: ${result.DraftID}`);
162
+ }
163
+ else {
164
+ (0, core_1.LogError)(`Failed to create draft via ${providerName}`, undefined, result.ErrorMessage);
165
+ }
166
+ return result;
167
+ }
168
+ catch (error) {
169
+ (0, core_1.LogError)('Error creating draft', undefined, error);
170
+ return {
171
+ Success: false,
172
+ ErrorMessage: error.message || 'Error creating draft'
173
+ };
174
+ }
175
+ }
114
176
  }
115
177
  exports.CommunicationEngine = CommunicationEngine;
116
178
  //# sourceMappingURL=Engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Engine.js","sourceRoot":"","sources":["../src/Engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Engine.js","sourceRoot":"","sources":["../src/Engine.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/communication-engine",
3
- "version": "2.109.0",
3
+ "version": "2.110.0",
4
4
  "description": "MemberJunction: Core Communication Framework Library",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -21,9 +21,9 @@
21
21
  "dependencies": {
22
22
  "@memberjunction/global": "2.100.3",
23
23
  "@memberjunction/core": "2.100.3",
24
- "@memberjunction/templates": "2.109.0",
25
- "@memberjunction/core-entities": "2.109.0",
26
- "@memberjunction/communication-types": "2.109.0",
24
+ "@memberjunction/templates": "2.110.0",
25
+ "@memberjunction/core-entities": "2.110.0",
26
+ "@memberjunction/communication-types": "2.110.0",
27
27
  "rxjs": "^7.8.1"
28
28
  }
29
29
  }
package/readme.md CHANGED
@@ -161,6 +161,48 @@ if (result.Success) {
161
161
  }
162
162
  ```
163
163
 
164
+ ### Creating Draft Messages
165
+
166
+ Create draft messages that can be edited and sent later (only supported by providers with mailbox access):
167
+
168
+ ```typescript
169
+ import { CommunicationEngine } from '@memberjunction/communication-engine';
170
+ import { Message } from '@memberjunction/communication-types';
171
+
172
+ // Get the engine instance
173
+ const engine = CommunicationEngine.Instance;
174
+ await engine.Config();
175
+
176
+ // Create a message
177
+ const message = new Message();
178
+ message.To = 'recipient@example.com';
179
+ message.From = 'sender@example.com';
180
+ message.Subject = 'Draft Message';
181
+ message.Body = 'This is a draft message that can be edited later';
182
+
183
+ // Create draft using Gmail (or 'Microsoft Graph')
184
+ const result = await engine.CreateDraft(
185
+ message,
186
+ 'Gmail',
187
+ contextUser
188
+ );
189
+
190
+ if (result.Success) {
191
+ console.log(`Draft created with ID: ${result.DraftID}`);
192
+ // Draft can now be edited or sent through the provider's native interface
193
+ } else {
194
+ console.error(`Failed to create draft: ${result.ErrorMessage}`);
195
+ }
196
+ ```
197
+
198
+ **Providers Supporting Drafts**:
199
+ - **Gmail**: Drafts created in Gmail drafts folder
200
+ - **Microsoft Graph**: Drafts created in Outlook/Exchange drafts folder
201
+
202
+ **Providers NOT Supporting Drafts**:
203
+ - **SendGrid**: Service-based email, no mailbox
204
+ - **Twilio**: SMS/messaging service, no draft concept
205
+
164
206
  ### Working with Providers
165
207
 
166
208
  ```typescript
@@ -208,6 +250,21 @@ Parameters:
208
250
  ##### `SendMessages(providerName: string, providerMessageTypeName: string, message: Message, recipients: MessageRecipient[], previewOnly?: boolean): Promise<MessageResult[]>`
209
251
  Sends messages to multiple recipients in a single run.
210
252
 
253
+ ##### `CreateDraft(message: Message, providerName: string, contextUser?: UserInfo): Promise<CreateDraftResult>`
254
+ Creates a draft message using the specified provider.
255
+
256
+ Parameters:
257
+ - `message`: The message to save as a draft
258
+ - `providerName`: Name of the provider (must support drafts, e.g., 'Gmail', 'Microsoft Graph')
259
+ - `contextUser`: Optional user context for server-side operations
260
+
261
+ Returns a `CreateDraftResult` with:
262
+ - `Success`: Whether the draft was created successfully
263
+ - `DraftID`: The provider-specific draft identifier (if successful)
264
+ - `ErrorMessage`: Error details (if failed)
265
+
266
+ **Note**: Only providers with mailbox access support drafts (Gmail, MS Graph). Service-based providers (SendGrid, Twilio) will return an error.
267
+
211
268
  ### ProcessedMessageServer
212
269
 
213
270
  #### Methods