@antelopejs/dms-mailing 0.3.0 → 0.3.2
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/README.md +3 -1
- package/dist/antelope-modules.d.ts +1 -1
- package/dist/antelope-modules.js +1 -1
- package/dist/crons/retention.js +1 -1
- package/dist/crons/retention.js.map +1 -1
- package/dist/data/templates-table.d.ts +1 -1
- package/dist/data/templates-table.js +21 -0
- package/dist/data/templates-table.js.map +1 -1
- package/dist/db/models/sends.model.d.ts +2 -1
- package/dist/db/models/sends.model.js +1 -0
- package/dist/db/models/sends.model.js.map +1 -1
- package/dist/db/models/settings.model.d.ts +1 -1
- package/dist/db/models/settings.model.js +4 -1
- package/dist/db/models/settings.model.js.map +1 -1
- package/dist/db/tables/send-events.table.js +0 -1
- package/dist/db/tables/send-events.table.js.map +1 -1
- package/dist/db/tables/sends.table.js +0 -1
- package/dist/db/tables/sends.table.js.map +1 -1
- package/dist/db/tables/templates.table.js +0 -1
- package/dist/db/tables/templates.table.js.map +1 -1
- package/dist/hooks/tenant-export.js +1 -1
- package/dist/hooks/tenant-export.js.map +1 -1
- package/dist/routes/events.js +2 -2
- package/dist/routes/events.js.map +1 -1
- package/dist/routes/period.js +7 -4
- package/dist/routes/period.js.map +1 -1
- package/dist/services/attention.d.ts +3 -3
- package/dist/services/events.d.ts +1 -1
- package/dist/services/events.js.map +1 -1
- package/dist/services/metrics.d.ts +4 -4
- package/dist/services/settings.d.ts +1 -0
- package/dist/services/settings.js +25 -8
- package/dist/services/settings.js.map +1 -1
- package/dist/test/integration/events.test.js +11 -0
- package/dist/test/integration/events.test.js.map +1 -1
- package/dist/test/integration/sends.test.js +53 -0
- package/dist/test/integration/sends.test.js.map +1 -1
- package/dist/test/integration/settings.test.js +92 -0
- package/dist/test/integration/settings.test.js.map +1 -1
- package/dist/test/integration/templates.test.js +68 -2
- package/dist/test/integration/templates.test.js.map +1 -1
- package/dist/test/unit/period.test.js +17 -0
- package/dist/test/unit/period.test.js.map +1 -1
- package/dist/test/unit/webhook-secret.test.js +1 -0
- package/dist/test/unit/webhook-secret.test.js.map +1 -1
- package/frontend-vue/i18n/locales/mailing-en-GB.json +1 -0
- package/frontend-vue/i18n/locales/mailing-fr-FR.json +1 -0
- package/frontend-vue/package.json +1 -1
- package/frontend-vue/pnpm-lock.yaml +2 -28
- package/package.json +2 -2
- package/src/antelope-modules.ts +1 -1
- package/src/crons/retention.ts +3 -1
- package/src/data/templates-table.ts +46 -0
- package/src/db/models/sends.model.ts +6 -2
- package/src/db/models/settings.model.ts +7 -1
- package/src/db/tables/send-events.table.ts +0 -1
- package/src/db/tables/sends.table.ts +0 -1
- package/src/db/tables/templates.table.ts +0 -1
- package/src/hooks/tenant-export.ts +1 -1
- package/src/routes/events.ts +3 -3
- package/src/routes/metrics.ts +3 -3
- package/src/routes/period.ts +9 -4
- package/src/services/attention.ts +5 -5
- package/src/services/events.ts +4 -4
- package/src/services/metrics.ts +9 -9
- package/src/services/settings.ts +36 -7
- package/src/test/integration/events.test.ts +24 -1
- package/src/test/integration/sends.test.ts +33 -0
- package/src/test/integration/settings.test.ts +78 -0
- package/src/test/integration/templates.test.ts +49 -6
- package/src/test/unit/period.test.ts +27 -0
- package/src/test/unit/webhook-secret.test.ts +1 -0
package/README.md
CHANGED
|
@@ -66,7 +66,9 @@ row per recipient lands in the send log, and the returned
|
|
|
66
66
|
|
|
67
67
|
Provider events are posted to `POST /api/mailing/events/:provider`, guarded by
|
|
68
68
|
the `x-mailing-webhook-secret` header (the secret lives in the mailing
|
|
69
|
-
settings, per tenant).
|
|
69
|
+
settings, per tenant). The endpoint never creates those settings: until a
|
|
70
|
+
tenant's settings exist (any mailing page or send creates them), its events are
|
|
71
|
+
refused with `403`.
|
|
70
72
|
|
|
71
73
|
```sh
|
|
72
74
|
curl -X POST http://localhost:5010/api/mailing/events/brevo \
|
package/dist/antelope-modules.js
CHANGED
package/dist/crons/retention.js
CHANGED
|
@@ -75,7 +75,7 @@ async function purgeOrphanEvents(tenantId, pageSize = exports.RETENTION_LIMITS.p
|
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
async function purgeTenant(tenantId, now) {
|
|
78
|
-
const settings = await (0, interface_database_decorators_1.GetModel)(db_2.SettingsModel, tenantId).getSingleton();
|
|
78
|
+
const settings = await (0, interface_database_decorators_1.GetModel)(db_2.SettingsModel, tenantId).getSingleton(tenantId);
|
|
79
79
|
if (!settings || settings.logRetentionDays < MIN_RETENTION_DAYS)
|
|
80
80
|
return 0;
|
|
81
81
|
const limit = retentionLimit(settings.logRetentionDays, now);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retention.js","sourceRoot":"","sources":["../../src/crons/retention.ts"],"names":[],"mappings":";;;;;;AAgCA,wCAEC;AAED,oCAcC;AAGD,8BASC;AAcD,8CAeC;
|
|
1
|
+
{"version":3,"file":"retention.js","sourceRoot":"","sources":["../../src/crons/retention.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,12 @@ import { type DataControllerCallback } from "@antelopejs/interface-data-api";
|
|
|
2
2
|
import { MailingTemplate, TemplateModel } from "../db";
|
|
3
3
|
declare const TemplatesTableAPI_base: import("@antelopejs/interface-core/decorators").Class<import("@antelopejs/interface-data-api").ExtractDefCallbacks<{
|
|
4
4
|
new: DataControllerCallback;
|
|
5
|
+
edit: DataControllerCallback;
|
|
5
6
|
get: DataControllerCallback;
|
|
6
7
|
list: DataControllerCallback;
|
|
7
8
|
select: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any>;
|
|
8
9
|
count: DataControllerCallback;
|
|
9
10
|
countBatch: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any>;
|
|
10
|
-
edit: DataControllerCallback;
|
|
11
11
|
delete: DataControllerCallback;
|
|
12
12
|
archive: DataControllerCallback;
|
|
13
13
|
restore: DataControllerCallback;
|
|
@@ -28,6 +28,7 @@ const templates_1 = require("../services/templates");
|
|
|
28
28
|
const templates_schema_1 = require("../validation/templates.schema");
|
|
29
29
|
const body_1 = require("./body");
|
|
30
30
|
const DUPLICATE_SLUG = "$dms_mailing.errors.duplicate_slug";
|
|
31
|
+
const SLUG_IMMUTABLE = "$dms_mailing.errors.slug_immutable";
|
|
31
32
|
const SOURCE_NOT_FOUND = "$dms_mailing.errors.template_not_found";
|
|
32
33
|
const CREATE_ONLY = { edit: types_1.ReadonlyBehaviorType.disabled };
|
|
33
34
|
const NEVER_ON_CREATE = { new: types_1.ReadonlyBehaviorType.hidden };
|
|
@@ -61,9 +62,29 @@ function withSeeding(base) {
|
|
|
61
62
|
},
|
|
62
63
|
};
|
|
63
64
|
}
|
|
65
|
+
async function withStoredSlug(tenantId, templateId, body) {
|
|
66
|
+
const stored = await (0, interface_database_decorators_1.GetModel)(db_1.TemplateModel, tenantId).get(templateId);
|
|
67
|
+
if (!stored)
|
|
68
|
+
return body;
|
|
69
|
+
const edit = (0, body_1.parseBody)(body);
|
|
70
|
+
if (edit.slug !== undefined && edit.slug !== stored.slug) {
|
|
71
|
+
throw new interface_api_1.HTTPResult(constants_1.HTTP_CONFLICT, SLUG_IMMUTABLE);
|
|
72
|
+
}
|
|
73
|
+
return JSON.stringify({ ...edit, slug: stored.slug });
|
|
74
|
+
}
|
|
75
|
+
function withFixedSlug(base) {
|
|
76
|
+
return {
|
|
77
|
+
...base,
|
|
78
|
+
func: async function (ctx, params, body, ...rest) {
|
|
79
|
+
const guarded = await withStoredSlug((0, request_tenant_1.getRequestTenantId)(ctx), params.id, body);
|
|
80
|
+
return base.func.call(this, ctx, params, guarded, ...rest);
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
}
|
|
64
84
|
const templateRoutes = {
|
|
65
85
|
...base_1.TableViewRoutes.All,
|
|
66
86
|
new: withSeeding(base_1.TableViewRoutes.New),
|
|
87
|
+
edit: withFixedSlug(base_1.TableViewRoutes.Edit),
|
|
67
88
|
};
|
|
68
89
|
let TemplatesTableAPI = class TemplatesTableAPI extends (0, interface_data_api_1.DataController)(db_1.MailingTemplate, templateRoutes, (0, interface_api_1.Controller)(`${constants_1.TABLES_BASE_PATH}/templates`)) {
|
|
69
90
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates-table.js","sourceRoot":"","sources":["../../src/data/templates-table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6DAImC;AACnC,uEAIwC;AACxC,sEAOiD;AACjD,6FAAqE;AACrE,6DAA6E;AAC7E,6EAA8E;AAC9E,uFAAkF;AAClF,yDAMwC;AACxC,2FAA2F;AAC3F,gEAA4E;AAC5E,4CAA+E;AAC/E,8CAAqD;AACrD,8BAAuD;AACvD,mDAAmD;AACnD,qDAAwE;AAExE,qEAAsE;AACtE,iCAAmC;AAEnC,MAAM,cAAc,GAAG,oCAAoC,CAAC;AAC5D,MAAM,gBAAgB,GAAG,wCAAwC,CAAC;AAClE,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,4BAAoB,CAAC,QAAQ,EAAE,CAAC;AAG5D,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,4BAAoB,CAAC,MAAM,EAAE,CAAC;AAE7D,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACjE,KAAK;IACL,KAAK,EAAE,iCAAiC,KAAK,EAAE;CAChD,CAAC,CAAC,CAAC;AAGJ,KAAK,UAAU,aAAa,CAC1B,QAAgB,EAChB,gBAAoC;IAEpC,IAAI,CAAC,gBAAgB;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,IAAA,wCAAQ,EAAC,kBAAa,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC7E,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,0BAAU,CAAC,0BAAc,EAAE,gBAAgB,CAAC,CAAC;IACpE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,IAA4B;IAC/C,OAAO;QACL,GAAG,IAAI;QACP,IAAI,EAAE,KAAK,WAET,GAAmB,EACnB,MAAe,EACf,IAAqB,EACrB,GAAG,IAAe;YAElB,MAAM,IAAI,GAAG,uCAAoB,CAAC,KAAK,CAAC,IAAA,gBAAS,EAAC,IAAI,CAAC,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,IAAA,mCAAkB,EAAC,GAAG,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAM,IAAA,wCAAQ,EAAC,kBAAa,EAAE,QAAQ,CAAC,CAAC,SAAS,CAChE,IAAI,CAAC,IAAI,CACV,CAAC;YACF,IAAI,QAAQ;gBAAE,MAAM,IAAI,0BAAU,CAAC,yBAAa,EAAE,cAAc,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpE,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAC/B,IAAI,EACJ,GAAG,EACH,MAAM,EACN,IAAI,EACJ,GAAG,IAAI,CACR,CAAa,CAAC;YACf,MAAM,IAAI,GAAG,MAAM,IAAA,kCAAyB,EAAC,GAAG,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,MAAM,IAAA,sBAAW,EAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,IAAA,8BAAkB,EACtB,QAAQ,EACR,GAAG,CAAC,CAAC,CAAW,EAChB,QAAQ,CAAC,cAAc,EACvB,IAAA,uBAAW,EAAC,IAAI,CAAC,EACjB,MAAM,CACP,CAAC;YACF,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG;IACrB,GAAG,sBAAe,CAAC,GAAG;IACtB,GAAG,EAAE,WAAW,CAAC,sBAAe,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"templates-table.js","sourceRoot":"","sources":["../../src/data/templates-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { MailingSend } from "../tables";
|
|
2
2
|
type NewSend = Omit<MailingSend, "_id" | "createdAt" | "revision" | "isRetiring" | "lastActivityAt">;
|
|
3
|
+
export type SendSummary = Omit<MailingSend, "json_variables">;
|
|
3
4
|
type SendActivity = Pick<MailingSend, "status" | "opens" | "clicks" | "lastEventAt" | "provider">;
|
|
4
5
|
declare const SendModel_base: {
|
|
5
6
|
new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
|
|
@@ -23,7 +24,7 @@ export declare class SendModel extends SendModel_base {
|
|
|
23
24
|
insertSend(send: NewSend): Promise<string[]>;
|
|
24
25
|
getSnapshot(sendId: string): Promise<MailingSend | undefined>;
|
|
25
26
|
getByProviderMessageId(messageId: string): Promise<MailingSend | undefined>;
|
|
26
|
-
listBetween(from: Date, to: Date): Promise<
|
|
27
|
+
listBetween(from: Date, to: Date): Promise<SendSummary[]>;
|
|
27
28
|
listOlderThan(limit: Date, pageSize: number): Promise<MailingSend[]>;
|
|
28
29
|
retire(sendId: string, limit: Date): Promise<boolean>;
|
|
29
30
|
deleteRetired(sendId: string): Promise<number>;
|
|
@@ -50,6 +50,7 @@ class SendModel extends (0, interface_database_decorators_1.BasicDataModel)(tabl
|
|
|
50
50
|
return this.table
|
|
51
51
|
.filter((row) => row.key("createdAt").ge(from))
|
|
52
52
|
.filter((row) => row.key("createdAt").lt(to))
|
|
53
|
+
.without("json_variables")
|
|
53
54
|
.run();
|
|
54
55
|
}
|
|
55
56
|
listOlderThan(limit, pageSize) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sends.model.js","sourceRoot":"","sources":["../../../src/db/models/sends.model.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,6FAA2E;AAK3E,sCAAkE;AAElE,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,UAAU,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"sends.model.js","sourceRoot":"","sources":["../../../src/db/models/sends.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,6 @@ declare const SettingsModel_base: {
|
|
|
18
18
|
validate(obj: unknown, options?: import("@antelopejs/interface-database-decorators").ValidateInputOptions): import("@antelopejs/interface-database-decorators").ValidationResult;
|
|
19
19
|
};
|
|
20
20
|
export declare class SettingsModel extends SettingsModel_base {
|
|
21
|
-
getSingleton(): Promise<MailingSettings | undefined>;
|
|
21
|
+
getSingleton(tenantId: string): Promise<MailingSettings | undefined>;
|
|
22
22
|
}
|
|
23
23
|
export {};
|
|
@@ -4,7 +4,10 @@ exports.SettingsModel = void 0;
|
|
|
4
4
|
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
5
5
|
const tables_1 = require("../tables");
|
|
6
6
|
class SettingsModel extends (0, interface_database_decorators_1.BasicDataModel)(tables_1.MailingSettings, tables_1.MAILING_SETTINGS_TABLE_NAME) {
|
|
7
|
-
async getSingleton() {
|
|
7
|
+
async getSingleton(tenantId) {
|
|
8
|
+
const keyed = await this.get(tenantId);
|
|
9
|
+
if (keyed)
|
|
10
|
+
return keyed;
|
|
8
11
|
const rows = await this.getAll();
|
|
9
12
|
return rows[0];
|
|
10
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.model.js","sourceRoot":"","sources":["../../../src/db/models/settings.model.ts"],"names":[],"mappings":";;;AAAA,6FAA2E;AAC3E,sCAAyE;AAEzE,MAAa,aAAc,SAAQ,IAAA,8CAAc,EAC/C,wBAAe,EACf,oCAA2B,CAC5B;
|
|
1
|
+
{"version":3,"file":"settings.model.js","sourceRoot":"","sources":["../../../src/db/models/settings.model.ts"],"names":[],"mappings":";;;AAAA,6FAA2E;AAC3E,sCAAyE;AAEzE,MAAa,aAAc,SAAQ,IAAA,8CAAc,EAC/C,wBAAe,EACf,oCAA2B,CAC5B;IAKC,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;CACF;AAdD,sCAcC"}
|
|
@@ -30,7 +30,6 @@ __decorate([
|
|
|
30
30
|
__metadata("design:type", String)
|
|
31
31
|
], MailingSendEvent.prototype, "type", void 0);
|
|
32
32
|
__decorate([
|
|
33
|
-
(0, interface_database_decorators_1.Index)(),
|
|
34
33
|
(0, interface_database_decorators_1.Field)("date"),
|
|
35
34
|
__metadata("design:type", Date)
|
|
36
35
|
], MailingSendEvent.prototype, "at", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-events.table.js","sourceRoot":"","sources":["../../../src/db/tables/send-events.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAKmD;AACnD,mEAAyE;AAG5D,QAAA,8BAA8B,GAAG,qBAAqB,CAAC;AAG7D,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,qCAAK;
|
|
1
|
+
{"version":3,"file":"send-events.table.js","sourceRoot":"","sources":["../../../src/db/tables/send-events.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAKmD;AACnD,mEAAyE;AAG5D,QAAA,8BAA8B,GAAG,qBAAqB,CAAC;AAG7D,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,qCAAK;CAiB1C,CAAA;AAjBY,4CAAgB;AAEnB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;6CACI;AAIZ;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;gDACO;AAGf;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;8CACY;AAGpB;IADP,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACF,IAAI;4CAAC;AAIT;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;sDACa;2BAhBlB,gBAAgB;IAD5B,IAAA,6CAAa,EAAC,sCAA8B,EAAE,8BAAkB,CAAC;GACrD,gBAAgB,CAiB5B"}
|
|
@@ -27,7 +27,6 @@ __decorate([
|
|
|
27
27
|
__metadata("design:type", Date)
|
|
28
28
|
], MailingSend.prototype, "createdAt", void 0);
|
|
29
29
|
__decorate([
|
|
30
|
-
(0, interface_database_decorators_1.Index)(),
|
|
31
30
|
(0, interface_database_decorators_1.Field)("string"),
|
|
32
31
|
__metadata("design:type", String)
|
|
33
32
|
], MailingSend.prototype, "templateId", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sends.table.js","sourceRoot":"","sources":["../../../src/db/tables/sends.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAMmD;AACnD,mEAAyE;AAG5D,QAAA,wBAAwB,GAAG,eAAe,CAAC;AAGjD,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,qCAAK;
|
|
1
|
+
{"version":3,"file":"sends.table.js","sourceRoot":"","sources":["../../../src/db/tables/sends.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAMmD;AACnD,mEAAyE;AAG5D,QAAA,wBAAwB,GAAG,eAAe,CAAC;AAGjD,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,qCAAK;CAsErC,CAAA;AAtEY,kCAAW;AAEd;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;wCACI;AAKZ;IAHP,IAAA,qCAAK,GAAE;IACP,IAAA,4CAAY,GAAE;IACd,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACK,IAAI;8CAAC;AAGhB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;+CACW;AAInB;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;iDACa;AAGrB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;2CACO;AAIf;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;mDACe;AAGvB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;kDACe;AAIvB;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;2CACW;AAGnB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;6CACU;AAIlB;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;sDACmB;AAG3B;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;8CACU;AAGlB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;0CACO;AAGf;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;2CACQ;AAIhB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;mDACe;AAGvB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;0CACM;AAGd;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;2CACO;AAGf;IADP,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACQ,IAAI;gDAAC;AAGnB;IADP,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACW,IAAI;mDAAC;AAGtB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;6CACS;AAGjB;IADP,IAAA,qCAAK,EAAC,SAAS,CAAC;;+CACY;AAGrB;IADP,IAAA,qCAAK,EAAC,SAAS,CAAC;;2CACO;sBArEb,WAAW;IADvB,IAAA,6CAAa,EAAC,gCAAwB,EAAE,8BAAkB,CAAC;GAC/C,WAAW,CAsEvB"}
|
|
@@ -21,7 +21,6 @@ __decorate([
|
|
|
21
21
|
__metadata("design:type", String)
|
|
22
22
|
], MailingTemplate.prototype, "_id", void 0);
|
|
23
23
|
__decorate([
|
|
24
|
-
(0, interface_database_decorators_1.Index)(),
|
|
25
24
|
(0, interface_database_decorators_1.CreationTime)(),
|
|
26
25
|
(0, interface_database_decorators_1.Field)("date"),
|
|
27
26
|
__metadata("design:type", Date)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.table.js","sourceRoot":"","sources":["../../../src/db/tables/templates.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAOmD;AACnD,mEAAyE;AAG5D,QAAA,4BAA4B,GAAG,mBAAmB,CAAC;AAGzD,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,qCAAK;
|
|
1
|
+
{"version":3,"file":"templates.table.js","sourceRoot":"","sources":["../../../src/db/tables/templates.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAOmD;AACnD,mEAAyE;AAG5D,QAAA,4BAA4B,GAAG,mBAAmB,CAAC;AAGzD,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,qCAAK;CAsDzC,CAAA;AAtDY,0CAAe;AAElB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;4CACI;AAIZ;IAFP,IAAA,4CAAY,GAAE;IACd,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACK,IAAI;kDAAC;AAKhB;IAHP,IAAA,qCAAK,GAAE;IACP,IAAA,0CAAU,GAAE;IACZ,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACK,IAAI;kDAAC;AAIhB;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;6CACK;AAGb;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;6CACK;AAIb;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;iDACS;AAIjB;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;+CACe;AAIvB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;qDACa;AAIrB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;uDACe;AAIvB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;uDACe;AASvB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;gDACQ;AAGhB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;kDACU;AAGlB;IADP,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACQ,IAAI;oDAAC;0BArDhB,eAAe;IAD3B,IAAA,6CAAa,EAAC,oCAA4B,EAAE,8BAAkB,CAAC;GACnD,eAAe,CAsD3B"}
|
|
@@ -36,7 +36,7 @@ async function* jsonArrayChunks(load, signal, pageSize = exports.TENANT_EXPORT_P
|
|
|
36
36
|
yield ARRAY_CLOSE;
|
|
37
37
|
}
|
|
38
38
|
async function exportedSettings(tenantId) {
|
|
39
|
-
const row = await (0, interface_database_decorators_1.GetModel)(db_1.SettingsModel, tenantId).getSingleton();
|
|
39
|
+
const row = await (0, interface_database_decorators_1.GetModel)(db_1.SettingsModel, tenantId).getSingleton(tenantId);
|
|
40
40
|
if (!row)
|
|
41
41
|
return null;
|
|
42
42
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-export.js","sourceRoot":"","sources":["../../src/hooks/tenant-export.ts"],"names":[],"mappings":";;;AA0CA,0CAmBC;AAgCD,kDASC;AAkBD,oDAEC;AAED,wDAEC;AA9HD,6CAAuC;AAEvC,6FAAqE;AACrE,2DAMyC;AACzC,4CAAyC;AACzC,8BAAqD;AAoBxC,QAAA,uBAAuB,GAAG,GAAG,CAAC;AAE3C,MAAM,eAAe,GAAG,gBAAgB,CAAC;AACzC,MAAM,cAAc,GAAG,eAAe,CAAC;AAEvC,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,YAAY,GAAG,CAAC,CAAC;AAEhB,KAAK,SAAS,CAAC,CAAC,eAAe,CACpC,IAAyB,EACzB,MAAmB,EACnB,WAAmB,+BAAuB;IAE1C,MAAM,UAAU,CAAC;IACjB,IAAI,MAAM,GAAG,YAAY,CAAC;IAC1B,IAAI,SAAS,GAAG,YAAY,CAAC;IAC7B,SAAS,CAAC;QACR,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3C,SAAS,GAAG,aAAa,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ;YAAE,MAAM;QAClC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;IACxB,CAAC;IACD,MAAM,WAAW,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,QAAgB;IAEhB,MAAM,GAAG,GAAG,MAAM,IAAA,wCAAQ,EAAC,kBAAa,EAAE,QAAQ,CAAC,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"tenant-export.js","sourceRoot":"","sources":["../../src/hooks/tenant-export.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/events.js
CHANGED
|
@@ -34,8 +34,8 @@ class MailingEventsController extends (0, interface_api_1.Controller)(`${constan
|
|
|
34
34
|
async receive(provider, secret, body) {
|
|
35
35
|
const event = (0, interface_api_util_1.assertValidation)(body, (value) => eventSchema.parse(value));
|
|
36
36
|
const tenantId = event.tenantId ?? (0, request_tenant_1.getRequestTenantId)(this.ctx);
|
|
37
|
-
const settings = await (0, settings_1.
|
|
38
|
-
(0, interface_api_util_1.assert)((0, events_1.webhookSecretMatches)(secret, settings
|
|
37
|
+
const settings = await (0, settings_1.findSettings)(tenantId);
|
|
38
|
+
(0, interface_api_util_1.assert)((0, events_1.webhookSecretMatches)(secret, settings?.webhookSecret), constants_1.HTTP_FORBIDDEN, BAD_SECRET);
|
|
39
39
|
const recorded = await (0, events_1.recordEmailEvent)(tenantId, {
|
|
40
40
|
provider,
|
|
41
41
|
messageId: event.messageId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/routes/events.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAOmC;AACnC,uEAA0E;AAC1E,6EAA8E;AAC9E,6BAAwB;AACxB,4CAA6D;AAC7D,+CAA4E;AAC5E,
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/routes/events.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAOmC;AACnC,uEAA0E;AAC1E,6EAA8E;AAC9E,6BAAwB;AACxB,4CAA6D;AAC7D,+CAA4E;AAC5E,mDAAoD;AACpD,oCAA0D;AAE1D,MAAM,aAAa,GAAG,0BAA0B,CAAC;AACjD,MAAM,UAAU,GAAG,wCAAwC,CAAC;AAE5D,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,qBAA8C,CAAC;IAC5D,EAAE,EAAE,OAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC9B,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH,MAAa,uBAAwB,SAAQ,IAAA,0BAAU,EACrD,GAAG,yBAAa,SAAS,CAC1B;IAKO,AAAN,KAAK,CAAC,OAAO,CACqB,QAAgB,EACZ,MAA0B,EAClD,IAAa;QAEzB,MAAM,KAAK,GAAG,IAAA,qCAAgB,EAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAA,mCAAkB,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,QAAQ,CAAC,CAAC;QAC9C,IAAA,2BAAM,EACJ,IAAA,6BAAoB,EAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,EACrD,0BAAc,EACd,UAAU,CACX,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAgB,EAAC,QAAQ,EAAE;YAChD,QAAQ;YACR,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;QACH,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC;CACF;AA7BD,0DA6BC;AAzBS;IADP,IAAA,uBAAO,GAAE;;oDACkB;AAGtB;IADL,IAAA,oBAAI,EAAC,YAAY,CAAC;IAEhB,WAAA,IAAA,yBAAS,EAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC9B,WAAA,IAAA,yBAAS,EAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;IAClC,WAAA,IAAA,wBAAQ,GAAE,CAAA;;;;sDAkBZ"}
|
package/dist/routes/period.js
CHANGED
|
@@ -14,19 +14,22 @@ function parseDate(raw) {
|
|
|
14
14
|
const parsed = new Date(raw);
|
|
15
15
|
return Number.isNaN(parsed.getTime()) ? undefined : parsed;
|
|
16
16
|
}
|
|
17
|
+
function clampToMaxWindow(requested, to) {
|
|
18
|
+
const earliest = to.getTime() - constants_1.MAX_WINDOW_DAYS * DAY_MS;
|
|
19
|
+
const from = requested.getTime() < earliest ? new Date(earliest) : requested;
|
|
20
|
+
return { from, to };
|
|
21
|
+
}
|
|
17
22
|
function currentRange(ctx) {
|
|
18
23
|
const to = parseDate(readQuery(ctx, "to")) ?? new Date();
|
|
19
24
|
const requested = parseDate(readQuery(ctx, "from")) ??
|
|
20
25
|
new Date(to.getTime() - DEFAULT_WINDOW_DAYS * DAY_MS);
|
|
21
|
-
|
|
22
|
-
const from = requested.getTime() < earliest ? new Date(earliest) : requested;
|
|
23
|
-
return { from, to };
|
|
26
|
+
return clampToMaxWindow(requested, to);
|
|
24
27
|
}
|
|
25
28
|
function comparisonRange(ctx, current) {
|
|
26
29
|
const from = parseDate(readQuery(ctx, "compareFrom"));
|
|
27
30
|
const to = parseDate(readQuery(ctx, "compareTo"));
|
|
28
31
|
if (from && to)
|
|
29
|
-
return
|
|
32
|
+
return clampToMaxWindow(from, to);
|
|
30
33
|
const span = current.to.getTime() - current.from.getTime();
|
|
31
34
|
return {
|
|
32
35
|
from: new Date(current.from.getTime() - span),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"period.js","sourceRoot":"","sources":["../../src/routes/period.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"period.js","sourceRoot":"","sources":["../../src/routes/period.ts"],"names":[],"mappings":";;AA8BA,oCAMC;AAED,0CAYC;AA3CD,4CAA+C;AAG/C,MAAM,MAAM,GAAG,UAAU,CAAC;AAC1B,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,SAAS,SAAS,CAAC,GAAiB,EAAE,GAAW;IAC/C,OAAO,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;AACpD,CAAC;AAED,SAAS,SAAS,CAAC,GAAuB;IACxC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7D,CAAC;AAGD,SAAS,gBAAgB,CAAC,SAAe,EAAE,EAAQ;IACjD,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,2BAAe,GAAG,MAAM,CAAC;IACzD,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACtB,CAAC;AAED,SAAgB,YAAY,CAAC,GAAiB;IAC5C,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;IACzD,MAAM,SAAS,GACb,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,mBAAmB,GAAG,MAAM,CAAC,CAAC;IACxD,OAAO,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,eAAe,CAC7B,GAAiB,EACjB,OAAkB;IAElB,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;IACtD,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IAClD,IAAI,IAAI,IAAI,EAAE;QAAE,OAAO,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3D,OAAO;QACL,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;QAC7C,EAAE,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;KACrC,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SendSummary, MailingTemplate } from "../db";
|
|
2
2
|
export type AttentionTone = "error" | "warning" | "neutral";
|
|
3
3
|
export interface AttentionItem {
|
|
4
4
|
id: string;
|
|
@@ -11,8 +11,8 @@ export interface AttentionItem {
|
|
|
11
11
|
}
|
|
12
12
|
export interface AttentionWindow {
|
|
13
13
|
templates: MailingTemplate[];
|
|
14
|
-
sends:
|
|
15
|
-
excluded:
|
|
14
|
+
sends: SendSummary[];
|
|
15
|
+
excluded: SendSummary[];
|
|
16
16
|
tracking: ProviderTracking | null;
|
|
17
17
|
}
|
|
18
18
|
export interface ProviderTracking {
|
|
@@ -7,4 +7,4 @@ export interface SendCounters {
|
|
|
7
7
|
}
|
|
8
8
|
export declare function applyEvent(current: SendCounters, type: SendEventType): SendCounters;
|
|
9
9
|
export declare function recordEmailEvent(tenantId: string, event: EmailEvent): Promise<boolean>;
|
|
10
|
-
export declare function webhookSecretMatches(provided: string | undefined, stored: string): boolean;
|
|
10
|
+
export declare function webhookSecretMatches(provided: string | undefined, stored: string | undefined): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/services/events.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/services/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SendSummary } from "../db";
|
|
2
2
|
import { type SendAudience } from "../types";
|
|
3
3
|
export declare function readAudience(raw: string | null | undefined): SendAudience;
|
|
4
|
-
export declare function forAudience(sends:
|
|
4
|
+
export declare function forAudience(sends: SendSummary[], audience: SendAudience): SendSummary[];
|
|
5
5
|
export interface Totals {
|
|
6
6
|
sends: number;
|
|
7
7
|
queued: number;
|
|
@@ -27,8 +27,8 @@ export interface DateRange {
|
|
|
27
27
|
to: Date;
|
|
28
28
|
}
|
|
29
29
|
export declare const ratio: (part: number, whole: number) => number;
|
|
30
|
-
export declare function aggregate(sends:
|
|
30
|
+
export declare function aggregate(sends: SendSummary[]): Totals;
|
|
31
31
|
export declare function deltaPercent(current: number, previous: number): number;
|
|
32
|
-
export declare function dailySeries(sends:
|
|
32
|
+
export declare function dailySeries(sends: SendSummary[], from: Date, to: Date): SeriesPoint[];
|
|
33
33
|
export declare function domainOf(email: string): string;
|
|
34
34
|
export declare function groupBy<T>(items: T[], key: (item: T) => string): Map<string, T[]>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type MailingSettingsValues, type TemplateCategory } from "../types";
|
|
2
|
+
export declare function findSettings(tenantId: string): Promise<MailingSettingsValues | undefined>;
|
|
2
3
|
export declare function getSettings(tenantId: string): Promise<MailingSettingsValues>;
|
|
3
4
|
export declare function saveSettings(tenantId: string, values: MailingSettingsValues): Promise<MailingSettingsValues>;
|
|
4
5
|
export declare function findCategory(categories: TemplateCategory[], id: string): TemplateCategory | undefined;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.findSettings = findSettings;
|
|
3
4
|
exports.getSettings = getSettings;
|
|
4
5
|
exports.saveSettings = saveSettings;
|
|
5
6
|
exports.findCategory = findCategory;
|
|
@@ -37,22 +38,38 @@ function toRow(values) {
|
|
|
37
38
|
const { categories, ...rest } = values;
|
|
38
39
|
return { ...rest, json_categories: JSON.stringify(categories) };
|
|
39
40
|
}
|
|
40
|
-
async function
|
|
41
|
+
async function findSettings(tenantId) {
|
|
42
|
+
const existing = await (0, interface_database_decorators_1.GetModel)(db_1.SettingsModel, tenantId).getSingleton(tenantId);
|
|
43
|
+
return existing ? toValues(existing) : undefined;
|
|
44
|
+
}
|
|
45
|
+
async function insertKeyedSettings(tenantId, values) {
|
|
41
46
|
const model = (0, interface_database_decorators_1.GetModel)(db_1.SettingsModel, tenantId);
|
|
42
|
-
|
|
47
|
+
try {
|
|
48
|
+
await model.insert({ ...toRow(values), _id: tenantId });
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
if (await model.get(tenantId))
|
|
53
|
+
return false;
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
async function getSettings(tenantId) {
|
|
58
|
+
const existing = await findSettings(tenantId);
|
|
43
59
|
if (existing)
|
|
44
|
-
return
|
|
60
|
+
return existing;
|
|
45
61
|
const created = defaults();
|
|
46
|
-
await
|
|
47
|
-
|
|
62
|
+
if (await insertKeyedSettings(tenantId, created))
|
|
63
|
+
return created;
|
|
64
|
+
return (await findSettings(tenantId));
|
|
48
65
|
}
|
|
49
66
|
async function saveSettings(tenantId, values) {
|
|
50
67
|
const model = (0, interface_database_decorators_1.GetModel)(db_1.SettingsModel, tenantId);
|
|
51
|
-
const existing = await model.getSingleton();
|
|
68
|
+
const existing = await model.getSingleton(tenantId);
|
|
52
69
|
if (existing)
|
|
53
70
|
await model.update(existing._id, toRow(values));
|
|
54
|
-
else
|
|
55
|
-
await model.
|
|
71
|
+
else if (!(await insertKeyedSettings(tenantId, values)))
|
|
72
|
+
await model.update(tenantId, toRow(values));
|
|
56
73
|
return values;
|
|
57
74
|
}
|
|
58
75
|
function findCategory(categories, id) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/services/settings.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/services/settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,7 @@ const http_1 = require("../helpers/http");
|
|
|
39
39
|
const owner_1 = require("../helpers/owner");
|
|
40
40
|
const HTTP_OK = 200;
|
|
41
41
|
const HTTP_FORBIDDEN = 403;
|
|
42
|
+
const SECRET_LENGTH = 48;
|
|
42
43
|
const TABLE = "/api/mailing/tables/templates";
|
|
43
44
|
describe("[integration] events", () => {
|
|
44
45
|
it("records a webhook event against the send that carries the provider message id", async () => {
|
|
@@ -103,6 +104,16 @@ describe("[integration] events", () => {
|
|
|
103
104
|
(0, chai_1.expect)(after.data.send.status).to.equal("delivered");
|
|
104
105
|
});
|
|
105
106
|
});
|
|
107
|
+
describe("[integration] webhook for a tenant without settings", () => {
|
|
108
|
+
it("refuses the event and stores nothing", async () => {
|
|
109
|
+
const { GetModel } = await Promise.resolve().then(() => __importStar(require("@antelopejs/interface-database-decorators")));
|
|
110
|
+
const { SettingsModel } = await Promise.resolve().then(() => __importStar(require("../../db")));
|
|
111
|
+
const tenantId = `unknown-tenant-${Date.now()}`;
|
|
112
|
+
const hook = await (0, http_1.createClient)().post("/api/mailing/events/manual", { messageId: "unknown-message", type: "opened", tenantId }, { headers: { "x-mailing-webhook-secret": "a".repeat(SECRET_LENGTH) } });
|
|
113
|
+
(0, chai_1.expect)(hook.status).to.equal(HTTP_FORBIDDEN);
|
|
114
|
+
(0, chai_1.expect)(await GetModel(SettingsModel, tenantId).getAll()).to.have.lengthOf(0);
|
|
115
|
+
});
|
|
116
|
+
});
|
|
106
117
|
describe("[integration] send event purge", () => {
|
|
107
118
|
it("deletes only the events of the send it targets", async () => {
|
|
108
119
|
const { GetModel } = await Promise.resolve().then(() => __importStar(require("@antelopejs/interface-database-decorators")));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.test.js","sourceRoot":"","sources":["../../../src/test/integration/events.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA8B;AAC9B,8EAG8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"events.test.js","sourceRoot":"","sources":["../../../src/test/integration/events.test.ts"],"names":[],"mappings":"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"}
|