Skip to content

Commit

Permalink
Merge branch 'develop' into chore.format-standard
Browse files Browse the repository at this point in the history
  • Loading branch information
koladilip committed Feb 20, 2024
2 parents b60573c + bb60c9c commit 0594436
Show file tree
Hide file tree
Showing 38 changed files with 4,503 additions and 2,460 deletions.
19 changes: 16 additions & 3 deletions .github/workflows/component-test-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
fetch-depth: 1

- name: Setup Node
uses: actions/[email protected].1
uses: actions/[email protected].2
with:
node-version-file: '.nvmrc'
cache: 'npm'
Expand All @@ -44,7 +44,7 @@ jobs:
run: |
aws s3 cp ./test_reports/ s3://test-integrations-dev/integrations-test-reports/rudder-transformer/${{ github.event.number }}/ --recursive
- name: Comment on PR with S3 Object URL
- name: Add Test Report Link as Comment on PR
uses: actions/github-script@v7
with:
github-token: ${{ secrets.PAT }}
Expand All @@ -54,9 +54,22 @@ jobs:
const prNumber = context.payload.pull_request.number;
const commentBody = `Test report for this run is available at: https://test-integrations-dev.s3.amazonaws.com/integrations-test-reports/rudder-transformer/${prNumber}/test-report.html`;
// find all the comments of the PR
const issueComments = await github.paginate(github.rest.issues.listComments, {
owner,
repo,
issue_number: prNumber,
});
for (const comment of issueComments) {
if (comment.body === commentBody) {
console.log('Comment already exists');
return;
}
}
// Comment on the pull request
github.rest.issues.createComment({
await github.rest.issues.createComment({
owner,
repo,
issue_number: prNumber,
Expand Down
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 == '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')
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 == 'sanpj2292')
steps:
- name: Create Branch
uses: peterjgrainger/[email protected]
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/draft-new-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
fetch-depth: 0

- name: Setup Node
uses: actions/[email protected].1
uses: actions/[email protected].2
with:
node-version-file: '.nvmrc'
cache: 'npm'
Expand Down
8 changes: 5 additions & 3 deletions .github/workflows/dt-test-and-report-code-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
fetch-depth: 1

- name: Setup Node
uses: actions/[email protected].1
uses: actions/[email protected].2
with:
node-version-file: '.nvmrc'
cache: 'npm'
Expand All @@ -40,12 +40,14 @@ jobs:
npm run lint:fix
- name: Upload Coverage Reports to Codecov
uses: codecov/codecov-action@v3.1.4
uses: codecov/codecov-action@v4.0.1
with:
directory: ./reports/coverage

- name: Upload TS Coverage Reports to Codecov
uses: codecov/[email protected]
uses: codecov/[email protected]
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
directory: ./reports/ts-coverage

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/publish-new-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
fetch-depth: 0

- name: Setup Node
uses: actions/[email protected].1
uses: actions/[email protected].2
with:
node-version-file: '.nvmrc'
cache: 'npm'
Expand Down Expand Up @@ -89,7 +89,7 @@ jobs:

- name: Notify Slack Channel
id: slack
uses: slackapi/slack-github-action@v1.24.0
uses: slackapi/slack-github-action@v1.25.0
continue-on-error: true
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ut-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
fetch-depth: 1

- name: Setup Node
uses: actions/[email protected].1
uses: actions/[email protected].2
with:
node-version-file: '.nvmrc'
cache: 'npm'
Expand Down
56 changes: 56 additions & 0 deletions src/cdk/v2/destinations/bluecore/config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
const { getMappingConfig } = require('../../../../v0/util');

const BASE_URL = 'https://api.bluecore.com/api/track/mobile/v1';

const CONFIG_CATEGORIES = {
IDENTIFY: {
name: 'bluecoreIdentifyConfig',
type: 'identify',
},
TRACK: {
name: 'bluecoreTrackConfig',
type: 'track',
},
COMMON: {
name: 'bluecoreCommonConfig',
type: 'common',
},
};

const EVENT_NAME_MAPPING = [
{
src: ['product viewed'],
dest: 'viewed_product',
},
{
src: ['products searched'],
dest: 'search',
},
{
src: ['product added'],
dest: 'add_to_cart',
},
{
src: ['product removed'],
dest: 'remove_from_cart',
},
{
src: ['product added to wishlist'],
dest: 'wishlist',
},
{
src: ['order completed'],
dest: 'purchase',
},
];

const BLUECORE_EXCLUSION_FIELDS = ['query', 'order_id', 'total'];

const MAPPING_CONFIG = getMappingConfig(CONFIG_CATEGORIES, __dirname);
module.exports = {
CONFIG_CATEGORIES,
MAPPING_CONFIG,
EVENT_NAME_MAPPING,
BASE_URL,
BLUECORE_EXCLUSION_FIELDS,
};
52 changes: 52 additions & 0 deletions src/cdk/v2/destinations/bluecore/data/bluecoreCommonConfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
[
{
"destKey": "properties.customer.name",
"sourceKeys": "name",
"required": false,
"sourceFromGenericMap": true
},
{
"destKey": "properties.customer.first_name",
"sourceKeys": "firstName",
"required": false,
"sourceFromGenericMap": true
},
{
"destKey": "properties.customer.last_name",
"sourceKeys": "lastName",
"required": false,
"sourceFromGenericMap": true
},
{
"destKey": "properties.customer.age",
"sourceKeys": ["context.traits.age", "traits.age"],
"required": false
},
{
"destKey": "properties.customer.sex",
"sourceKeys": ["traits.gender", "context.traits.gender", "traits.sex", "context.traits.sex"],
"required": false
},
{
"destKey": "properties.customer.address",
"sourceKeys": "address",
"required": false,
"sourceFromGenericMap": true
},
{
"destKey": "properties.customer.email",
"sourceKeys": "email",
"required": false,
"sourceFromGenericMap": true
},
{
"destKey": "properties.client",
"sourceKeys": "context.app.version",
"required": false
},
{
"destKey": "properties.device",
"sourceKeys": "context.device.model",
"required": false
}
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[
{
"destKey": "event",
"sourceKeys": ["traits.action", "context.traits.action"],
"required": false
}
]
22 changes: 22 additions & 0 deletions src/cdk/v2/destinations/bluecore/data/bluecoreTrackConfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
[
{
"destKey": "properties.search_term",
"sourceKeys": "properties.query",
"required": false
},
{
"destKey": "properties.order_id",
"sourceKeys": "properties.order_id",
"required": false
},
{
"destKey": "properties.total",
"sourceKeys": "properties.total",
"required": false
},
{
"destKey": "properties.products",
"sourceKeys": ["properties.products"],
"required": false
}
]
69 changes: 69 additions & 0 deletions src/cdk/v2/destinations/bluecore/procWorkflow.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
bindings:
- name: EventType
path: ../../../../constants
- path: ../../bindings/jsontemplate
- name: defaultRequestConfig
path: ../../../../v0/util
- name: removeUndefinedNullValuesAndEmptyObjectArray
path: ../../../../v0/util
- name: removeUndefinedAndNullValues
path: ../../../../v0/util
- path: ./utils
- path: lodash
name: cloneDeep

steps:
- name: messageType
template: |
.message.type.toLowerCase();
- name: validateInput
template: |
let messageType = $.outputs.messageType;
$.assert(messageType, "message Type is not present. Aborting");
$.assert(messageType in {{$.EventType.([.TRACK, .IDENTIFY])}}, "message type " + messageType + " is not supported");
$.assertConfig(.destination.Config.bluecoreNamespace, "[BLUECORE] account namespace required for Authentication.");
- name: prepareIdentifyPayload
condition: $.outputs.messageType === {{$.EventType.IDENTIFY}}
template: |
const payload = $.constructProperties(.message);
payload.token = .destination.Config.bluecoreNamespace;
$.verifyPayload(payload, .message);
payload.event = payload.event ?? 'customer_patch';
payload.properties.distinct_id = $.populateAccurateDistinctId(payload, .message);
$.context.payloads = [$.removeUndefinedAndNullValues(payload)];
- name: handleTrackEvent
condition: $.outputs.messageType === {{$.EventType.TRACK}}
steps:
- name: validateInput
description: Additional validation for Track events
template: |
$.assert(.message.event, "event_name could not be mapped. Aborting.")
- name: deduceEventNames
template: |
$.context.deducedEventNameArray = $.deduceTrackEventName(.message.event,.destination.Config)
- name: preparePayload
template: |
const payload = $.constructProperties(.message);
$.context.payloads = $.context.deducedEventNameArray@eventName.(
const newPayload = $.cloneDeep(payload);
newPayload.properties.distinct_id = $.populateAccurateDistinctId(newPayload, ^.message);
const temporaryProductArray = newPayload.properties.products ?? $.createProductForStandardEcommEvent(^.message, eventName);
newPayload.properties.products = $.normalizeProductArray(temporaryProductArray);
newPayload.event = eventName;
newPayload.token = ^.destination.Config.bluecoreNamespace;
$.verifyPayload(newPayload, ^.message);
$.removeUndefinedNullValuesAndEmptyObjectArray(newPayload)
)[];
- name: buildResponse
template: |
$.context.payloads.(
const response = $.defaultRequestConfig();
response.body.JSON = .;
response.method = "POST";
response.endpoint = "https://api.bluecore.com/api/track/mobile/v1";
response.headers = {
"Content-Type": "application/json"
};
response
)
Loading

0 comments on commit 0594436

Please sign in to comment.