hybrisspm
Version:
Hybris Marketting API connector Library
175 lines (155 loc) • 4.8 kB
text/typescript
import {HybrisData} from "./HybrisData";
var httpClient = require('request');
var o = require('odata');
/**
* @author Delly Fofie <delly.fofie@sap.com>
*
*/
export class HybrisMarketing {
private baseUrl: string;
private auth: any = {
user: null,
pass: null,
sendImmediately: true
};
constructor(username: string, password: string, baseUrl: string = "https://ccf-350.wdf.sap.corp") {
this.auth.user = username;
this.auth.pass = password;
this.baseUrl = baseUrl;
}
setCredentials(username: string, password: string, baseUrl: string = "https://ccf-350.wdf.sap.corp") {
this.auth.user = username;
this.auth.pass = password;
this.baseUrl = baseUrl;
}
campaigns() {
return new HybrisData(this.auth.user, this.auth.pass, this.baseUrl, "/sap/opu/odata/SAP/API_MKT_CAMPAIGN_SRV/Campaigns");
}
/**
* Get the Top Target groups, A promise will be returned
* @param total
* @return Array<any>
*/
getTopTargetGroups(total: number) {
}
/**
* Get a particular Target Group
* @param id
* @return targetGroup
*/
getTargetGroupById(id: string) {
}
/**
*
* @param targetGroup
* @return status
*/
editOneTargetGroup(targetGroup: any) {
}
/**
* return the Top Campaigns
* @param total
*/
getTopCampaigns(total: number) {
let url = "/sap/opu/odata/SAP/API_MKT_CAMPAIGN_SRV/Campaigns?$top=" + total + "&$orderby=CampaignID desc&$format=json&$inlinecount=allpages";
return new Promise((resolve: any, reject: any) => {
httpClient({
method: 'GET',
url: this.baseUrl + url,
auth: this.auth,
json: true,
strictSSL: false
}, function (err: any, resp: any, body: any) {
if (err) {
reject(err);
} else {
resolve(body);
}
});
});
}
/**
* Get on campaign By ID
* @param id
*/
getCampaignByUUID(uuid: string) {
let campaign: object;
let url = "/sap/opu/odata/SAP/API_MKT_CAMPAIGN_SRV/Campaigns(guid'" + uuid + "')?$format=json";
return new Promise((resolve: any, reject: any) => {
httpClient({
method: 'GET',
url: this.baseUrl + url,
auth: this.auth,
json: true,
strictSSL: false
}, function (err: any, resp: any, body: any) {
if (err) {
reject(err);
} else {
resolve(body);
}
});
});
}
/**
* Edit one Campaign
* @param campaign
*/
editOneCampaign(campaign: any) {
}
/**
* Create a new campaign
* @param campaign
* @param csrfToken
*/
createCampaign(campaign: any, csrfToken: string) {
let url = "/sap/opu/odata/SAP/API_MKT_CAMPAIGN_SRV/Campaigns?format=json";
return new Promise((resolve: any, reject: any) => {
httpClient({
method: 'POST',
url: this.baseUrl + url,
auth: this.auth,
json: true,
strictSSL: false,
headers: {
"x-csrf-token": csrfToken,
"Content-Type": "application/json",
"Accept": "application/json",
},
body: campaign
}, function (err: any, resp: any, body: any) {
if (err) {
reject(err);
} else {
resolve(body);
}
});
});
}
/**
* Get Token
* @returns {string}
*/
getCampaignCreatingCSRFToken() {
let token: string;
let url = "/sap/opu/odata/SAP/API_MKT_CAMPAIGN_SRV/Campaigns";
return new Promise((resolve: any, reject: any) => {
httpClient({
method: 'HEAD',
url: this.baseUrl + url,
auth: this.auth,
json: true,
strictSSL: false,
headers: {
"x-csrf-token": "fetch"
}
}, function (err: any, resp: any, body: any) {
if (err) {
reject(err);
} else {
resolve(resp);
}
});
});
}
}