vds/impl/IVdsProtocol.js

/**
 * @fileoverview Internal definitions used in VdsClient
 *
 * @author anders.rejdebrant@spark-vision.com (Anders Rejdebrant)
 */


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

goog.require('spv.ds.Config');
goog.require('spv.ds.ConfigLoadResult');
goog.require('spv.ds.FacebookShareData');
goog.require('spv.ds.FreshConfig');
goog.require('spv.ds.ImageResult');
goog.require('spv.ds.IntroPage');
goog.require('spv.ds.SessionStateUpdate');
goog.require('spv.ds.Summary');
goog.require('spv.ds.impl.GoalStateResolver');
goog.require('spv.ds.impl.SessionInitData');

goog.require('spv.vds.CampaignCollection');
goog.require('spv.vds.CCInputParam');
goog.require('spv.vds.ConfigQuickInfoResult');
goog.require('spv.vds.VolvoCarSpec');
goog.require('spv.vds.VolvoRetailer');



/**
 * Server protocol interface
 *
 * @interface
 */
spv.vds.impl.IVdsProtocol = function() {};




/**
 * @param {string} session_id
 * @param {string} config_name
 * @param {function(spv.vds.ConfigQuickInfoResult)} on_success
 * @param {function(Error)} on_failure
 */
spv.vds.impl.IVdsProtocol.prototype.getConfigQuickInfo = function(
	session_id,
	config_name,
	on_success,
	on_failure) {};




/**
 * @param {function(Array.<spv.vds.VolvoRetailer>)} on_success
 * @param {function(Error)} on_failure
 */
spv.vds.impl.IVdsProtocol.prototype.getRetailers = function(
		on_success,
		on_failure) {};


/**
 * @param {string} session_id
 * @param {function()} on_success
 * @param {function(Error)} on_failure
 */
spv.vds.impl.IVdsProtocol.prototype.sessionEnablePrivateLeasing = function(
		session_id,
		on_success,
		on_failure ) {};




/**
 * @param {string} session_id
 * @param {function()} on_success
 * @param {function(Error)} on_failure
 */
spv.vds.impl.IVdsProtocol.prototype.sessionDisablePrivateLeasing = function(
		session_id,
		on_success,
		on_failure ) {};


/**
 * @param {string} session_id
 * @param {function()} on_success
 * @param {function(Error)} on_failure
 */
spv.vds.impl.IVdsProtocol.prototype.sessionDisableCCPrices = function(
		session_id,
		on_success,
		on_failure ) {};




/**
 * @param {string} session_id
 * @param {function()} on_success
 * @param {function(Error)} on_failure
 */
spv.vds.impl.IVdsProtocol.prototype.sessionEnableCCPrices = function(
		session_id,
		on_success,
		on_failure ) {};




/**
 * @param {string} session_id
 * @param {Object.<string,spv.vds.CCInputParam>} input_params
 * @param {function(Object.<spv.vds.CCInputParam>)} on_success
 * @param {function(Error)} on_failure
 */
spv.vds.impl.IVdsProtocol.prototype.sessionUpdateCCInputParams = function(
		session_id,
		input_params,
		on_success,
		on_failure ) {};




/**
 * @param {spv.ds.Config} config
 * @param {string} localization_id
 * @param {function(spv.vds.VolvoCarSpec)} on_success
 * @param {function(Error)} on_failure
 */
spv.vds.impl.IVdsProtocol.prototype.getSpecification = function(
		config,
		localization_id,
		on_success,
		on_failure) {};




/**
 * @deprecated Newer versions of the backend has made this method session free. Use getCampaigns() instead.
 * @param {string} session_id
 * @param {string} feed_id
 * @param {function(spv.vds.CampaignCollection)} on_success
 * @param {function(Error)} on_failure
 */
spv.vds.impl.IVdsProtocol.prototype.sessionGetCampaigns = function(
		session_id,
		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.IVdsProtocol.prototype.getCampaigns = function(
		feed_id,
		on_success,
		on_failure) {};




/**
 * @param {string} session_id
 * @param {function(spv.ds.Loan)} on_success
 * @param {function(Error)} on_failure
 */
spv.vds.impl.IVdsProtocol.prototype.sessionGetLoan = function(
		session_id,
		on_success,
		on_failure) {};




/**
 * @param {string} session_id
 * @param {function(spv.ds.Loan)} on_success
 * @param {function(Error)} on_failure
 */
spv.vds.impl.IVdsProtocol.prototype.sessionResetLoan = function(
		session_id,
		on_success,
		on_failure) {};


/**
 * @param {string} session_id
 * @param {string} customer_first_name
 * @param {string} customer_surname
 * @param {string} customer_email
 * @param {string} customer_phone
 * @param {string} preferred_contact_time
 * @param {string} preferred_contact_media
 * @param {boolean} want_newsletter
 * @param {boolean} want_summary_pdf
 * @param {string} retailer_id
 * @param {string} mail_link_url
 * @param {function()} on_success
 * @param {function(Error)} on_failure
 */
spv.vds.impl.IVdsProtocol.prototype.sessionSendMailToCustomerAndRetailer = function(
		session_id,
		customer_first_name,
		customer_surname,
		customer_email,
		customer_phone,
		preferred_contact_time,
		preferred_contact_media,
		want_newsletter,
		want_summary_pdf,
		retailer_id,
		mail_link_url,
		on_success,
		on_failure ) {};


/**
 * @param {string} session_id
 * @param {string} customer_first_name
 * @param {string} customer_surname
 * @param {string} customer_email
 * @param {string} customer_phone
 * @param {string} retailer_id
 * @param {function()} on_success
 * @param {function(Error)} on_failure
 */
spv.vds.impl.IVdsProtocol.prototype.sessionSendToTacdis = function(
	session_id,
	customer_first_name,
	customer_surname,
	customer_email,
	customer_phone,
	retailer_id,
	on_success,
	on_failure) { };

/**
 * @param {string} session_id
 * @param {string} customer_email
 * @param {boolean} want_newsletter
 * @param {boolean} want_summary_pdf
 * @param {string} mail_link_url
 * @param {function()} on_success
 * @param {function(Error)} on_failure
 */
spv.vds.impl.IVdsProtocol.prototype.sessionSendMailToCustomer = function(
		session_id,
		customer_email,
		want_newsletter,
		want_summary_pdf,
		mail_link_url,
		on_success,
		on_failure ) {};




/**
 * @param {string} session_id
 * @param {number} down_payment
 * @param {number} interest_rate
 * @param {number} number_of_months
 * @param {function(spv.ds.Loan)} on_success
 * @param {function(Error)} on_failure
 */
spv.vds.impl.IVdsProtocol.prototype.sessionSetLoan = function(
		session_id,
		down_payment,
		interest_rate,
		number_of_months,
		on_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.IVdsProtocol.prototype.sessionSetRetailerBusinessGroup = function (
		session_id,
		business_group_retailer_id,
		on_success,
		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.IVdsProtocol.prototype.sessionGenerateRetailerHtmlForPdf = function(
	session_id,
	template_name,
	retailer_id,
	on_success,
	on_failure) {};