Skip to content

Commit

Permalink
Merge branch 'develop' into chore.component-test-with-mock-part1
Browse files Browse the repository at this point in the history
  • Loading branch information
ItsSudip authored Dec 19, 2023
2 parents 4996514 + 3676039 commit 536feb0
Show file tree
Hide file tree
Showing 96 changed files with 50,390 additions and 41,300 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/create-hotfix-branch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest

# Only allow these users to create new hotfix branch from 'main'
if: github.ref == 'refs/heads/main' && (github.actor == 'ItsSudip' || github.actor == 'krishna2020' || github.actor == 'saikumarrs' || github.actor == 'sandeepdsvs' || github.actor == 'shrouti1507' || github.actor == 'anantjain45823' || github.actor == 'chandumlg' || github.actor == 'mihir-4116' || github.actor == 'ujjwal-ab') && (github.triggering_actor == 'ItsSudip' || github.triggering_actor == 'krishna2020' || github.triggering_actor == 'saikumarrs' || github.triggering_actor == 'sandeepdsvs' || github.triggering_actor == 'shrouti1507' || github.triggering_actor == 'anantjain45823' || github.triggering_actor == 'chandumlg' || github.triggering_actor == 'mihir-4116' || github.triggering_actor == 'ujjwal-ab')
if: github.ref == 'refs/heads/main' && (github.actor == 'ItsSudip' || github.actor == 'krishna2020' || github.actor == 'koladilip' || github.actor == 'saikumarrs' || github.actor == 'sandeepdsvs' || github.actor == 'shrouti1507' || github.actor == 'anantjain45823' || github.actor == 'chandumlg' || github.actor == 'mihir-4116' || github.actor == 'ujjwal-ab') && (github.triggering_actor == 'ItsSudip' || github.triggering_actor == 'krishna2020' || github.triggering_actor == 'saikumarrs' || github.triggering_actor == 'sandeepdsvs' || github.triggering_actor == 'koladilip' || github.triggering_actor == 'shrouti1507' || github.triggering_actor == 'anantjain45823' || github.triggering_actor == 'chandumlg' || github.triggering_actor == 'mihir-4116' || github.triggering_actor == 'ujjwal-ab')
steps:
- name: Create Branch
uses: peterjgrainger/[email protected]
Expand Down
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,25 @@

All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.

### [1.52.3](https://github.com/rudderlabs/rudder-transformer/compare/v1.52.2...v1.52.3) (2023-12-18)


### Bug Fixes

* email validation for braze ([#2929](https://github.com/rudderlabs/rudder-transformer/issues/2929)) ([28207d0](https://github.com/rudderlabs/rudder-transformer/commit/28207d02a1b39b25325fa30be12c4dccd05c844e))
* pinterest event value is restricted to string ([#2933](https://github.com/rudderlabs/rudder-transformer/issues/2933)) ([7f6d519](https://github.com/rudderlabs/rudder-transformer/commit/7f6d519b811a5d8f83f7a2103d9ba50efed8a923))
* remove log from dcm_floodlight ([#2934](https://github.com/rudderlabs/rudder-transformer/issues/2934)) ([c5d9a3c](https://github.com/rudderlabs/rudder-transformer/commit/c5d9a3cc7d0270238c102cec809edcccad5b270d))
* tiktok remove lowercasing for custom events ([#2930](https://github.com/rudderlabs/rudder-transformer/issues/2930)) ([1a90719](https://github.com/rudderlabs/rudder-transformer/commit/1a9071931e9768a3fd02b749b4b705e8c28d9763))

### [1.52.2](https://github.com/rudderlabs/rudder-transformer/compare/v1.52.1...v1.52.2) (2023-12-15)


### Bug Fixes

* braze dedup for adding non-billable attributes ([#2921](https://github.com/rudderlabs/rudder-transformer/issues/2921)) ([4196b1b](https://github.com/rudderlabs/rudder-transformer/commit/4196b1bfec2fc3f7c2c5d0b305853b39033e894c))
* inclusion of right status-code & error details in proxy response ([#2916](https://github.com/rudderlabs/rudder-transformer/issues/2916)) ([5d295c2](https://github.com/rudderlabs/rudder-transformer/commit/5d295c232ff91bfb8564d4d6fcce49dc1e07958b))
* supportTransformerProxyV1 set to false ([#2920](https://github.com/rudderlabs/rudder-transformer/issues/2920)) ([90ee7ad](https://github.com/rudderlabs/rudder-transformer/commit/90ee7ad13921830c920ee60361adb0e0c5dc1d43))

### [1.52.1](https://github.com/rudderlabs/rudder-transformer/compare/v1.52.0...v1.52.1) (2023-12-14)


Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "rudder-transformer",
"version": "1.52.1",
"version": "1.52.3",
"description": "",
"homepage": "https://github.com/rudderlabs/rudder-transformer#readme",
"bugs": {
Expand Down
1 change: 0 additions & 1 deletion src/cdk/v2/destinations/dcm_floodlight/procWorkflow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,6 @@ steps:
$.transformCustomVariable(conversionEvent.customVariables || [], .message)
);
$.context.salesTag = conversionEvent.salesTag;
console.log("$.context.salesTag", $.context.salesTag);
- name: handleSalesTag
condition: $.context.salesTag
template: |
Expand Down
5 changes: 4 additions & 1 deletion src/cdk/v2/destinations/pinterest_tag/procWorkflow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ bindings:
path: ../../../../v0/util
- name: removeUndefinedAndNullAndEmptyValues
path: ../../../../v0/util
- name: validateEventName
path: ../../../../v0/util
steps:
- name: checkIfProcessed
condition: .message.statusCode
Expand Down Expand Up @@ -175,6 +177,7 @@ steps:
name: eventNamesForOthers
template: |
let event = .message.event ?? .message.name;
$.validateEventName(event);
let eventInLowerCase = event.toLowerCase();
let eventNames = .destination.Config.eventsMapping.(){.from === event}.to[] ?? [];
eventNames = $.convertToSnakeCase(eventNames);
Expand Down Expand Up @@ -243,4 +246,4 @@ steps:
},
"params": $.outputs.checkSendTestEventConfig,
"files": {}
})[]
})[]
2 changes: 1 addition & 1 deletion src/controllers/delivery.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ export class DeliveryController {
);
}
ctx.body = { output: deliveryResponse };
ControllerUtility.deliveryPostProcess(ctx);
ControllerUtility.deliveryPostProcess(ctx, deliveryResponse.status);

logger.debug('Native(Delivery):: Response from transformer::', JSON.stringify(ctx.body));
return ctx;
Expand Down
2 changes: 1 addition & 1 deletion src/features.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,5 +66,5 @@
"REDDIT": true
},
"supportSourceTransformV1": true,
"supportTransformerProxyV1": true
"supportTransformerProxyV1": false
}
3 changes: 3 additions & 0 deletions src/services/destination/nativeIntegration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,9 @@ export class NativeIntegrationDestinationService implements DestinationService {
);
responseProxy = {
response: jobStates,
status: v0Response.status,
message: v0Response.message,
authErrorCategory: v0Response.authErrorCategory,
} as DeliveriesResponse;
}
return responseProxy;
Expand Down
1 change: 1 addition & 0 deletions src/services/destination/postTransformation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,7 @@ export class DestinationPostTransformationService {
statTags: errObj.statTags,
authErrorCategory: errObj.authErrorCategory,
message: errObj.message.toString(),
status: errObj.status,
} as DeliveriesResponse;

ErrorReportingService.reportError(error, metaTo.errorContext, resp);
Expand Down
53 changes: 53 additions & 0 deletions src/v0/destinations/braze/braze.util.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -660,9 +660,58 @@ describe('dedup utility tests', () => {
color: 'green',
age: 30,
gender: 'male',
country: 'US',
language: 'en',
email_subscribe: true,
push_subscribe: false,
subscription_groups: ['group1', 'group2'],
};
const storeData = {
external_id: '123',
country: 'US',
language: 'en',
email_subscribe: true,
push_subscribe: false,
subscription_groups: ['group1', 'group2'],
custom_attributes: {
color: 'blue',
age: 25,
},
};
store.set('123', storeData);
const result = BrazeDedupUtility.deduplicate(userData, store);
expect(store.size).toBe(1);
expect(result).toEqual({
external_id: '123',
color: 'green',
age: 30,
gender: 'male',
country: 'US',
language: 'en',
email_subscribe: true,
push_subscribe: false,
subscription_groups: ['group1', 'group2'],
});
});

test('deduplicates user data correctly 2', () => {
const userData = {
external_id: '123',
color: 'green',
age: 30,
gender: 'male',
language: 'en',
email_subscribe: true,
push_subscribe: false,
subscription_groups: ['group1', 'group2'],
};
const storeData = {
external_id: '123',
country: 'US',
language: 'en',
email_subscribe: true,
push_subscribe: false,
subscription_groups: ['group1', 'group2'],
custom_attributes: {
color: 'blue',
age: 25,
Expand All @@ -676,6 +725,10 @@ describe('dedup utility tests', () => {
color: 'green',
age: 30,
gender: 'male',
language: 'en',
email_subscribe: true,
push_subscribe: false,
subscription_groups: ['group1', 'group2'],
});
});

Expand Down
23 changes: 13 additions & 10 deletions src/v0/destinations/braze/transform.js
Original file line number Diff line number Diff line change
Expand Up @@ -154,16 +154,19 @@ function getUserAttributesObject(message, mappingJson, destination) {
Object.keys(mappingJson).forEach((destKey) => {
let value = get(traits, mappingJson[destKey]);
if (value || (value === null && reservedKeys.includes(destKey))) {
// if email is not string remove it from attributes
if (destKey === 'email' && typeof value !== 'string') {
throw new InstrumentationError('Invalid email, email must be a valid string');
}

// handle gender special case
if (destKey === 'gender') {
value = formatGender(value);
} else if (destKey === 'email' && isDefinedAndNotNull(value)) {
value = value.toString().toLowerCase();
switch (destKey) {
case 'gender':
value = formatGender(value);
break;
case 'email':
if (typeof value === 'string') {
value = value.toLowerCase();
} else if (isDefinedAndNotNull(value)) {
throw new InstrumentationError('Invalid email, email must be a valid string');
}
break;
default:
break;
}
data[destKey] = value;
}
Expand Down
8 changes: 8 additions & 0 deletions src/v0/destinations/braze/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,14 @@ const BrazeDedupUtility = {
};
const identifier = external_id || user_alias?.alias_name;
store.set(identifier, { ...storedUserData, ...deduplicatedUserData });

// add non billable attributes back to the deduplicated user object
BRAZE_NON_BILLABLE_ATTRIBUTES.forEach((key) => {
if (isDefinedAndNotNull(userData[key])) {
deduplicatedUserData[key] = userData[key];
}
});

return removeUndefinedValues(deduplicatedUserData);
},
};
Expand Down
2 changes: 2 additions & 0 deletions src/v0/destinations/pinterest_tag/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ const {
isDefined,
getHashFromArrayWithDuplicate,
removeUndefinedAndNullValues,
validateEventName,
} = require('../../util');
const { COMMON_CONFIGS, CUSTOM_CONFIGS, API_VERSION } = require('./config');

Expand Down Expand Up @@ -170,6 +171,7 @@ const deduceTrackScreenEventName = (message, Config) => {
if (!trackEventOrScreenName) {
throw new InstrumentationError('event_name could not be mapped. Aborting');
}
validateEventName(trackEventOrScreenName);

/*
Step 1: If the event is not amongst the above list of ecommerce events, will look for
Expand Down
3 changes: 2 additions & 1 deletion src/v0/destinations/tiktok_ads/transform.js
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,8 @@ const trackResponseBuilder = async (message, { Config }) => {
return responseList;
}
// Doc https://ads.tiktok.com/help/article/standard-events-parameters?lang=en
event = eventNameMapping[event] || event;
// For custom event we do not want to lower case the event or trim it we just want to send those as it is
event = eventNameMapping[event] || message.event;
// if there exists no event mapping we will build payload with custom event recieved
responseList.push(getTrackResponse(message, Config, event));

Expand Down
6 changes: 0 additions & 6 deletions test/__mocks__/axios.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ const { mondayPostRequestHandler } = require("./monday.mock");
const { sendgridGetRequestHandler } = require("./sendgrid.mock");
const { sendinblueGetRequestHandler } = require("./sendinblue.mock");
const { courierGetRequestHandler } = require("./courier.mock");
const { brazePostRequestHandler } = require("./braze.mock");

const urlDirectoryMap = {
"api.hubapi.com": "hs",
Expand Down Expand Up @@ -140,11 +139,6 @@ function post(url, payload) {
resolve(acPostRequestHandler(url, payload));
});
}
if(url.includes("braze.com")) {
return new Promise((resolve, reject) => {
resolve(brazePostRequestHandler(url, payload));
});
}
if (url.includes("https://a.klaviyo.com")) {
return new Promise((resolve, reject) => {
resolve(klaviyoPostRequestHandler(url, payload));
Expand Down
29 changes: 0 additions & 29 deletions test/__mocks__/braze.mock.js

This file was deleted.

34 changes: 0 additions & 34 deletions test/__mocks__/data/braze/proxy_response.json

This file was deleted.

46 changes: 0 additions & 46 deletions test/__mocks__/data/braze/response.json

This file was deleted.

Loading

0 comments on commit 536feb0

Please sign in to comment.