@adtrackify/at-service-common 3.19.3 → 3.19.5
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/cjs/__tests__/clients/acuity-client.spec.js +0 -10
- package/dist/cjs/__tests__/clients/acuity-client.spec.js.map +1 -1
- package/dist/cjs/__tests__/libs/custom-measure-formula/custom-measure-formula-utils.spec.js +131 -0
- package/dist/cjs/__tests__/libs/custom-measure-formula/custom-measure-formula-utils.spec.js.map +1 -0
- package/dist/cjs/__tests__/services/acuity-api-service.spec.js +0 -20
- package/dist/cjs/__tests__/services/acuity-api-service.spec.js.map +1 -1
- package/dist/cjs/clients/third-party/acuity-client.d.ts +0 -1
- package/dist/cjs/clients/third-party/acuity-client.js +0 -6
- package/dist/cjs/clients/third-party/acuity-client.js.map +1 -1
- package/dist/cjs/libs/custom-measure-formula/custom-measure-formula-types.d.ts +47 -0
- package/dist/cjs/libs/custom-measure-formula/custom-measure-formula-types.js +26 -0
- package/dist/cjs/libs/custom-measure-formula/custom-measure-formula-types.js.map +1 -0
- package/dist/cjs/libs/custom-measure-formula/custom-measure-formula-utils.d.ts +6 -0
- package/dist/cjs/libs/custom-measure-formula/custom-measure-formula-utils.js +196 -0
- package/dist/cjs/libs/custom-measure-formula/custom-measure-formula-utils.js.map +1 -0
- package/dist/cjs/libs/custom-measure-formula/index.d.ts +2 -0
- package/dist/cjs/libs/custom-measure-formula/index.js +19 -0
- package/dist/cjs/libs/custom-measure-formula/index.js.map +1 -0
- package/dist/cjs/libs/index.d.ts +1 -0
- package/dist/cjs/libs/index.js +1 -0
- package/dist/cjs/libs/index.js.map +1 -1
- package/dist/cjs/services/acuity-api-service.d.ts +0 -1
- package/dist/cjs/services/acuity-api-service.js +0 -19
- package/dist/cjs/services/acuity-api-service.js.map +1 -1
- package/dist/cjs/services/db/custom-measures-db-service.d.ts +14 -0
- package/dist/cjs/services/db/custom-measures-db-service.js +49 -0
- package/dist/cjs/services/db/custom-measures-db-service.js.map +1 -0
- package/dist/cjs/services/db/index.d.ts +1 -1
- package/dist/cjs/services/db/index.js +1 -1
- package/dist/cjs/services/db/index.js.map +1 -1
- package/dist/cjs/services/db/purchased-contacts-db-service.d.ts +2 -16
- package/dist/cjs/services/db/purchased-contacts-db-service.js +1 -10
- package/dist/cjs/services/db/purchased-contacts-db-service.js.map +1 -1
- package/dist/esm/__tests__/clients/acuity-client.spec.js +0 -10
- package/dist/esm/__tests__/clients/acuity-client.spec.js.map +1 -1
- package/dist/esm/__tests__/libs/custom-measure-formula/custom-measure-formula-utils.spec.js +129 -0
- package/dist/esm/__tests__/libs/custom-measure-formula/custom-measure-formula-utils.spec.js.map +1 -0
- package/dist/esm/__tests__/services/acuity-api-service.spec.js +0 -20
- package/dist/esm/__tests__/services/acuity-api-service.spec.js.map +1 -1
- package/dist/esm/clients/third-party/acuity-client.d.ts +0 -1
- package/dist/esm/clients/third-party/acuity-client.js +0 -6
- package/dist/esm/clients/third-party/acuity-client.js.map +1 -1
- package/dist/esm/libs/custom-measure-formula/custom-measure-formula-types.d.ts +47 -0
- package/dist/esm/libs/custom-measure-formula/custom-measure-formula-types.js +23 -0
- package/dist/esm/libs/custom-measure-formula/custom-measure-formula-types.js.map +1 -0
- package/dist/esm/libs/custom-measure-formula/custom-measure-formula-utils.d.ts +6 -0
- package/dist/esm/libs/custom-measure-formula/custom-measure-formula-utils.js +188 -0
- package/dist/esm/libs/custom-measure-formula/custom-measure-formula-utils.js.map +1 -0
- package/dist/esm/libs/custom-measure-formula/index.d.ts +2 -0
- package/dist/esm/libs/custom-measure-formula/index.js +3 -0
- package/dist/esm/libs/custom-measure-formula/index.js.map +1 -0
- package/dist/esm/libs/index.d.ts +1 -0
- package/dist/esm/libs/index.js +1 -0
- package/dist/esm/libs/index.js.map +1 -1
- package/dist/esm/services/acuity-api-service.d.ts +0 -1
- package/dist/esm/services/acuity-api-service.js +0 -19
- package/dist/esm/services/acuity-api-service.js.map +1 -1
- package/dist/esm/services/db/custom-measures-db-service.d.ts +14 -0
- package/dist/esm/services/db/custom-measures-db-service.js +45 -0
- package/dist/esm/services/db/custom-measures-db-service.js.map +1 -0
- package/dist/esm/services/db/index.d.ts +1 -1
- package/dist/esm/services/db/index.js +1 -1
- package/dist/esm/services/db/index.js.map +1 -1
- package/dist/esm/services/db/purchased-contacts-db-service.d.ts +2 -16
- package/dist/esm/services/db/purchased-contacts-db-service.js +1 -10
- package/dist/esm/services/db/purchased-contacts-db-service.js.map +1 -1
- package/package.json +2 -2
- package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.js +0 -66
- package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.js.map +0 -1
- package/dist/cjs/services/db/contact-enrichments-db-service.d.ts +0 -16
- package/dist/cjs/services/db/contact-enrichments-db-service.js +0 -71
- package/dist/cjs/services/db/contact-enrichments-db-service.js.map +0 -1
- package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.js +0 -64
- package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.js.map +0 -1
- package/dist/esm/services/db/contact-enrichments-db-service.d.ts +0 -16
- package/dist/esm/services/db/contact-enrichments-db-service.js +0 -67
- package/dist/esm/services/db/contact-enrichments-db-service.js.map +0 -1
- /package/dist/cjs/__tests__/{db/contact-enrichments-db-service.spec.d.ts → libs/custom-measure-formula/custom-measure-formula-utils.spec.d.ts} +0 -0
- /package/dist/esm/__tests__/{db/contact-enrichments-db-service.spec.d.ts → libs/custom-measure-formula/custom-measure-formula-utils.spec.d.ts} +0 -0
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ContactEnrichmentsDbService = void 0;
|
|
4
|
-
const dynamodb_client_js_1 = require("../../clients/generic/dynamodb-client.js");
|
|
5
|
-
const libs_1 = require("../../libs");
|
|
6
|
-
const helpers_1 = require("../../helpers");
|
|
7
|
-
const ulid_1 = require("ulid");
|
|
8
|
-
class ContactEnrichmentsDbService {
|
|
9
|
-
TABLE_NAME;
|
|
10
|
-
TABLE_KEY;
|
|
11
|
-
EMAIL_INDEX_NAME;
|
|
12
|
-
MD5_INDEX_NAME;
|
|
13
|
-
SHA2_INDEX_NAME;
|
|
14
|
-
constructor(tableName, contactEnrichmentsKey, STAGE) {
|
|
15
|
-
this.TABLE_NAME = tableName;
|
|
16
|
-
this.TABLE_KEY = contactEnrichmentsKey;
|
|
17
|
-
this.EMAIL_INDEX_NAME = `${STAGE}-contact-enrichments-gsi-email`;
|
|
18
|
-
this.MD5_INDEX_NAME = `${STAGE}-contact-enrichments-gsi-md5`;
|
|
19
|
-
this.SHA2_INDEX_NAME = `${STAGE}-contact-enrichments-gsi-sha2`;
|
|
20
|
-
}
|
|
21
|
-
buildContactEnrichment = (input) => {
|
|
22
|
-
const currentTimestamp = (0, libs_1.getCurrentTimestamp)();
|
|
23
|
-
return {
|
|
24
|
-
...input,
|
|
25
|
-
id: (0, ulid_1.ulid)(),
|
|
26
|
-
createdAt: currentTimestamp,
|
|
27
|
-
updatedAt: currentTimestamp,
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
putContactEnrichment = async (contactEnrichment) => {
|
|
31
|
-
await dynamodb_client_js_1.DynamoDbClient.safePut(this.TABLE_NAME, contactEnrichment);
|
|
32
|
-
return contactEnrichment;
|
|
33
|
-
};
|
|
34
|
-
getContactEnrichment = async (id) => {
|
|
35
|
-
try {
|
|
36
|
-
const contactEnrichment = await dynamodb_client_js_1.DynamoDbClient.safeGet(this.TABLE_NAME, this.TABLE_KEY, id);
|
|
37
|
-
return contactEnrichment ?? null;
|
|
38
|
-
}
|
|
39
|
-
catch (error) {
|
|
40
|
-
helpers_1.Logger.error('failed to getContactEnrichment', { error, id });
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
getContactEnrichmentsByEmail = async (email) => {
|
|
45
|
-
return this.queryByIndex(this.EMAIL_INDEX_NAME, 'email', email);
|
|
46
|
-
};
|
|
47
|
-
getContactEnrichmentsByMd5 = async (md5) => {
|
|
48
|
-
return this.queryByIndex(this.MD5_INDEX_NAME, 'md5', md5);
|
|
49
|
-
};
|
|
50
|
-
getContactEnrichmentsBySha2 = async (sha2) => {
|
|
51
|
-
return this.queryByIndex(this.SHA2_INDEX_NAME, 'sha2', sha2);
|
|
52
|
-
};
|
|
53
|
-
queryByIndex = async (indexName, attribute, value) => {
|
|
54
|
-
try {
|
|
55
|
-
const query = {
|
|
56
|
-
TableName: this.TABLE_NAME,
|
|
57
|
-
IndexName: indexName,
|
|
58
|
-
KeyConditionExpression: `${attribute} = :value`,
|
|
59
|
-
ExpressionAttributeValues: { ':value': value },
|
|
60
|
-
};
|
|
61
|
-
const contactEnrichments = await dynamodb_client_js_1.DynamoDbClient.queryAll(query);
|
|
62
|
-
return (contactEnrichments ?? []);
|
|
63
|
-
}
|
|
64
|
-
catch (error) {
|
|
65
|
-
helpers_1.Logger.error('failed to query contact enrichments by index', { error, indexName, attribute, value });
|
|
66
|
-
return [];
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
exports.ContactEnrichmentsDbService = ContactEnrichmentsDbService;
|
|
71
|
-
//# sourceMappingURL=contact-enrichments-db-service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contact-enrichments-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/contact-enrichments-db-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { CONTACT_ACQUISITION_SOURCE, CONTACT_ENRICHMENT_LOOKUP_TYPE, CONTACT_SOURCE_ID, } from '@adtrackify/at-tracking-event-types';
|
|
2
|
-
import { DynamoDbClient } from '../../clients/generic/dynamodb-client';
|
|
3
|
-
import { ContactEnrichmentsDbService } from '../../services/db/contact-enrichments-db-service';
|
|
4
|
-
const STAGE = 'dev2';
|
|
5
|
-
const service = new ContactEnrichmentsDbService('dev2-at-contact-enrichments', 'id', STAGE);
|
|
6
|
-
const enrichmentInput = {
|
|
7
|
-
email: 'a@x.com',
|
|
8
|
-
md5: 'm',
|
|
9
|
-
sha2: 's',
|
|
10
|
-
source: CONTACT_ACQUISITION_SOURCE.AUDIENCE_ACUITY,
|
|
11
|
-
sourceId: CONTACT_SOURCE_ID.AUDIENCE_ACUITY,
|
|
12
|
-
lookupType: CONTACT_ENRICHMENT_LOOKUP_TYPE.EMAIL,
|
|
13
|
-
contacts: [],
|
|
14
|
-
deliverableContacts: [],
|
|
15
|
-
};
|
|
16
|
-
describe('ContactEnrichmentsDbService', () => {
|
|
17
|
-
afterEach(() => {
|
|
18
|
-
jest.restoreAllMocks();
|
|
19
|
-
});
|
|
20
|
-
it('builds index names from the stage', () => {
|
|
21
|
-
expect(service.EMAIL_INDEX_NAME).toBe('dev2-contact-enrichments-gsi-email');
|
|
22
|
-
expect(service.MD5_INDEX_NAME).toBe('dev2-contact-enrichments-gsi-md5');
|
|
23
|
-
expect(service.SHA2_INDEX_NAME).toBe('dev2-contact-enrichments-gsi-sha2');
|
|
24
|
-
});
|
|
25
|
-
it('stamps a fresh id + matching timestamps on build', () => {
|
|
26
|
-
const built = service.buildContactEnrichment(enrichmentInput);
|
|
27
|
-
expect(built.id).toEqual(expect.any(String));
|
|
28
|
-
expect(built.id.length).toBeGreaterThan(0);
|
|
29
|
-
expect(built.createdAt).toBe(built.updatedAt);
|
|
30
|
-
expect(built).toMatchObject(enrichmentInput);
|
|
31
|
-
});
|
|
32
|
-
it('puts the record via safePut and returns it', async () => {
|
|
33
|
-
const safePut = jest.spyOn(DynamoDbClient, 'safePut').mockResolvedValue(undefined);
|
|
34
|
-
const record = service.buildContactEnrichment(enrichmentInput);
|
|
35
|
-
const result = await service.putContactEnrichment(record);
|
|
36
|
-
expect(safePut).toHaveBeenCalledWith('dev2-at-contact-enrichments', record);
|
|
37
|
-
expect(result).toBe(record);
|
|
38
|
-
});
|
|
39
|
-
it('gets by id (primary key) and returns null when absent', async () => {
|
|
40
|
-
const record = service.buildContactEnrichment(enrichmentInput);
|
|
41
|
-
const safeGet = jest.spyOn(DynamoDbClient, 'safeGet').mockResolvedValueOnce(record).mockResolvedValueOnce(null);
|
|
42
|
-
expect(await service.getContactEnrichment('id-1')).toEqual(record);
|
|
43
|
-
expect(safeGet).toHaveBeenCalledWith('dev2-at-contact-enrichments', 'id', 'id-1');
|
|
44
|
-
expect(await service.getContactEnrichment('missing')).toBeNull();
|
|
45
|
-
});
|
|
46
|
-
it('queries the email / md5 / sha2 GSIs with the right index + key condition', async () => {
|
|
47
|
-
const queryAll = jest.spyOn(DynamoDbClient, 'queryAll').mockResolvedValue([enrichmentInput]);
|
|
48
|
-
await service.getContactEnrichmentsByEmail('a@x.com');
|
|
49
|
-
expect(queryAll).toHaveBeenLastCalledWith(expect.objectContaining({
|
|
50
|
-
IndexName: 'dev2-contact-enrichments-gsi-email',
|
|
51
|
-
KeyConditionExpression: 'email = :value',
|
|
52
|
-
ExpressionAttributeValues: { ':value': 'a@x.com' },
|
|
53
|
-
}));
|
|
54
|
-
await service.getContactEnrichmentsByMd5('m');
|
|
55
|
-
expect(queryAll).toHaveBeenLastCalledWith(expect.objectContaining({ IndexName: 'dev2-contact-enrichments-gsi-md5', KeyConditionExpression: 'md5 = :value' }));
|
|
56
|
-
await service.getContactEnrichmentsBySha2('s');
|
|
57
|
-
expect(queryAll).toHaveBeenLastCalledWith(expect.objectContaining({ IndexName: 'dev2-contact-enrichments-gsi-sha2', KeyConditionExpression: 'sha2 = :value' }));
|
|
58
|
-
});
|
|
59
|
-
it('returns [] when a GSI query throws (fail-safe lookup)', async () => {
|
|
60
|
-
jest.spyOn(DynamoDbClient, 'queryAll').mockRejectedValue(new Error('dynamo boom'));
|
|
61
|
-
expect(await service.getContactEnrichmentsByEmail('a@x.com')).toEqual([]);
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
//# sourceMappingURL=contact-enrichments-db-service.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contact-enrichments-db-service.spec.js","sourceRoot":"","sources":["../../../../src/__tests__/db/contact-enrichments-db-service.spec.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,iBAAiB,GAElB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kDAAkD,CAAC;AAE/F,MAAM,KAAK,GAAG,MAAM,CAAC;AACrB,MAAM,OAAO,GAAG,IAAI,2BAA2B,CAAC,6BAA6B,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAE5F,MAAM,eAAe,GAA8D;IACjF,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,0BAA0B,CAAC,eAAe;IAClD,QAAQ,EAAE,iBAAiB,CAAC,eAAe;IAC3C,UAAU,EAAE,8BAA8B,CAAC,KAAK;IAChD,QAAQ,EAAE,EAAE;IACZ,mBAAmB,EAAE,EAAE;CACxB,CAAC;AAEF,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAC5E,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACxE,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;QAC9D,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,iBAAiB,CAAC,SAAkB,CAAC,CAAC;QAC5F,MAAM,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;QAE/D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAE1D,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;QAC5E,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAEhH,MAAM,CAAC,MAAM,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnE,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,6BAA6B,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAClF,MAAM,CAAC,MAAM,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,iBAAiB,CAAC,CAAC,eAAoC,CAAC,CAAC,CAAC;QAElH,MAAM,OAAO,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CACvC,MAAM,CAAC,gBAAgB,CAAC;YACtB,SAAS,EAAE,oCAAoC;YAC/C,sBAAsB,EAAE,gBAAgB;YACxC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;SACnD,CAAC,CACH,CAAC;QAEF,MAAM,OAAO,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CACvC,MAAM,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,kCAAkC,EAAE,sBAAsB,EAAE,cAAc,EAAE,CAAC,CACnH,CAAC;QAEF,MAAM,OAAO,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CACvC,MAAM,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,mCAAmC,EAAE,sBAAsB,EAAE,eAAe,EAAE,CAAC,CACrH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,MAAM,OAAO,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { ContactEnrichment } from '@adtrackify/at-tracking-event-types';
|
|
2
|
-
export declare class ContactEnrichmentsDbService {
|
|
3
|
-
TABLE_NAME: string;
|
|
4
|
-
TABLE_KEY: string;
|
|
5
|
-
EMAIL_INDEX_NAME: string;
|
|
6
|
-
MD5_INDEX_NAME: string;
|
|
7
|
-
SHA2_INDEX_NAME: string;
|
|
8
|
-
constructor(tableName: string, contactEnrichmentsKey: string, STAGE: string);
|
|
9
|
-
buildContactEnrichment: (input: Omit<ContactEnrichment, 'id' | 'createdAt' | 'updatedAt'>) => ContactEnrichment;
|
|
10
|
-
putContactEnrichment: (contactEnrichment: ContactEnrichment) => Promise<ContactEnrichment>;
|
|
11
|
-
getContactEnrichment: (id: string) => Promise<ContactEnrichment | null>;
|
|
12
|
-
getContactEnrichmentsByEmail: (email: string) => Promise<ContactEnrichment[]>;
|
|
13
|
-
getContactEnrichmentsByMd5: (md5: string) => Promise<ContactEnrichment[]>;
|
|
14
|
-
getContactEnrichmentsBySha2: (sha2: string) => Promise<ContactEnrichment[]>;
|
|
15
|
-
private queryByIndex;
|
|
16
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { DynamoDbClient } from '../../clients/generic/dynamodb-client.js';
|
|
2
|
-
import { getCurrentTimestamp } from '../../libs';
|
|
3
|
-
import { Logger } from '../../helpers';
|
|
4
|
-
import { ulid } from 'ulid';
|
|
5
|
-
export class ContactEnrichmentsDbService {
|
|
6
|
-
TABLE_NAME;
|
|
7
|
-
TABLE_KEY;
|
|
8
|
-
EMAIL_INDEX_NAME;
|
|
9
|
-
MD5_INDEX_NAME;
|
|
10
|
-
SHA2_INDEX_NAME;
|
|
11
|
-
constructor(tableName, contactEnrichmentsKey, STAGE) {
|
|
12
|
-
this.TABLE_NAME = tableName;
|
|
13
|
-
this.TABLE_KEY = contactEnrichmentsKey;
|
|
14
|
-
this.EMAIL_INDEX_NAME = `${STAGE}-contact-enrichments-gsi-email`;
|
|
15
|
-
this.MD5_INDEX_NAME = `${STAGE}-contact-enrichments-gsi-md5`;
|
|
16
|
-
this.SHA2_INDEX_NAME = `${STAGE}-contact-enrichments-gsi-sha2`;
|
|
17
|
-
}
|
|
18
|
-
buildContactEnrichment = (input) => {
|
|
19
|
-
const currentTimestamp = getCurrentTimestamp();
|
|
20
|
-
return {
|
|
21
|
-
...input,
|
|
22
|
-
id: ulid(),
|
|
23
|
-
createdAt: currentTimestamp,
|
|
24
|
-
updatedAt: currentTimestamp,
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
putContactEnrichment = async (contactEnrichment) => {
|
|
28
|
-
await DynamoDbClient.safePut(this.TABLE_NAME, contactEnrichment);
|
|
29
|
-
return contactEnrichment;
|
|
30
|
-
};
|
|
31
|
-
getContactEnrichment = async (id) => {
|
|
32
|
-
try {
|
|
33
|
-
const contactEnrichment = await DynamoDbClient.safeGet(this.TABLE_NAME, this.TABLE_KEY, id);
|
|
34
|
-
return contactEnrichment ?? null;
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
Logger.error('failed to getContactEnrichment', { error, id });
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
getContactEnrichmentsByEmail = async (email) => {
|
|
42
|
-
return this.queryByIndex(this.EMAIL_INDEX_NAME, 'email', email);
|
|
43
|
-
};
|
|
44
|
-
getContactEnrichmentsByMd5 = async (md5) => {
|
|
45
|
-
return this.queryByIndex(this.MD5_INDEX_NAME, 'md5', md5);
|
|
46
|
-
};
|
|
47
|
-
getContactEnrichmentsBySha2 = async (sha2) => {
|
|
48
|
-
return this.queryByIndex(this.SHA2_INDEX_NAME, 'sha2', sha2);
|
|
49
|
-
};
|
|
50
|
-
queryByIndex = async (indexName, attribute, value) => {
|
|
51
|
-
try {
|
|
52
|
-
const query = {
|
|
53
|
-
TableName: this.TABLE_NAME,
|
|
54
|
-
IndexName: indexName,
|
|
55
|
-
KeyConditionExpression: `${attribute} = :value`,
|
|
56
|
-
ExpressionAttributeValues: { ':value': value },
|
|
57
|
-
};
|
|
58
|
-
const contactEnrichments = await DynamoDbClient.queryAll(query);
|
|
59
|
-
return (contactEnrichments ?? []);
|
|
60
|
-
}
|
|
61
|
-
catch (error) {
|
|
62
|
-
Logger.error('failed to query contact enrichments by index', { error, indexName, attribute, value });
|
|
63
|
-
return [];
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=contact-enrichments-db-service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contact-enrichments-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/contact-enrichments-db-service.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|