@adtrackify/at-service-common 3.0.79 → 3.0.80
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/clients/generic/lambda-invoke-client.d.ts +6 -1
- package/dist/cjs/clients/generic/lambda-invoke-client.js +10 -10
- package/dist/cjs/clients/generic/lambda-invoke-client.js.map +1 -1
- package/dist/cjs/clients/generic/redis-client.d.ts +4 -2
- package/dist/cjs/clients/generic/redis-client.js +16 -2
- package/dist/cjs/clients/generic/redis-client.js.map +1 -1
- package/dist/cjs/clients/internal-api/cache-lambda-client.d.ts +23 -0
- package/dist/cjs/clients/internal-api/cache-lambda-client.js +60 -0
- package/dist/cjs/clients/internal-api/cache-lambda-client.js.map +1 -0
- package/dist/cjs/clients/internal-api/index.d.ts +1 -0
- package/dist/cjs/clients/internal-api/index.js +1 -0
- package/dist/cjs/clients/internal-api/index.js.map +1 -1
- package/dist/cjs/services/db/identity-cache-db-service.d.ts +4 -5
- package/dist/cjs/services/db/identity-cache-db-service.js +94 -62
- package/dist/cjs/services/db/identity-cache-db-service.js.map +1 -1
- package/dist/cjs/services/ipdata-lookup-service.d.ts +9 -2
- package/dist/cjs/services/ipdata-lookup-service.js +56 -77
- package/dist/cjs/services/ipdata-lookup-service.js.map +1 -1
- package/dist/esm/clients/generic/lambda-invoke-client.d.ts +6 -1
- package/dist/esm/clients/generic/lambda-invoke-client.js +10 -10
- package/dist/esm/clients/generic/lambda-invoke-client.js.map +1 -1
- package/dist/esm/clients/generic/redis-client.d.ts +4 -2
- package/dist/esm/clients/generic/redis-client.js +16 -2
- package/dist/esm/clients/generic/redis-client.js.map +1 -1
- package/dist/esm/clients/internal-api/cache-lambda-client.d.ts +23 -0
- package/dist/esm/clients/internal-api/cache-lambda-client.js +56 -0
- package/dist/esm/clients/internal-api/cache-lambda-client.js.map +1 -0
- package/dist/esm/clients/internal-api/index.d.ts +1 -0
- package/dist/esm/clients/internal-api/index.js +1 -0
- package/dist/esm/clients/internal-api/index.js.map +1 -1
- package/dist/esm/services/db/identity-cache-db-service.d.ts +4 -5
- package/dist/esm/services/db/identity-cache-db-service.js +95 -63
- package/dist/esm/services/db/identity-cache-db-service.js.map +1 -1
- package/dist/esm/services/ipdata-lookup-service.d.ts +9 -2
- package/dist/esm/services/ipdata-lookup-service.js +55 -75
- package/dist/esm/services/ipdata-lookup-service.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CacheLambdaClient, LambdaInvokeClient } from '../../clients';
|
|
2
2
|
import { getCurrentTimestamp } from '../../libs';
|
|
3
3
|
import { Logger } from '../../helpers';
|
|
4
|
-
import { RedisClient } from '../../clients/generic/redis-client';
|
|
5
4
|
import { isIdentityCacheStale } from '../../helpers/identity-cache-helper';
|
|
6
5
|
const DEFAULT_CACHE_TTL_IN_MONTHS = 6;
|
|
7
6
|
const IDENTITY_CACHE_TTL_IN_SECONDS = 60 * 60 * 24 * 30 * 6;
|
|
@@ -9,14 +8,14 @@ export class IdentityCacheDbService {
|
|
|
9
8
|
TABLE_NAME;
|
|
10
9
|
TABLE_KEY;
|
|
11
10
|
TTL_IN_MONTHS;
|
|
12
|
-
|
|
11
|
+
cacheLambdaClient;
|
|
13
12
|
lambdaInvokeClient;
|
|
14
|
-
constructor(
|
|
13
|
+
constructor(cacheLambdaFunctionArn, tableName, tableKey, cacheTtlInMonths) {
|
|
15
14
|
this.TABLE_NAME = tableName;
|
|
16
15
|
this.TABLE_KEY = tableKey;
|
|
17
|
-
this.
|
|
18
|
-
this.redisClient = new RedisClient(redisHost, redisPort);
|
|
16
|
+
this.cacheLambdaClient = new CacheLambdaClient(cacheLambdaFunctionArn);
|
|
19
17
|
this.lambdaInvokeClient = new LambdaInvokeClient();
|
|
18
|
+
this.TTL_IN_MONTHS = cacheTtlInMonths || DEFAULT_CACHE_TTL_IN_MONTHS;
|
|
20
19
|
}
|
|
21
20
|
getIdentityWithCaching = async (pixelId, incomingIdentity = {}, identifyPrivateLambdaArn) => {
|
|
22
21
|
try {
|
|
@@ -24,12 +23,17 @@ export class IdentityCacheDbService {
|
|
|
24
23
|
Logger.error('getIdentityWithCaching -No pixelId or incomingIdentity', { pixelId, incomingIdentity });
|
|
25
24
|
return undefined;
|
|
26
25
|
}
|
|
27
|
-
|
|
26
|
+
let { resolvedIdentity, updateCache } = await this.getIdentityFromCache(pixelId, incomingIdentity);
|
|
28
27
|
if (!resolvedIdentity) {
|
|
29
28
|
Logger.debug('identity cache miss - fetching from identity service', { incomingIdentity });
|
|
30
|
-
const
|
|
31
|
-
if (
|
|
32
|
-
|
|
29
|
+
const response = await this.lambdaInvokeClient.invokeFunction(identifyPrivateLambdaArn, { pixelId, context: { identity: incomingIdentity } });
|
|
30
|
+
if (response?.statusCode === 200 && response?.body) {
|
|
31
|
+
const identifyResponse = JSON.parse(response.body);
|
|
32
|
+
resolvedIdentity = identifyResponse?.identity;
|
|
33
|
+
updateCache = true;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
Logger.error('Failed to getIdentity from identifyPrivateLambda', { response, pixelId, incomingIdentity, identifyPrivateLambdaArn });
|
|
33
37
|
}
|
|
34
38
|
}
|
|
35
39
|
else {
|
|
@@ -57,39 +61,60 @@ export class IdentityCacheDbService {
|
|
|
57
61
|
response,
|
|
58
62
|
updatedAt: getCurrentTimestamp(),
|
|
59
63
|
};
|
|
64
|
+
const setCacheCommands = [];
|
|
60
65
|
const cacheKey = `identId_${pixelId}_${response.identityId}`;
|
|
61
|
-
|
|
62
|
-
|
|
66
|
+
setCacheCommands.push({
|
|
67
|
+
cacheKey,
|
|
68
|
+
commandType: 'set',
|
|
69
|
+
data: JSON.stringify(identityCache),
|
|
70
|
+
expires: IDENTITY_CACHE_TTL_IN_SECONDS,
|
|
71
|
+
});
|
|
63
72
|
if (request?.identityId) {
|
|
64
73
|
const cacheKey = `identId_${pixelId}_${request.identityId}`;
|
|
65
|
-
|
|
66
|
-
|
|
74
|
+
setCacheCommands.push({
|
|
75
|
+
cacheKey,
|
|
76
|
+
commandType: 'set',
|
|
77
|
+
data: JSON.stringify(identityCache),
|
|
78
|
+
expires: IDENTITY_CACHE_TTL_IN_SECONDS,
|
|
79
|
+
});
|
|
67
80
|
}
|
|
68
81
|
if (response?.traits?.emails && response?.traits?.emails?.length > 0) {
|
|
69
82
|
for (let i = 0; i < response.traits.emails.length; i++) {
|
|
70
83
|
const cacheKey = `identEmail_${pixelId}_${response.traits.emails[i]}`;
|
|
71
|
-
|
|
72
|
-
|
|
84
|
+
setCacheCommands.push({
|
|
85
|
+
cacheKey,
|
|
86
|
+
commandType: 'set',
|
|
87
|
+
data: JSON.stringify(identityCache),
|
|
88
|
+
expires: IDENTITY_CACHE_TTL_IN_SECONDS,
|
|
89
|
+
});
|
|
73
90
|
}
|
|
74
91
|
}
|
|
75
92
|
if (response?.traits?.userIds && response?.traits?.userIds?.length > 0) {
|
|
76
93
|
for (let i = 0; i < response.traits.userIds.length; i++) {
|
|
77
94
|
const cacheKey = `identUserId_${pixelId}_${response.traits.userIds[i]}`;
|
|
78
|
-
|
|
79
|
-
|
|
95
|
+
setCacheCommands.push({
|
|
96
|
+
cacheKey,
|
|
97
|
+
commandType: 'set',
|
|
98
|
+
data: JSON.stringify(identityCache),
|
|
99
|
+
expires: IDENTITY_CACHE_TTL_IN_SECONDS,
|
|
100
|
+
});
|
|
80
101
|
}
|
|
81
102
|
}
|
|
103
|
+
const start = performance.now();
|
|
104
|
+
const res = await this.cacheLambdaClient.batchInvoke(setCacheCommands);
|
|
105
|
+
const end = performance.now();
|
|
106
|
+
Logger.debug('updated identity cache', { res, duration: end - start });
|
|
107
|
+
return res;
|
|
82
108
|
};
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (resolvedIdentity?.identityId) {
|
|
91
|
-
await DynamoDbClient.safeDelete(this.TABLE_NAME, this.TABLE_KEY, resolvedIdentity?.identityId);
|
|
109
|
+
getIdentityCache = async (cacheKey) => {
|
|
110
|
+
const start = performance.now();
|
|
111
|
+
const cacheResponse = await this.cacheLambdaClient.invokeGet(cacheKey);
|
|
112
|
+
const end = performance.now();
|
|
113
|
+
Logger.debug('getIdentityCache', { cacheKey, cacheResponse, duration: end - start });
|
|
114
|
+
if (cacheResponse && cacheResponse.responseData) {
|
|
115
|
+
return cacheResponse.responseData;
|
|
92
116
|
}
|
|
117
|
+
return undefined;
|
|
93
118
|
};
|
|
94
119
|
async getIdentityFromCache(pixelId, incomingIdentity) {
|
|
95
120
|
try {
|
|
@@ -101,13 +126,12 @@ export class IdentityCacheDbService {
|
|
|
101
126
|
if (incomingIdentity?.identityId) {
|
|
102
127
|
const cacheKey = `identId_${pixelId}_${incomingIdentity.identityId}`;
|
|
103
128
|
Logger.debug(' try lookup with identityId', { cacheKey });
|
|
104
|
-
const cachedIdentity = await this.
|
|
129
|
+
const cachedIdentity = await this.getIdentityCache(cacheKey);
|
|
105
130
|
if (cachedIdentity) {
|
|
106
131
|
Logger.debug(' found cached identity', { cacheKey, cachedIdentity });
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
resolvedIdentity = identityCache.response;
|
|
132
|
+
if (!isIdentityCacheStale(cachedIdentity, incomingIdentity)) {
|
|
133
|
+
Logger.debug('cache not stale', { cacheKey, cachedIdentity });
|
|
134
|
+
resolvedIdentity = cachedIdentity.response;
|
|
111
135
|
}
|
|
112
136
|
}
|
|
113
137
|
}
|
|
@@ -115,13 +139,12 @@ export class IdentityCacheDbService {
|
|
|
115
139
|
for (let i = 0; i < incomingIdentity.traits.emails.length; i++) {
|
|
116
140
|
const cacheKey = `identEmail_${pixelId}_${incomingIdentity.traits.emails[i]}`;
|
|
117
141
|
Logger.debug(' try lookup with email', { cacheKey });
|
|
118
|
-
const cachedIdentity = await this.
|
|
142
|
+
const cachedIdentity = await this.getIdentityCache(cacheKey);
|
|
119
143
|
if (cachedIdentity) {
|
|
120
144
|
Logger.debug(' found cached identity', { cacheKey, cachedIdentity });
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
resolvedIdentity = identityCache.response;
|
|
145
|
+
if (!isIdentityCacheStale(cachedIdentity, incomingIdentity)) {
|
|
146
|
+
Logger.debug('cache not stale', { cacheKey, cachedIdentity });
|
|
147
|
+
resolvedIdentity = cachedIdentity.response;
|
|
125
148
|
updateCache = true;
|
|
126
149
|
break;
|
|
127
150
|
}
|
|
@@ -132,28 +155,18 @@ export class IdentityCacheDbService {
|
|
|
132
155
|
for (let i = 0; i < incomingIdentity.traits.userIds.length; i++) {
|
|
133
156
|
const cacheKey = `identUserId_${pixelId}_${incomingIdentity.traits.userIds[i]}`;
|
|
134
157
|
Logger.debug(' try lookup with userId', { cacheKey });
|
|
135
|
-
const cachedIdentity = await this.
|
|
158
|
+
const cachedIdentity = await this.getIdentityCache(cacheKey);
|
|
136
159
|
if (cachedIdentity) {
|
|
137
160
|
Logger.debug(' found cached identity', { cacheKey, cachedIdentity });
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
resolvedIdentity = identityCache.response;
|
|
161
|
+
if (!isIdentityCacheStale(cachedIdentity, incomingIdentity)) {
|
|
162
|
+
Logger.debug('cache not stale', { cacheKey, cachedIdentity });
|
|
163
|
+
resolvedIdentity = cachedIdentity.response;
|
|
142
164
|
updateCache = true;
|
|
143
165
|
break;
|
|
144
166
|
}
|
|
145
167
|
}
|
|
146
168
|
}
|
|
147
169
|
}
|
|
148
|
-
if (!resolvedIdentity) {
|
|
149
|
-
const identityCache = incomingIdentity?.identityId ? await this.getIdentityCacheFromDynamoDb(incomingIdentity?.identityId) : undefined;
|
|
150
|
-
if (identityCache) {
|
|
151
|
-
if (!isIdentityCacheStale(identityCache, incomingIdentity)) {
|
|
152
|
-
resolvedIdentity = identityCache.response;
|
|
153
|
-
updateCache = true;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
170
|
return { resolvedIdentity, updateCache };
|
|
158
171
|
}
|
|
159
172
|
catch (err) {
|
|
@@ -163,36 +176,55 @@ export class IdentityCacheDbService {
|
|
|
163
176
|
}
|
|
164
177
|
async deleteIdentityCache(pixelId, incomingIdentity, resolvedIdentity) {
|
|
165
178
|
await this.deleteIdentityCacheRedis(pixelId, incomingIdentity, resolvedIdentity);
|
|
166
|
-
await this.deleteIdentityCacheDynamoDb(incomingIdentity, resolvedIdentity);
|
|
167
179
|
}
|
|
168
180
|
async deleteIdentityCacheRedis(pixelId, incomingIdentity, resolvedIdentity) {
|
|
169
181
|
try {
|
|
170
182
|
if (!pixelId) {
|
|
171
183
|
return;
|
|
172
184
|
}
|
|
173
|
-
const
|
|
185
|
+
const deleteCacheCommands = [];
|
|
174
186
|
if (incomingIdentity?.traits?.emails && incomingIdentity?.traits?.emails?.length > 0) {
|
|
175
|
-
|
|
187
|
+
const cmds = incomingIdentity.traits.emails.map(email => ({
|
|
188
|
+
cacheKey: `identEmail_${pixelId}_${email}`,
|
|
189
|
+
commandType: 'delete',
|
|
190
|
+
}));
|
|
191
|
+
deleteCacheCommands.push(...cmds);
|
|
176
192
|
}
|
|
177
193
|
if (incomingIdentity?.traits?.userIds && incomingIdentity?.traits?.userIds.length > 0) {
|
|
178
|
-
|
|
194
|
+
const cmds = incomingIdentity.traits.userIds.map(userId => ({
|
|
195
|
+
cacheKey: `identUserId_${pixelId}_${userId}`,
|
|
196
|
+
commandType: 'delete',
|
|
197
|
+
}));
|
|
198
|
+
deleteCacheCommands.push(...cmds);
|
|
179
199
|
}
|
|
180
200
|
if (incomingIdentity?.identityId) {
|
|
181
|
-
|
|
201
|
+
deleteCacheCommands.push({
|
|
202
|
+
cacheKey: `identId_${pixelId}_${incomingIdentity.identityId}`,
|
|
203
|
+
commandType: 'delete',
|
|
204
|
+
});
|
|
182
205
|
}
|
|
183
206
|
if (resolvedIdentity?.traits?.emails && resolvedIdentity?.traits?.emails.length > 0) {
|
|
184
|
-
|
|
207
|
+
const cmds = resolvedIdentity.traits.emails.map(email => ({
|
|
208
|
+
cacheKey: `identEmail_${pixelId}_${email}`,
|
|
209
|
+
commandType: 'delete',
|
|
210
|
+
}));
|
|
211
|
+
deleteCacheCommands.push(...cmds);
|
|
185
212
|
}
|
|
186
213
|
if (resolvedIdentity?.traits?.userIds && resolvedIdentity?.traits?.userIds.length > 0) {
|
|
187
|
-
|
|
214
|
+
const cmds = resolvedIdentity.traits.userIds.map(userId => ({
|
|
215
|
+
cacheKey: `identUserId_${pixelId}_${userId}`,
|
|
216
|
+
commandType: 'delete',
|
|
217
|
+
}));
|
|
218
|
+
deleteCacheCommands.push(...cmds);
|
|
188
219
|
}
|
|
189
220
|
if (resolvedIdentity?.identityId) {
|
|
190
|
-
|
|
221
|
+
deleteCacheCommands.push({
|
|
222
|
+
cacheKey: `identId_${pixelId}_${resolvedIdentity.identityId}`,
|
|
223
|
+
commandType: 'delete',
|
|
224
|
+
});
|
|
191
225
|
}
|
|
192
|
-
if (
|
|
193
|
-
|
|
194
|
-
await this.redisClient.del(keysToDelete[i]);
|
|
195
|
-
}
|
|
226
|
+
if (deleteCacheCommands.length > 0) {
|
|
227
|
+
await this.cacheLambdaClient.batchInvoke(deleteCacheCommands);
|
|
196
228
|
}
|
|
197
229
|
}
|
|
198
230
|
catch (err) {
|
|
@@ -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,
|
|
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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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IPDataResponse } from '@adtrackify/at-tracking-event-types';
|
|
2
|
+
import { CacheLambdaClient } from '../clients';
|
|
2
3
|
export interface IPLookupTableRecord {
|
|
3
4
|
ipAddress: string;
|
|
4
5
|
lookupResponse: IPDataResponse | null;
|
|
@@ -6,5 +7,11 @@ export interface IPLookupTableRecord {
|
|
|
6
7
|
updatedAt: string;
|
|
7
8
|
expiresAt?: number;
|
|
8
9
|
}
|
|
9
|
-
export declare
|
|
10
|
-
|
|
10
|
+
export declare class IpDataLookupService {
|
|
11
|
+
private cacheLambdaFunctionArn;
|
|
12
|
+
cacheLambdaClient: CacheLambdaClient;
|
|
13
|
+
constructor(cacheLambdaFunctionArn: string);
|
|
14
|
+
getLookupApi: (ipAddress: string) => Promise<IPDataResponse | null>;
|
|
15
|
+
getIpCache: (ipAddress: string) => Promise<import("../clients").CacheRequestCommandResponse | undefined>;
|
|
16
|
+
lookupIP: (ipAddress: string) => Promise<IPDataResponse | null>;
|
|
17
|
+
}
|
|
@@ -1,88 +1,68 @@
|
|
|
1
1
|
import { DateTime } from 'luxon';
|
|
2
|
-
import { axiosHttpService,
|
|
2
|
+
import { axiosHttpService, CacheLambdaClient } from '../clients';
|
|
3
3
|
import { Logger } from '../helpers';
|
|
4
4
|
import { getCurrentTimestamp } from '../libs';
|
|
5
5
|
import { isIP } from 'net';
|
|
6
6
|
const API_KEY = 'aae45f1e1f97ecf79bdc2bef3e96ef71961c4cb977c3085429b421bc';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return res?.data;
|
|
7
|
+
export class IpDataLookupService {
|
|
8
|
+
cacheLambdaFunctionArn;
|
|
9
|
+
cacheLambdaClient;
|
|
10
|
+
constructor(cacheLambdaFunctionArn) {
|
|
11
|
+
this.cacheLambdaFunctionArn = cacheLambdaFunctionArn;
|
|
12
|
+
this.cacheLambdaClient = new CacheLambdaClient(cacheLambdaFunctionArn);
|
|
14
13
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
try {
|
|
22
|
-
if (!ipAddress || isIP(ipAddress) === 0) {
|
|
23
|
-
Logger.warn('Unable to lookup IP. Invalid Ip Address', { ipAddress });
|
|
24
|
-
return null;
|
|
14
|
+
getLookupApi = async (ipAddress) => {
|
|
15
|
+
try {
|
|
16
|
+
const client = axiosHttpService();
|
|
17
|
+
const url = `https://api.ipdata.co/${ipAddress}?api-key=${API_KEY}`;
|
|
18
|
+
const res = await client.get(url);
|
|
19
|
+
return res?.data;
|
|
25
20
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return cachedResult.lookupResponse;
|
|
21
|
+
catch (error) {
|
|
22
|
+
Logger.error('IPData Lookup API Failed', { error });
|
|
23
|
+
return null;
|
|
30
24
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const expiresAt = DateTime.now().plus({ days: 15 }).toSeconds();
|
|
41
|
-
lookupTableRecord.expiresAt = expiresAt;
|
|
25
|
+
};
|
|
26
|
+
getIpCache = async (ipAddress) => {
|
|
27
|
+
return this.cacheLambdaClient.invokeGet(`ipdata-${ipAddress}`);
|
|
28
|
+
};
|
|
29
|
+
lookupIP = async (ipAddress) => {
|
|
30
|
+
try {
|
|
31
|
+
if (!ipAddress || isIP(ipAddress) === 0) {
|
|
32
|
+
Logger.warn('Unable to lookup IP. Invalid Ip Address', { ipAddress });
|
|
33
|
+
return null;
|
|
42
34
|
}
|
|
35
|
+
const cacheResponse = await this.getIpCache(ipAddress);
|
|
36
|
+
const cachedResult = cacheResponse?.responseData;
|
|
37
|
+
const cacheExpirationDate = DateTime.utc().minus({ days: 6 }).toJSDate().toISOString();
|
|
38
|
+
if (cachedResult && cachedResult?.updatedAt > cacheExpirationDate) {
|
|
39
|
+
return cachedResult.lookupResponse;
|
|
40
|
+
}
|
|
41
|
+
const lookupResponse = await this.getLookupApi(ipAddress);
|
|
42
|
+
const expires = 60 * 60 * 24 * 15;
|
|
43
|
+
let lookupTableRecord;
|
|
44
|
+
if (cachedResult) {
|
|
45
|
+
lookupTableRecord = {
|
|
46
|
+
...cachedResult,
|
|
47
|
+
lookupResponse,
|
|
48
|
+
updatedAt: getCurrentTimestamp(),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
lookupTableRecord = {
|
|
53
|
+
ipAddress,
|
|
54
|
+
lookupResponse,
|
|
55
|
+
createdAt: getCurrentTimestamp(),
|
|
56
|
+
updatedAt: getCurrentTimestamp()
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
await this.cacheLambdaClient.invokeSet(`ipdata-${ipAddress}`, JSON.stringify(lookupTableRecord), expires);
|
|
60
|
+
return lookupResponse;
|
|
43
61
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
lookupTableRecord = {
|
|
47
|
-
ipAddress,
|
|
48
|
-
lookupResponse,
|
|
49
|
-
createdAt: getCurrentTimestamp(),
|
|
50
|
-
updatedAt: getCurrentTimestamp(),
|
|
51
|
-
expiresAt
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
await DynamoDbClient.safePut(IP_LOOKUP_TABLE_NAME, lookupTableRecord);
|
|
55
|
-
return lookupResponse;
|
|
56
|
-
}
|
|
57
|
-
catch (e) {
|
|
58
|
-
Logger.error('Failed to lookup IP', { error: e });
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
export const updateIPCache = async (ipAddress, data) => {
|
|
63
|
-
try {
|
|
64
|
-
if (!ipAddress || isIP(ipAddress) === 0) {
|
|
65
|
-
Logger.warn('Unable to update IP cache. Invalid Ip Address', { ipAddress, data });
|
|
62
|
+
catch (e) {
|
|
63
|
+
Logger.error('Failed to lookup IP', { error: e });
|
|
66
64
|
return null;
|
|
67
65
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if (cachedResult) {
|
|
71
|
-
const updatedLookupResponse = cachedResult?.lookupResponse ?? { asn: {} };
|
|
72
|
-
Object.assign(updatedLookupResponse, data);
|
|
73
|
-
const updatedLookupTableRecord = {
|
|
74
|
-
...cachedResult,
|
|
75
|
-
lookupResponse,
|
|
76
|
-
updatedAt: getCurrentTimestamp()
|
|
77
|
-
};
|
|
78
|
-
lookupResponse = updatedLookupResponse;
|
|
79
|
-
await DynamoDbClient.safePut(IP_LOOKUP_TABLE_NAME, updatedLookupTableRecord);
|
|
80
|
-
}
|
|
81
|
-
return lookupResponse;
|
|
82
|
-
}
|
|
83
|
-
catch (error) {
|
|
84
|
-
Logger.error('Failed to update IP cache', { error });
|
|
85
|
-
return null;
|
|
86
|
-
}
|
|
87
|
-
};
|
|
66
|
+
};
|
|
67
|
+
}
|
|
88
68
|
//# sourceMappingURL=ipdata-lookup-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipdata-lookup-service.js","sourceRoot":"","sources":["../../../src/services/ipdata-lookup-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"ipdata-lookup-service.js","sourceRoot":"","sources":["../../../src/services/ipdata-lookup-service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adtrackify/at-service-common",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.80",
|
|
4
4
|
"description": "",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/*"
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@adtrackify/at-shared-utils": "^3.0.33",
|
|
39
|
+
"@aws-sdk/util-utf8": "^3.374.0",
|
|
39
40
|
"ioredis": "^5.4.1",
|
|
40
41
|
"pako": "^2.1.0",
|
|
41
42
|
"shopify-api-node": "^3.12.7"
|