Skip to content

Commit

Permalink
feat: gaec migration
Browse files Browse the repository at this point in the history
  • Loading branch information
AASHISH MALIK committed Nov 4, 2024
1 parent ba694a5 commit 6dfba0f
Show file tree
Hide file tree
Showing 2 changed files with 205 additions and 162 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,18 +36,14 @@ const updateMappingJson = (mapping) => {
const responseBuilder = async (metadata, message, { Config }, payload) => {
const response = defaultRequestConfig();
const { event } = message;
const { subAccount } = Config;
let { customerId, loginCustomerId } = Config;
if (isNumber(customerId)) {
customerId = customerId.toString();
}
if (isNumber(loginCustomerId)) {
loginCustomerId = loginCustomerId.toString();
}
if (!isString(customerId) || !isString(loginCustomerId)) {
throw new InstrumentationError('customerId and loginCustomerId should be a string or number');
if (isDefinedAndNotNull(Config.configData)) {

Check failure on line 39 in src/v0/destinations/google_adwords_enhanced_conversions/transform.js

View workflow job for this annotation

GitHub Actions / Check for formatting & lint errors

'isDefinedAndNotNull' is not defined

Check failure on line 39 in src/v0/destinations/google_adwords_enhanced_conversions/transform.js

View workflow job for this annotation

GitHub Actions / Code Coverage

'isDefinedAndNotNull' is not defined
const configDetails = JSON.parse(Config.configData);
Config.customerId = configDetails.customerId;
if (configDetails.loginCustomerId) {
Config.loginCustomerId = configDetails.loginCustomerId;
}
}
const filteredCustomerId = removeHyphens(customerId);
const filteredCustomerId = removeHyphens(Config.customerId);
response.endpoint = `${BASE_ENDPOINT}/${filteredCustomerId}:uploadConversionAdjustments`;
response.body.JSON = payload;
const accessToken = getAccessToken(metadata, 'access_token');
Expand All @@ -57,12 +53,10 @@ const responseBuilder = async (metadata, message, { Config }, payload) => {
'developer-token': getValueFromMessage(metadata, 'secret.developer_token'),
};
response.params = { event, customerId: filteredCustomerId };
if (subAccount)
if (loginCustomerId) {
const filteredLoginCustomerId = removeHyphens(loginCustomerId);
response.headers['login-customer-id'] = filteredLoginCustomerId;
} else throw new ConfigurationError(`LoginCustomerId is required as subAccount is true.`);

if (Config.loginCustomerId) {
const filteredLoginCustomerId = removeHyphens(Config.loginCustomerId);
response.headers['login-customer-id'] = filteredLoginCustomerId;
}
return response;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -683,151 +683,6 @@ export const data = [
},
},
},
{
name: 'google_adwords_enhanced_conversions',
description: 'Test 4',
feature: 'processor',
module: 'destination',
version: 'v0',
input: {
request: {
body: [
{
metadata: {
secret: {
access_token: 'abcd1234',
refresh_token: 'efgh5678',
developer_token: 'ijkl91011',
},
},
destination: {
Config: {
rudderAccountId: '25u5whFH7gVTnCiAjn4ykoCLGoC',
customerId: '1234567890',
subAccount: true,
loginCustomerId: '',
listOfConversions: [
{
conversions: 'Page View',
},
{
conversions: 'Product Added',
},
],
authStatus: 'active',
},
},
message: {
channel: 'web',
context: {
app: {
build: '1.0.0',
name: 'RudderLabs JavaScript SDK',
namespace: 'com.rudderlabs.javascript',
version: '1.0.0',
},
traits: {
firstName: 'John',
lastName: 'Gomes',
city: 'London',
state: 'UK',
streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK',
},
library: {
name: 'RudderLabs JavaScript SDK',
version: '1.0.0',
},
userAgent:
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36',
locale: 'en-US',
ip: '0.0.0.0',
os: {
name: '',
version: '',
},
screen: {
density: 2,
},
},
event: 'Product Added',
type: 'track',
messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71',
originalTimestamp: '2019-10-14T11:15:18.299Z',
anonymousId: '00000000000000000000000000',
userId: '12345',
properties: {
gclid: 'gclid1234',
conversionDateTime: '2022-01-01 12:32:45-08:00',
adjustedValue: '10',
currencyCode: 'INR',
adjustmentDateTime: '2022-01-01 12:32:45-08:00',
partialFailure: true,
campaignId: '1',
templateId: '0',
orderId: 10000,
total: 1000,
products: [
{
product_id: '507f1f77bcf86cd799439011',
sku: '45790-32',
name: 'Monopoly: 3rd Edition',
price: '19',
position: '1',
category: 'cars',
url: 'https://www.example.com/product/path',
image_url: 'https://www.example.com/product/path.jpg',
quantity: '2',
},
{
product_id: '507f1f77bcf86cd7994390112',
sku: '45790-322',
name: 'Monopoly: 3rd Edition2',
price: '192',
quantity: 22,
position: '12',
category: 'Cars2',
url: 'https://www.example.com/product/path2',
image_url: 'https://www.example.com/product/path.jpg2',
},
],
},
integrations: {
All: true,
},
name: 'ApplicationLoaded',
sentAt: '2019-10-14T11:15:53.296Z',
},
},
],
},
},
output: {
response: {
status: 200,
body: [
{
metadata: {
secret: {
access_token: 'abcd1234',
refresh_token: 'efgh5678',
developer_token: 'ijkl91011',
},
},
statusCode: 400,
error: 'LoginCustomerId is required as subAccount is true.',
statTags: {
errorCategory: 'dataValidation',
errorType: 'configuration',
destType: 'GOOGLE_ADWORDS_ENHANCED_CONVERSIONS',
module: 'destination',
implementation: 'native',
feature: 'processor',
},
},
],
},
},
},
{
name: 'google_adwords_enhanced_conversions',
description: 'Test 5',
Expand Down Expand Up @@ -1720,4 +1575,198 @@ export const data = [
},
},
},
{
name: 'google_adwords_enhanced_conversions',
description: 'Success test with configDetails',
feature: 'processor',
module: 'destination',
version: 'v0',
input: {
request: {
body: [
{
metadata: {
secret: {
access_token: 'abcd1234',
refresh_token: 'efgh5678',
developer_token: 'ijkl91011',
},
},
destination: {
Config: {
rudderAccountId: '25u5whFH7gVTnCiAjn4ykoCLGoC',
listOfConversions: ['Page View', 'Product Added'],
authStatus: 'active',
configData: {
customerId: '21212313',
loginCustomerId: '65757557',
},
},
},
message: {
channel: 'web',
context: {
app: {
build: '1.0.0',
name: 'RudderLabs JavaScript SDK',
namespace: 'com.rudderlabs.javascript',
version: '1.0.0',
},
traits: {
phone: '912382193',
firstName: 'John',
lastName: 'Gomes',
city: 'London',
state: 'UK',
countryCode: 'us',
streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK',
},
library: {
name: 'RudderLabs JavaScript SDK',
version: '1.0.0',
},
userAgent:
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36',
locale: 'en-US',
ip: '0.0.0.0',
os: {
name: '',
version: '',
},
screen: {
density: 2,
},
},
event: 'Page View',
type: 'track',
messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71',
originalTimestamp: '2019-10-14T11:15:18.299Z',
anonymousId: '00000000000000000000000000',
userId: '12345',
properties: {
gclid: 'gclid1234',
conversionDateTime: '2022-01-01 12:32:45-08:00',
adjustedValue: '10',
currency: 'INR',
adjustmentDateTime: '2022-01-01 12:32:45-08:00',
partialFailure: true,
campaignId: '1',
templateId: '0',
order_id: 10000,
total: 1000,
products: [
{
product_id: '507f1f77bcf86cd799439011',
sku: '45790-32',
name: 'Monopoly: 3rd Edition',
price: '19',
position: '1',
category: 'cars',
url: 'https://www.example.com/product/path',
image_url: 'https://www.example.com/product/path.jpg',
quantity: '2',
},
{
product_id: '507f1f77bcf86cd7994390112',
sku: '45790-322',
name: 'Monopoly: 3rd Edition2',
price: '192',
quantity: 22,
position: '12',
category: 'Cars2',
url: 'https://www.example.com/product/path2',
image_url: 'https://www.example.com/product/path.jpg2',
},
],
},
integrations: {
All: true,
},
name: 'ApplicationLoaded',
sentAt: '2019-10-14T11:15:53.296Z',
},
},
],
},
},
output: {
response: {
status: 200,
body: [
{
output: {
version: '1',
type: 'REST',
method: 'POST',
endpoint: `https://googleads.googleapis.com/${API_VERSION}/customers/1234567890:uploadConversionAdjustments`,
headers: {
Authorization: 'Bearer abcd1234',
'Content-Type': 'application/json',
'developer-token': 'ijkl91011',
'login-customer-id': '1234567890',
},
params: {
event: 'Page View',
customerId: '1234567890',
},
body: {
JSON: {
conversionAdjustments: [
{
gclidDateTimePair: {
gclid: 'gclid1234',
conversionDateTime: '2022-01-01 12:32:45-08:00',
},
restatementValue: {
adjustedValue: 10,
currencyCode: 'INR',
},
orderId: '10000',
adjustmentDateTime: '2022-01-01 12:32:45-08:00',
userAgent:
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36',
userIdentifiers: [
{
hashedPhoneNumber:
'04387707e6cbed8c4538c81cc570ed9252d579469f36c273839b26d784e4bdbe',
},
{
addressInfo: {
hashedFirstName:
'a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da',
hashedLastName:
'1c574b17eefa532b6d61c963550a82d2d3dfca4a7fb69e183374cfafd5328ee4',
state: 'UK',
city: 'London',
countryCode: 'us',
hashedStreetAddress:
'9a4d2e50828448f137f119a3ebdbbbab8d6731234a67595fdbfeb2a2315dd550',
},
},
],
adjustmentType: 'ENHANCEMENT',
},
],
partialFailure: true,
},
JSON_ARRAY: {},
XML: {},
FORM: {},
},
files: {},
userId: '',
},
metadata: {
secret: {
access_token: 'abcd1234',
refresh_token: 'efgh5678',
developer_token: 'ijkl91011',
},
},
statusCode: 200,
},
],
},
},
},
];

0 comments on commit 6dfba0f

Please sign in to comment.