@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.
Files changed (79) hide show
  1. package/dist/cjs/__tests__/clients/acuity-client.spec.js +0 -10
  2. package/dist/cjs/__tests__/clients/acuity-client.spec.js.map +1 -1
  3. package/dist/cjs/__tests__/libs/custom-measure-formula/custom-measure-formula-utils.spec.js +131 -0
  4. package/dist/cjs/__tests__/libs/custom-measure-formula/custom-measure-formula-utils.spec.js.map +1 -0
  5. package/dist/cjs/__tests__/services/acuity-api-service.spec.js +0 -20
  6. package/dist/cjs/__tests__/services/acuity-api-service.spec.js.map +1 -1
  7. package/dist/cjs/clients/third-party/acuity-client.d.ts +0 -1
  8. package/dist/cjs/clients/third-party/acuity-client.js +0 -6
  9. package/dist/cjs/clients/third-party/acuity-client.js.map +1 -1
  10. package/dist/cjs/libs/custom-measure-formula/custom-measure-formula-types.d.ts +47 -0
  11. package/dist/cjs/libs/custom-measure-formula/custom-measure-formula-types.js +26 -0
  12. package/dist/cjs/libs/custom-measure-formula/custom-measure-formula-types.js.map +1 -0
  13. package/dist/cjs/libs/custom-measure-formula/custom-measure-formula-utils.d.ts +6 -0
  14. package/dist/cjs/libs/custom-measure-formula/custom-measure-formula-utils.js +196 -0
  15. package/dist/cjs/libs/custom-measure-formula/custom-measure-formula-utils.js.map +1 -0
  16. package/dist/cjs/libs/custom-measure-formula/index.d.ts +2 -0
  17. package/dist/cjs/libs/custom-measure-formula/index.js +19 -0
  18. package/dist/cjs/libs/custom-measure-formula/index.js.map +1 -0
  19. package/dist/cjs/libs/index.d.ts +1 -0
  20. package/dist/cjs/libs/index.js +1 -0
  21. package/dist/cjs/libs/index.js.map +1 -1
  22. package/dist/cjs/services/acuity-api-service.d.ts +0 -1
  23. package/dist/cjs/services/acuity-api-service.js +0 -19
  24. package/dist/cjs/services/acuity-api-service.js.map +1 -1
  25. package/dist/cjs/services/db/custom-measures-db-service.d.ts +14 -0
  26. package/dist/cjs/services/db/custom-measures-db-service.js +49 -0
  27. package/dist/cjs/services/db/custom-measures-db-service.js.map +1 -0
  28. package/dist/cjs/services/db/index.d.ts +1 -1
  29. package/dist/cjs/services/db/index.js +1 -1
  30. package/dist/cjs/services/db/index.js.map +1 -1
  31. package/dist/cjs/services/db/purchased-contacts-db-service.d.ts +2 -16
  32. package/dist/cjs/services/db/purchased-contacts-db-service.js +1 -10
  33. package/dist/cjs/services/db/purchased-contacts-db-service.js.map +1 -1
  34. package/dist/esm/__tests__/clients/acuity-client.spec.js +0 -10
  35. package/dist/esm/__tests__/clients/acuity-client.spec.js.map +1 -1
  36. package/dist/esm/__tests__/libs/custom-measure-formula/custom-measure-formula-utils.spec.js +129 -0
  37. package/dist/esm/__tests__/libs/custom-measure-formula/custom-measure-formula-utils.spec.js.map +1 -0
  38. package/dist/esm/__tests__/services/acuity-api-service.spec.js +0 -20
  39. package/dist/esm/__tests__/services/acuity-api-service.spec.js.map +1 -1
  40. package/dist/esm/clients/third-party/acuity-client.d.ts +0 -1
  41. package/dist/esm/clients/third-party/acuity-client.js +0 -6
  42. package/dist/esm/clients/third-party/acuity-client.js.map +1 -1
  43. package/dist/esm/libs/custom-measure-formula/custom-measure-formula-types.d.ts +47 -0
  44. package/dist/esm/libs/custom-measure-formula/custom-measure-formula-types.js +23 -0
  45. package/dist/esm/libs/custom-measure-formula/custom-measure-formula-types.js.map +1 -0
  46. package/dist/esm/libs/custom-measure-formula/custom-measure-formula-utils.d.ts +6 -0
  47. package/dist/esm/libs/custom-measure-formula/custom-measure-formula-utils.js +188 -0
  48. package/dist/esm/libs/custom-measure-formula/custom-measure-formula-utils.js.map +1 -0
  49. package/dist/esm/libs/custom-measure-formula/index.d.ts +2 -0
  50. package/dist/esm/libs/custom-measure-formula/index.js +3 -0
  51. package/dist/esm/libs/custom-measure-formula/index.js.map +1 -0
  52. package/dist/esm/libs/index.d.ts +1 -0
  53. package/dist/esm/libs/index.js +1 -0
  54. package/dist/esm/libs/index.js.map +1 -1
  55. package/dist/esm/services/acuity-api-service.d.ts +0 -1
  56. package/dist/esm/services/acuity-api-service.js +0 -19
  57. package/dist/esm/services/acuity-api-service.js.map +1 -1
  58. package/dist/esm/services/db/custom-measures-db-service.d.ts +14 -0
  59. package/dist/esm/services/db/custom-measures-db-service.js +45 -0
  60. package/dist/esm/services/db/custom-measures-db-service.js.map +1 -0
  61. package/dist/esm/services/db/index.d.ts +1 -1
  62. package/dist/esm/services/db/index.js +1 -1
  63. package/dist/esm/services/db/index.js.map +1 -1
  64. package/dist/esm/services/db/purchased-contacts-db-service.d.ts +2 -16
  65. package/dist/esm/services/db/purchased-contacts-db-service.js +1 -10
  66. package/dist/esm/services/db/purchased-contacts-db-service.js.map +1 -1
  67. package/package.json +2 -2
  68. package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.js +0 -66
  69. package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.js.map +0 -1
  70. package/dist/cjs/services/db/contact-enrichments-db-service.d.ts +0 -16
  71. package/dist/cjs/services/db/contact-enrichments-db-service.js +0 -71
  72. package/dist/cjs/services/db/contact-enrichments-db-service.js.map +0 -1
  73. package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.js +0 -64
  74. package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.js.map +0 -1
  75. package/dist/esm/services/db/contact-enrichments-db-service.d.ts +0 -16
  76. package/dist/esm/services/db/contact-enrichments-db-service.js +0 -67
  77. package/dist/esm/services/db/contact-enrichments-db-service.js.map +0 -1
  78. /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
  79. /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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"}