vds/impl/IPPNovaAdaptor.js






goog.provide( 'spv.vds.impl.IPPNovaAdaptor' );

goog.require( 'spv.vds.impl.IPPAdaptor' );

goog.require('spv.vds.ipprot_nova.IpadClient');



/**
 *
 * @constructor
 * @extends {spv.vds.impl.IPPAdaptor}
 * @param {string} service_url
 */
spv.vds.impl.IPPNovaAdaptor = function(service_url)
{
	goog.base( this, service_url);
	var use_jsonp = true;
	var ipad_client = new spv.vds.ipprot_nova.IpadClient(service_url, use_jsonp);
	this._impl = ipad_client;
};
goog.inherits(spv.vds.impl.IPPNovaAdaptor, spv.vds.impl.IPPAdaptor);




/**
 * @param {string} session_id
 * @param {string} feed_id
 * @param {function(spv.vds.CampaignCollection)} on_success
 * @param {function(Error)} on_failure
 */
spv.vds.impl.IPPNovaAdaptor.prototype.sessionGetCampaigns = function(
		session_id,
		feed_id,
		on_success,
		on_failure )
{
	this.getCampaigns( feed_id, on_success, on_failure );
}




/**
 * @param {string} feed_id
 * @param {function(spv.vds.CampaignCollection)} on_success
 * @param {function(Error)} on_failure
 */
spv.vds.impl.IPPNovaAdaptor.prototype.getCampaigns = function(
	feed_id,
	on_success,
	on_failure )
{
	/** @param {spv.vds.impl.RawCampaignCollection} proto_cc */
	var on_protocol_success = function(proto_cc)
	{
		var cc = spv.vds.impl.IPPCommon.convertToCampaignCollection(proto_cc);
		on_success(cc);
	};
	this._impl.vcamp_get_campaigns(
			feed_id,
			on_protocol_success,
			on_failure);
}


/**
 * @param {string} session_id
 * @param {string} business_group_retailer_id
 * @param {function()} on_success
 * @param {function(Error)} on_failure
 */
spv.vds.impl.IPPNovaAdaptor.prototype.sessionSetRetailerBusinessGroup = function (
    session_id,
    business_group_retailer_id,
    on_success,
    on_failure) {

    /** @param {boolean} result_flag */
    var handle_protocol = function (result_flag) {
        if (true == result_flag) {
            on_success();
        }
        else {
            throw new Error('sessionSetRetailerBusinessGroup failed for retailer id: ' +
                            business_group_retailer_id);
        }
    };

    this._impl.set_retailer_business_group(
        session_id,
        business_group_retailer_id,
        handle_protocol,
        on_failure);
};



/**
 * @param {string} session_id
 * @param {string} template_name
 * @param {string} retailer_id
 * @param {function(string)} on_success
 * @param {function(Error)} on_failure
 */
spv.vds.impl.IPPNovaAdaptor.prototype.sessionGenerateRetailerHtmlForPdf = function(
	session_id,
	template_name,
	retailer_id,
	on_success,
	on_failure)
{
	/** @param {spv.vds.ipprot_nova.output.PdfGenerationResult} pdf_result */
	var handle_protocol = function(pdf_result)
	{
		var pdf_url = spv.ds.impl.IPPCommon.extractPdfUrl( pdf_result );
		on_success(pdf_url);
	};
	this._impl.generate_retailer_html_for_pdf(
		session_id,
		template_name,
		retailer_id,
		handle_protocol,
		on_failure );
};