@adtrackify/at-service-common 3.0.47 → 3.0.49
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/services/db/identity-cache-db-service.d.ts +2 -2
- package/dist/cjs/services/db/identity-cache-db-service.js +22 -12
- package/dist/cjs/services/db/identity-cache-db-service.js.map +1 -1
- package/dist/esm/services/db/identity-cache-db-service.d.ts +2 -2
- package/dist/esm/services/db/identity-cache-db-service.js +22 -12
- package/dist/esm/services/db/identity-cache-db-service.js.map +1 -1
- package/package.json +1 -1
|
@@ -14,8 +14,8 @@ export declare class IdentityCacheDbService {
|
|
|
14
14
|
TTL_IN_MONTHS: number;
|
|
15
15
|
identityClient: IdentityClient;
|
|
16
16
|
constructor(tableName: string, tableKey: string, baseApiUrl: string, cacheTtlInMonths?: number);
|
|
17
|
-
getIdentityWithCaching: (pixelId: string,
|
|
18
|
-
updateIdentityCache: (
|
|
17
|
+
getIdentityWithCaching: (pixelId: string, incomingIdentity?: EventIdentity, cacheExpiryInSeconds?: number) => Promise<EventIdentity | undefined>;
|
|
18
|
+
updateIdentityCache: (request: EventIdentity, response: EventIdentity) => Promise<void>;
|
|
19
19
|
putIdentityCache: (identityCache: IdentityCache) => Promise<import("@aws-sdk/lib-dynamodb").PutCommandOutput | null>;
|
|
20
20
|
getIdentityCache: (identityId: string) => Promise<IdentityCache>;
|
|
21
21
|
deleteIdentityCache: (identityId: string) => Promise<import("@aws-sdk/lib-dynamodb").DeleteCommandOutput | null>;
|
|
@@ -23,34 +23,43 @@ class IdentityCacheDbService {
|
|
|
23
23
|
}
|
|
24
24
|
this.identityClient = new clients_1.IdentityClient(baseApiUrl);
|
|
25
25
|
}
|
|
26
|
-
getIdentityWithCaching = async (pixelId,
|
|
27
|
-
const
|
|
28
|
-
let resolvedIdentity =
|
|
29
|
-
|
|
26
|
+
getIdentityWithCaching = async (pixelId, incomingIdentity = {}, cacheExpiryInSeconds) => {
|
|
27
|
+
const identityCache = incomingIdentity?.identityId ? await this.getIdentityCache(incomingIdentity?.identityId) : undefined;
|
|
28
|
+
let resolvedIdentity = identityCache?.response;
|
|
29
|
+
let updateCache = false;
|
|
30
|
+
if (!identityCache || !resolvedIdentity) {
|
|
30
31
|
resolvedIdentity = await this.identityClient.getIdentity(pixelId, { identity: incomingIdentity });
|
|
32
|
+
updateCache = true;
|
|
31
33
|
}
|
|
32
|
-
else if (
|
|
34
|
+
else if (identityCache) {
|
|
33
35
|
let hasExpired = false;
|
|
34
36
|
if (cacheExpiryInSeconds) {
|
|
35
|
-
const updatedAt = luxon_1.DateTime.fromISO(
|
|
37
|
+
const updatedAt = luxon_1.DateTime.fromISO(identityCache.updatedAt);
|
|
36
38
|
const currentTime = luxon_1.DateTime.now();
|
|
37
39
|
const timeSinceLastUpdate = currentTime.diff(updatedAt, 'seconds').toObject().seconds;
|
|
38
40
|
hasExpired = (timeSinceLastUpdate && (timeSinceLastUpdate > cacheExpiryInSeconds)) || false;
|
|
39
41
|
}
|
|
40
42
|
if (hasExpired) {
|
|
41
|
-
helpers_1.Logger.warn('Cache expired based on custom expiry time', {
|
|
43
|
+
helpers_1.Logger.warn('Cache expired based on custom expiry time', { identityCache });
|
|
42
44
|
resolvedIdentity = await this.identityClient.getIdentity(pixelId, { identity: incomingIdentity });
|
|
45
|
+
updateCache = true;
|
|
43
46
|
}
|
|
44
|
-
else if (this.isIdentityCacheStale(
|
|
45
|
-
helpers_1.Logger.
|
|
47
|
+
else if (this.isIdentityCacheStale(identityCache, incomingIdentity)) {
|
|
48
|
+
helpers_1.Logger.warn('identity cache miss - record exists but stale', { identityCache, incomingIdentity });
|
|
46
49
|
resolvedIdentity = await this.identityClient.getIdentity(pixelId, { identity: incomingIdentity });
|
|
50
|
+
updateCache = true;
|
|
47
51
|
}
|
|
48
52
|
}
|
|
49
|
-
|
|
53
|
+
if (updateCache && resolvedIdentity) {
|
|
54
|
+
await this.updateIdentityCache(incomingIdentity, resolvedIdentity);
|
|
55
|
+
}
|
|
56
|
+
if (!resolvedIdentity) {
|
|
57
|
+
helpers_1.Logger.error('No identity found', { pixelId, incomingIdentity });
|
|
58
|
+
}
|
|
50
59
|
return resolvedIdentity;
|
|
51
60
|
};
|
|
52
|
-
updateIdentityCache = async (
|
|
53
|
-
const identityCacheKeys = [
|
|
61
|
+
updateIdentityCache = async (request, response) => {
|
|
62
|
+
const identityCacheKeys = [];
|
|
54
63
|
if (request?.identityId && identityCacheKeys.indexOf(request?.identityId) === -1) {
|
|
55
64
|
identityCacheKeys.push(request?.identityId);
|
|
56
65
|
}
|
|
@@ -80,6 +89,7 @@ class IdentityCacheDbService {
|
|
|
80
89
|
}
|
|
81
90
|
};
|
|
82
91
|
putIdentityCache = async (identityCache) => {
|
|
92
|
+
helpers_1.Logger.warn('putting identity cache', { identityCache });
|
|
83
93
|
return await clients_1.DynamoDbClient.safePut(this.TABLE_NAME, identityCache);
|
|
84
94
|
};
|
|
85
95
|
getIdentityCache = async (identityId) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-cache-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/identity-cache-db-service.ts"],"names":[],"mappings":";;;AACA,iCAAiC;AACjC,2CAA+D;AAC/D,qCAAiD;AACjD,iEAAkG;AAClG,2CAAuC;AAWvC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AACtC,MAAa,sBAAsB;IAC1B,UAAU,CAAS;IACnB,SAAS,CAAS;IAClB,aAAa,CAAS;IACtB,cAAc,CAAiB;IAEtC,YAAY,SAAiB,EAAE,QAAgB,EAAE,UAAkB,EAAE,gBAAyB;QAC5F,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,gBAAgB,EAAE;YACpB,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC;SACvC;aACI;YACH,IAAI,CAAC,aAAa,GAAG,2BAA2B,CAAC;SAClD;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,wBAAc,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC;IAEM,sBAAsB,GAAG,KAAK,EAAE,OAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"identity-cache-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/identity-cache-db-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,8 +14,8 @@ export declare class IdentityCacheDbService {
|
|
|
14
14
|
TTL_IN_MONTHS: number;
|
|
15
15
|
identityClient: IdentityClient;
|
|
16
16
|
constructor(tableName: string, tableKey: string, baseApiUrl: string, cacheTtlInMonths?: number);
|
|
17
|
-
getIdentityWithCaching: (pixelId: string,
|
|
18
|
-
updateIdentityCache: (
|
|
17
|
+
getIdentityWithCaching: (pixelId: string, incomingIdentity?: EventIdentity, cacheExpiryInSeconds?: number) => Promise<EventIdentity | undefined>;
|
|
18
|
+
updateIdentityCache: (request: EventIdentity, response: EventIdentity) => Promise<void>;
|
|
19
19
|
putIdentityCache: (identityCache: IdentityCache) => Promise<import("@aws-sdk/lib-dynamodb").PutCommandOutput | null>;
|
|
20
20
|
getIdentityCache: (identityId: string) => Promise<IdentityCache>;
|
|
21
21
|
deleteIdentityCache: (identityId: string) => Promise<import("@aws-sdk/lib-dynamodb").DeleteCommandOutput | null>;
|
|
@@ -20,34 +20,43 @@ export class IdentityCacheDbService {
|
|
|
20
20
|
}
|
|
21
21
|
this.identityClient = new IdentityClient(baseApiUrl);
|
|
22
22
|
}
|
|
23
|
-
getIdentityWithCaching = async (pixelId,
|
|
24
|
-
const
|
|
25
|
-
let resolvedIdentity =
|
|
26
|
-
|
|
23
|
+
getIdentityWithCaching = async (pixelId, incomingIdentity = {}, cacheExpiryInSeconds) => {
|
|
24
|
+
const identityCache = incomingIdentity?.identityId ? await this.getIdentityCache(incomingIdentity?.identityId) : undefined;
|
|
25
|
+
let resolvedIdentity = identityCache?.response;
|
|
26
|
+
let updateCache = false;
|
|
27
|
+
if (!identityCache || !resolvedIdentity) {
|
|
27
28
|
resolvedIdentity = await this.identityClient.getIdentity(pixelId, { identity: incomingIdentity });
|
|
29
|
+
updateCache = true;
|
|
28
30
|
}
|
|
29
|
-
else if (
|
|
31
|
+
else if (identityCache) {
|
|
30
32
|
let hasExpired = false;
|
|
31
33
|
if (cacheExpiryInSeconds) {
|
|
32
|
-
const updatedAt = DateTime.fromISO(
|
|
34
|
+
const updatedAt = DateTime.fromISO(identityCache.updatedAt);
|
|
33
35
|
const currentTime = DateTime.now();
|
|
34
36
|
const timeSinceLastUpdate = currentTime.diff(updatedAt, 'seconds').toObject().seconds;
|
|
35
37
|
hasExpired = (timeSinceLastUpdate && (timeSinceLastUpdate > cacheExpiryInSeconds)) || false;
|
|
36
38
|
}
|
|
37
39
|
if (hasExpired) {
|
|
38
|
-
Logger.warn('Cache expired based on custom expiry time', {
|
|
40
|
+
Logger.warn('Cache expired based on custom expiry time', { identityCache });
|
|
39
41
|
resolvedIdentity = await this.identityClient.getIdentity(pixelId, { identity: incomingIdentity });
|
|
42
|
+
updateCache = true;
|
|
40
43
|
}
|
|
41
|
-
else if (this.isIdentityCacheStale(
|
|
42
|
-
Logger.
|
|
44
|
+
else if (this.isIdentityCacheStale(identityCache, incomingIdentity)) {
|
|
45
|
+
Logger.warn('identity cache miss - record exists but stale', { identityCache, incomingIdentity });
|
|
43
46
|
resolvedIdentity = await this.identityClient.getIdentity(pixelId, { identity: incomingIdentity });
|
|
47
|
+
updateCache = true;
|
|
44
48
|
}
|
|
45
49
|
}
|
|
46
|
-
|
|
50
|
+
if (updateCache && resolvedIdentity) {
|
|
51
|
+
await this.updateIdentityCache(incomingIdentity, resolvedIdentity);
|
|
52
|
+
}
|
|
53
|
+
if (!resolvedIdentity) {
|
|
54
|
+
Logger.error('No identity found', { pixelId, incomingIdentity });
|
|
55
|
+
}
|
|
47
56
|
return resolvedIdentity;
|
|
48
57
|
};
|
|
49
|
-
updateIdentityCache = async (
|
|
50
|
-
const identityCacheKeys = [
|
|
58
|
+
updateIdentityCache = async (request, response) => {
|
|
59
|
+
const identityCacheKeys = [];
|
|
51
60
|
if (request?.identityId && identityCacheKeys.indexOf(request?.identityId) === -1) {
|
|
52
61
|
identityCacheKeys.push(request?.identityId);
|
|
53
62
|
}
|
|
@@ -77,6 +86,7 @@ export class IdentityCacheDbService {
|
|
|
77
86
|
}
|
|
78
87
|
};
|
|
79
88
|
putIdentityCache = async (identityCache) => {
|
|
89
|
+
Logger.warn('putting identity cache', { identityCache });
|
|
80
90
|
return await DynamoDbClient.safePut(this.TABLE_NAME, identityCache);
|
|
81
91
|
};
|
|
82
92
|
getIdentityCache = async (identityId) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-cache-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/identity-cache-db-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAWvC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AACtC,MAAM,OAAO,sBAAsB;IAC1B,UAAU,CAAS;IACnB,SAAS,CAAS;IAClB,aAAa,CAAS;IACtB,cAAc,CAAiB;IAEtC,YAAY,SAAiB,EAAE,QAAgB,EAAE,UAAkB,EAAE,gBAAyB;QAC5F,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,gBAAgB,EAAE;YACpB,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC;SACvC;aACI;YACH,IAAI,CAAC,aAAa,GAAG,2BAA2B,CAAC;SAClD;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC;IAEM,sBAAsB,GAAG,KAAK,EAAE,OAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"identity-cache-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/identity-cache-db-service.ts"],"names":[],"mappings":"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"}
|