UNPKG

hybrisspm

Version:

Hybris Marketting API connector Library

175 lines (155 loc) 4.8 kB
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); } }); }); } }