Skip to content

Commit

Permalink
interim checkin
Browse files Browse the repository at this point in the history
  • Loading branch information
dipanjanb authored and sayan-rudder committed Sep 30, 2019
1 parent 9500fa0 commit 4b7a0d8
Showing 1 changed file with 83 additions and 18 deletions.
101 changes: 83 additions & 18 deletions rudder-client-javascript/RudderClient.js
Original file line number Diff line number Diff line change
Expand Up @@ -421,11 +421,22 @@ class ECommerceProductSort {
}
}

//Parent class of e-commerce product
class ECommerceProductBase {
constructor(){
this.product_id = "";
}
//Setter methods in accordance with Builder pattern
setProductId(productId){
this.product_id = productId;
return this;
}

}
//Class representing e-commerce product object
class ECommerceProduct {
class ECommerceProduct extends ECommerceProductBase{
constructor(){
this.product_id = "";
super();
this.sku = "";
this.category = "";
this.name = "";
Expand All @@ -441,11 +452,6 @@ class ECommerceProduct {
}

//Setter methods in accordance with Builder pattern
setProductId(productId){
this.product_id = productId;
return this;
}

setSku(sku){
this.sku = sku;
return this;
Expand Down Expand Up @@ -1227,27 +1233,21 @@ class CouponDeniedEvent extends CouponEvent {
return ECommerceEvents.COUPON_DENIED;
}
}

//Class representing product share
class ProductSharedEvent {
//Parent class for all social media sharing events
class ShareEvent {
constructor(){
this.share_via = "";
this.share_message = "";
this.recipient = "";
this.product = null;
}

build(){
build() {
var eventProperty = new RudderProperty();
eventProperty.setPropertyMap(this.product);
eventProperty.setProperty(ECommerceParamNames.SHARE_VIA, this.share_via);
eventProperty.setProperty(ECommerceParamNames.SHARE_MESSAGE, this.share_message);
eventProperty.setProperty(ECommerceParamNames.RECIPIENT, this.recipient);
return eventProperty;
}

event(){
return ECommerceEvents.PRODUCT_SHARED;

}

//Setter methods in accordance to Builder pattern
Expand All @@ -1266,11 +1266,64 @@ class ProductSharedEvent {
return this;
}

}

//Class representing product share
class ProductSharedEvent extends ShareEvent{
constructor(){
super();
this.product = null;
}

build(){
var eventProperty = super.build();
eventProperty.setPropertyMap(this.product);
return eventProperty;
}

event(){
return ECommerceEvents.PRODUCT_SHARED;
}

//Setter method in accordance to Builder pattern
setProduct(product){
this.product = product;
return this;
}
}

class CartSharedEvent extends ShareEvent {
constructor(){
super();
this.cart_id = "";
this.products = [];
}

event(){
return ECommerceEvents.CART_SHARED;
}

build(){
var eventProperty = super.build();
eventProperty.setProperty(ECommerceParamNames.CART_ID, this.cart_id);
eventProperty.setProperty(ECommerceParamNames.PRODUCTS, this.products);
return eventProperty;
}

//Setter methods in accordance with Builder pattern
setCartId(cartId){
this.cart_id = cartId;
return this;
}

addProduct(product){
if(!this.products){ //add array if null
this.products = [];
}
this.products.push(product);
return this;
}
}
//Rudder configration class
var RudderConfig = (function () {

Expand Down Expand Up @@ -2214,7 +2267,6 @@ client.track(new RudderElementBuilder().
setWishlistName("Dummy Wishlist 2")).
build().getPropertyMap()).
build());
*/
client.track(new RudderElementBuilder().
setEvent(ECommerceEvents.PRODUCT_SHARED).
setProperty(new ProductSharedEvent().
Expand All @@ -2229,6 +2281,19 @@ client.track(new RudderElementBuilder().
setCoupon("Dummy Product Coupon 23")).
build().getPropertyMap()).
build());
*/
client.track(new RudderElementBuilder().
setEvent(ECommerceEvents.CART_SHARED).
setProperty(new CartSharedEvent().
setShareVia("Dummy Share Via 2").
setShareMessage("Dummy Message 2").
setRecipient("Dummy Recipient 2").
addProduct(new ECommerceProductBase().
setProductId("Dummy Product Id 255")).
addProduct(new ECommerceProductBase().
setProductId("Dummy Product Id 522")).
build().getPropertyMap()).
build());

/*
client.track(new RudderElementBuilder().
Expand Down

0 comments on commit 4b7a0d8

Please sign in to comment.