Skip to content

Source: Customer/CustomerSubscriptionList.js

/**
 *
 * Copyright (C) 2021 Akorbi Digital RMP
 *
 * This file is part of RunMyProcess SDK-JS.
 *
 * RunMyProcess SDK-JS is free software: you can redistribute it and/or modify
 * it under the terms of the Apache License Version 2.0 (the "License");
 *
 *   You may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 */
  /**
  A List of a customer's subscriptions
    @constructor
    @property {Array} subscriptions - Array of subscriptions.
    @see Customer
    @see Resource
*/
function CustomerSubscriptionList(){
    this.subscriptions = [];
};
/**
     @borrows
     Inherits Resource
*/
CustomerSubscriptionList.prototype = new  Resource();
/**
    Overrides Resource's loadPreset method.
    @method
    @see Resource#loadPreset
*/
CustomerSubscriptionList.prototype.loadPreset = function () {
    /**
        Overrides Resource's generateUrl method to return the request url
        @method
        @see Resource#generateUrl
    */
    this.generateUrl=function () {
        return  this.selfUrl;
    };
};
/**
    Overrides Resource's loadSet method to set local variables after request.
    @method
    @param {json} rObject - JSON representation of the loaded data.
    @see Resource#loadSet
*/
CustomerSubscriptionList.prototype.loadSet = function (rObject) {
    var father = this;
    father.subscriptions = [];
    var ent=this.getArray(rObject, "entry");
    for (var i = 0; i < ent.length; i++) {
        var subs = new Subscription();
        subs.object = ent[i];
        subs.title = ent[i].title;
        subs.summary = ent[i].summary.P_value;
        subs.updated = new Date(ent[i].updated);

        if(this.termSearch('price',ent[i].category))subs.price = Number(this.termSearch('price',ent[i].category).label);
        if(this.termSearch('minimumVolume',ent[i].category))subs.minimumVolume = Number(this.termSearch('minimumVolume',ent[i].category).label);
        subs.frequency = this.termSearch('frequency',ent[i].category);
        if(this.termSearch('volume',ent[i].category))subs.volume = Number(this.termSearch('volume',ent[i].category).label);
        if(this.termSearch('payment_ref',ent[i].category))subs.paymentRef = this.termSearch('payment_ref',ent[i].category).label;
        if(this.termSearch('payment_method',ent[i].category))subs.paymentMethod = this.termSearch('payment_method',ent[i].category).label;
        if(this.termSearch('start_date',ent[i].category))subs.startDate = new Date(this.termSearch('start_date',ent[i].category).label);
        if(this.termSearch('end_date',ent[i].category))subs.endDate = new Date(this.termSearch('end_date',ent[i].category).label);
        if(this.termSearch('creation_date',ent[i].category))subs.creationDate = new Date(this.termSearch('creation_date',ent[i].category).label);
        if(this.termSearch('update_date',ent[i].category))subs.updateDate = new Date(this.termSearch('update_date',ent[i].category).label);

        subs.object = ent[i];
        subs.id = ent[i].id;
        subs.categories = subs.getArray(ent[i], "category");
        subs.setLinks = subs.getArray(ent[i], "link");
        subs.setSelfUrl = ent[i].content.src;
        subs.setRights = subs.object.rights;
        father.subscriptions.push(subs);
    }
};