@adtrackify/at-service-common 3.4.0 → 3.4.1
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/internal-api/identity-client.d.ts +12 -5
- package/dist/cjs/clients/internal-api/identity-client.js +32 -25
- package/dist/cjs/clients/internal-api/identity-client.js.map +1 -1
- package/dist/esm/clients/internal-api/identity-client.d.ts +12 -5
- package/dist/esm/clients/internal-api/identity-client.js +32 -25
- package/dist/esm/clients/internal-api/identity-client.js.map +1 -1
- package/package.json +1 -1
|
@@ -11,15 +11,22 @@ export interface MergeIdentityResponse {
|
|
|
11
11
|
isIdentityMerged: boolean;
|
|
12
12
|
identity?: EventIdentity;
|
|
13
13
|
}
|
|
14
|
+
export interface IdentityLookupByEmailResponse {
|
|
15
|
+
identities: EventIdentity[];
|
|
16
|
+
}
|
|
14
17
|
export declare class IdentityClient {
|
|
15
|
-
|
|
16
|
-
|
|
18
|
+
BASE_API_URL: string;
|
|
19
|
+
SERVICE_API_ROOT_URL: string;
|
|
20
|
+
IDENTITY_API_KEY?: string;
|
|
17
21
|
client: GenericHttpClient;
|
|
18
22
|
constructor(baseApiUrl: string, identityApiKey?: string);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
23
|
+
getHeaders: () => {
|
|
24
|
+
'x-api-key': string;
|
|
25
|
+
} | {
|
|
26
|
+
'x-api-key'?: undefined;
|
|
27
|
+
};
|
|
22
28
|
getIdentity: (pixelId: string, eventContext: EventContext | undefined) => Promise<any>;
|
|
23
29
|
identityAddPurchasedTraits: (pixelId: string, identityId: string, purchasedContactId: string, traits: PurchasedTraits, mergeToIdentityTraitsEnabled: boolean) => Promise<AddPurchasedTraitsResponse | null>;
|
|
24
30
|
mergeIdentity: (pixelId: string, primaryIdentityId: string, secondaryIdentityId: string) => Promise<MergeIdentityResponse | null>;
|
|
31
|
+
getIdentitiesByEmail: (email: string, pixelId?: string) => Promise<IdentityLookupByEmailResponse | null>;
|
|
25
32
|
}
|
|
@@ -4,41 +4,34 @@ exports.IdentityClient = void 0;
|
|
|
4
4
|
const libs_1 = require("../../libs");
|
|
5
5
|
const generic_1 = require("../generic");
|
|
6
6
|
const helpers_1 = require("../../helpers");
|
|
7
|
+
const client = (0, generic_1.axiosHttpService)({
|
|
8
|
+
headers: {
|
|
9
|
+
'Content-Type': 'application/json',
|
|
10
|
+
},
|
|
11
|
+
});
|
|
7
12
|
class IdentityClient {
|
|
8
13
|
BASE_API_URL;
|
|
14
|
+
SERVICE_API_ROOT_URL;
|
|
9
15
|
IDENTITY_API_KEY;
|
|
10
16
|
client;
|
|
11
17
|
constructor(baseApiUrl, identityApiKey) {
|
|
12
18
|
this.BASE_API_URL = baseApiUrl;
|
|
13
19
|
this.IDENTITY_API_KEY = identityApiKey;
|
|
14
|
-
this.
|
|
20
|
+
this.SERVICE_API_ROOT_URL = `${this.BASE_API_URL}/identities`;
|
|
21
|
+
this.client = client;
|
|
22
|
+
this.client.setBaseUrl(this.BASE_API_URL);
|
|
15
23
|
}
|
|
16
|
-
|
|
17
|
-
const IDENTITY_SERVICE_URL = `${this.BASE_API_URL}/identities`;
|
|
18
|
-
const params = {
|
|
19
|
-
baseURL: IDENTITY_SERVICE_URL,
|
|
20
|
-
};
|
|
24
|
+
getHeaders = () => {
|
|
21
25
|
if (this.IDENTITY_API_KEY) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
'x-api-key': this.IDENTITY_API_KEY,
|
|
25
|
-
},
|
|
26
|
+
return {
|
|
27
|
+
'x-api-key': this.IDENTITY_API_KEY,
|
|
26
28
|
};
|
|
27
29
|
}
|
|
28
|
-
return
|
|
29
|
-
};
|
|
30
|
-
_getClient = () => {
|
|
31
|
-
this.client = this.client ?? (0, generic_1.axiosHttpService)(this.getConfig());
|
|
32
|
-
return this.client;
|
|
33
|
-
};
|
|
34
|
-
_getIdentity = async (postBody) => {
|
|
35
|
-
const client = this._getClient();
|
|
36
|
-
const response = await client.post('/', postBody);
|
|
37
|
-
return response;
|
|
30
|
+
return {};
|
|
38
31
|
};
|
|
39
32
|
getIdentity = async (pixelId, eventContext) => {
|
|
40
33
|
try {
|
|
41
|
-
const identityResponse = await this.
|
|
34
|
+
const identityResponse = await this.client.post('/', { pixelId, context: eventContext || {} }, { headers: this.getHeaders() });
|
|
42
35
|
if (identityResponse.status != libs_1.HttpStatusCodes.OK) {
|
|
43
36
|
const msg = 'HTTP Status Code Failed while retrieving identity data';
|
|
44
37
|
helpers_1.Logger.error(msg, { identityResponse });
|
|
@@ -56,8 +49,7 @@ class IdentityClient {
|
|
|
56
49
|
};
|
|
57
50
|
identityAddPurchasedTraits = async (pixelId, identityId, purchasedContactId, traits, mergeToIdentityTraitsEnabled) => {
|
|
58
51
|
try {
|
|
59
|
-
const
|
|
60
|
-
const response = await client.post('/purchased-traits', { pixelId, identityId, purchasedContactId, traits, mergeToIdentityTraitsEnabled });
|
|
52
|
+
const response = await this.client.post('/purchased-traits', { pixelId, identityId, purchasedContactId, traits, mergeToIdentityTraitsEnabled }, { headers: this.getHeaders() });
|
|
61
53
|
if (response.status === libs_1.HttpStatusCodes.OK) {
|
|
62
54
|
return response.data;
|
|
63
55
|
}
|
|
@@ -73,8 +65,7 @@ class IdentityClient {
|
|
|
73
65
|
};
|
|
74
66
|
mergeIdentity = async (pixelId, primaryIdentityId, secondaryIdentityId) => {
|
|
75
67
|
try {
|
|
76
|
-
const
|
|
77
|
-
const response = await client.post('/merge-identity', { pixelId, primaryIdentityId, secondaryIdentityId });
|
|
68
|
+
const response = await this.client.post('/merge-identity', { pixelId, primaryIdentityId, secondaryIdentityId }, { headers: this.getHeaders() });
|
|
78
69
|
if (response.status === libs_1.HttpStatusCodes.OK) {
|
|
79
70
|
return response.data;
|
|
80
71
|
}
|
|
@@ -88,6 +79,22 @@ class IdentityClient {
|
|
|
88
79
|
return null;
|
|
89
80
|
}
|
|
90
81
|
};
|
|
82
|
+
getIdentitiesByEmail = async (email, pixelId) => {
|
|
83
|
+
try {
|
|
84
|
+
const response = await this.client.get('/identities-by-email', { params: { pixelId, email }, headers: this.getHeaders() });
|
|
85
|
+
if (response.status === libs_1.HttpStatusCodes.OK) {
|
|
86
|
+
return response.data;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
helpers_1.Logger.error('HTTP status code failed while looking up identity by email', { response, pixelId, email });
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
helpers_1.Logger.error('Error while looking up identity by email', { error, email });
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
91
98
|
}
|
|
92
99
|
exports.IdentityClient = IdentityClient;
|
|
93
100
|
//# sourceMappingURL=identity-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-client.js","sourceRoot":"","sources":["../../../../src/clients/internal-api/identity-client.ts"],"names":[],"mappings":";;;AACA,qCAA6C;AAC7C,wCAAiE;AACjE,2CAAuC;
|
|
1
|
+
{"version":3,"file":"identity-client.js","sourceRoot":"","sources":["../../../../src/clients/internal-api/identity-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,15 +11,22 @@ export interface MergeIdentityResponse {
|
|
|
11
11
|
isIdentityMerged: boolean;
|
|
12
12
|
identity?: EventIdentity;
|
|
13
13
|
}
|
|
14
|
+
export interface IdentityLookupByEmailResponse {
|
|
15
|
+
identities: EventIdentity[];
|
|
16
|
+
}
|
|
14
17
|
export declare class IdentityClient {
|
|
15
|
-
|
|
16
|
-
|
|
18
|
+
BASE_API_URL: string;
|
|
19
|
+
SERVICE_API_ROOT_URL: string;
|
|
20
|
+
IDENTITY_API_KEY?: string;
|
|
17
21
|
client: GenericHttpClient;
|
|
18
22
|
constructor(baseApiUrl: string, identityApiKey?: string);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
23
|
+
getHeaders: () => {
|
|
24
|
+
'x-api-key': string;
|
|
25
|
+
} | {
|
|
26
|
+
'x-api-key'?: undefined;
|
|
27
|
+
};
|
|
22
28
|
getIdentity: (pixelId: string, eventContext: EventContext | undefined) => Promise<any>;
|
|
23
29
|
identityAddPurchasedTraits: (pixelId: string, identityId: string, purchasedContactId: string, traits: PurchasedTraits, mergeToIdentityTraitsEnabled: boolean) => Promise<AddPurchasedTraitsResponse | null>;
|
|
24
30
|
mergeIdentity: (pixelId: string, primaryIdentityId: string, secondaryIdentityId: string) => Promise<MergeIdentityResponse | null>;
|
|
31
|
+
getIdentitiesByEmail: (email: string, pixelId?: string) => Promise<IdentityLookupByEmailResponse | null>;
|
|
25
32
|
}
|
|
@@ -1,41 +1,34 @@
|
|
|
1
1
|
import { HttpStatusCodes } from '../../libs';
|
|
2
2
|
import { axiosHttpService } from '../generic';
|
|
3
3
|
import { Logger } from '../../helpers';
|
|
4
|
+
const client = axiosHttpService({
|
|
5
|
+
headers: {
|
|
6
|
+
'Content-Type': 'application/json',
|
|
7
|
+
},
|
|
8
|
+
});
|
|
4
9
|
export class IdentityClient {
|
|
5
10
|
BASE_API_URL;
|
|
11
|
+
SERVICE_API_ROOT_URL;
|
|
6
12
|
IDENTITY_API_KEY;
|
|
7
13
|
client;
|
|
8
14
|
constructor(baseApiUrl, identityApiKey) {
|
|
9
15
|
this.BASE_API_URL = baseApiUrl;
|
|
10
16
|
this.IDENTITY_API_KEY = identityApiKey;
|
|
11
|
-
this.
|
|
17
|
+
this.SERVICE_API_ROOT_URL = `${this.BASE_API_URL}/identities`;
|
|
18
|
+
this.client = client;
|
|
19
|
+
this.client.setBaseUrl(this.BASE_API_URL);
|
|
12
20
|
}
|
|
13
|
-
|
|
14
|
-
const IDENTITY_SERVICE_URL = `${this.BASE_API_URL}/identities`;
|
|
15
|
-
const params = {
|
|
16
|
-
baseURL: IDENTITY_SERVICE_URL,
|
|
17
|
-
};
|
|
21
|
+
getHeaders = () => {
|
|
18
22
|
if (this.IDENTITY_API_KEY) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
'x-api-key': this.IDENTITY_API_KEY,
|
|
22
|
-
},
|
|
23
|
+
return {
|
|
24
|
+
'x-api-key': this.IDENTITY_API_KEY,
|
|
23
25
|
};
|
|
24
26
|
}
|
|
25
|
-
return
|
|
26
|
-
};
|
|
27
|
-
_getClient = () => {
|
|
28
|
-
this.client = this.client ?? axiosHttpService(this.getConfig());
|
|
29
|
-
return this.client;
|
|
30
|
-
};
|
|
31
|
-
_getIdentity = async (postBody) => {
|
|
32
|
-
const client = this._getClient();
|
|
33
|
-
const response = await client.post('/', postBody);
|
|
34
|
-
return response;
|
|
27
|
+
return {};
|
|
35
28
|
};
|
|
36
29
|
getIdentity = async (pixelId, eventContext) => {
|
|
37
30
|
try {
|
|
38
|
-
const identityResponse = await this.
|
|
31
|
+
const identityResponse = await this.client.post('/', { pixelId, context: eventContext || {} }, { headers: this.getHeaders() });
|
|
39
32
|
if (identityResponse.status != HttpStatusCodes.OK) {
|
|
40
33
|
const msg = 'HTTP Status Code Failed while retrieving identity data';
|
|
41
34
|
Logger.error(msg, { identityResponse });
|
|
@@ -53,8 +46,7 @@ export class IdentityClient {
|
|
|
53
46
|
};
|
|
54
47
|
identityAddPurchasedTraits = async (pixelId, identityId, purchasedContactId, traits, mergeToIdentityTraitsEnabled) => {
|
|
55
48
|
try {
|
|
56
|
-
const
|
|
57
|
-
const response = await client.post('/purchased-traits', { pixelId, identityId, purchasedContactId, traits, mergeToIdentityTraitsEnabled });
|
|
49
|
+
const response = await this.client.post('/purchased-traits', { pixelId, identityId, purchasedContactId, traits, mergeToIdentityTraitsEnabled }, { headers: this.getHeaders() });
|
|
58
50
|
if (response.status === HttpStatusCodes.OK) {
|
|
59
51
|
return response.data;
|
|
60
52
|
}
|
|
@@ -70,8 +62,7 @@ export class IdentityClient {
|
|
|
70
62
|
};
|
|
71
63
|
mergeIdentity = async (pixelId, primaryIdentityId, secondaryIdentityId) => {
|
|
72
64
|
try {
|
|
73
|
-
const
|
|
74
|
-
const response = await client.post('/merge-identity', { pixelId, primaryIdentityId, secondaryIdentityId });
|
|
65
|
+
const response = await this.client.post('/merge-identity', { pixelId, primaryIdentityId, secondaryIdentityId }, { headers: this.getHeaders() });
|
|
75
66
|
if (response.status === HttpStatusCodes.OK) {
|
|
76
67
|
return response.data;
|
|
77
68
|
}
|
|
@@ -85,5 +76,21 @@ export class IdentityClient {
|
|
|
85
76
|
return null;
|
|
86
77
|
}
|
|
87
78
|
};
|
|
79
|
+
getIdentitiesByEmail = async (email, pixelId) => {
|
|
80
|
+
try {
|
|
81
|
+
const response = await this.client.get('/identities-by-email', { params: { pixelId, email }, headers: this.getHeaders() });
|
|
82
|
+
if (response.status === HttpStatusCodes.OK) {
|
|
83
|
+
return response.data;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
Logger.error('HTTP status code failed while looking up identity by email', { response, pixelId, email });
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
Logger.error('Error while looking up identity by email', { error, email });
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
};
|
|
88
95
|
}
|
|
89
96
|
//# sourceMappingURL=identity-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-client.js","sourceRoot":"","sources":["../../../../src/clients/internal-api/identity-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAqB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"identity-client.js","sourceRoot":"","sources":["../../../../src/clients/internal-api/identity-client.ts"],"names":[],"mappings":"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"}
|