(function(window) { var Gitana = window.Gitana; Gitana.EmailProvider = Gitana.AbstractApplicationObject.extend( /** @lends Gitana.EmailProvider.prototype */ { /** * @constructs * @augments Gitana.AbstractApplicationObject * * @class EmailProvider * * @param {Gitana.Application} application * @param [Object] object json object (if no callback required for populating) */ constructor: function(application, object) { this.base(application, object); this.objectType = function() { return "Gitana.EmailProvider"; }; }, /** * @override */ clone: function() { return new Gitana.EmailProvider(this.getApplication(), this); }, /** * @OVERRIDE */ getType: function() { return Gitana.TypedIDConstants.TYPE_EMAIL_PROVIDER; }, /** * @OVERRIDE */ getUri: function() { return "/applications/" + this.getApplicationId() + "/emailproviders/" + this.getId(); }, /** * Sends the given email using this email provider. * * @param {Object} email * @param [Object] model * * @return {*} */ send: function(email, model) { var self = this; if (!model) { model = {}; } var emailId = null; if (Gitana.isString(email)) { emailId = email; } else { emailId = email.getId(); } var uriFunction = function() { return self.getUri() + "/send?email=" + emailId; }; return this.chainPostEmpty(null, uriFunction, {}, model); }, /** * Tests whether the email provider works. * * @param from * @param to * @returns {*} */ test: function(from, to) { var self = this; var uriFunction = function() { return self.getUri() + "/test?from=" + from + "&to=" + to; }; return this.chainPostEmpty(null, uriFunction); }, /** * Sends an email containing the results of an export. * * @param exportId * @param emailConfig * @param callback * @returns {*} */ sendForExport: function(exportId, emailConfig, callback) { var self = this; var uriFunction = function() { return "/ref/exports/" + exportId + "/email"; }; var params = {}; var payload = { "applicationId": this.getApplicationId(), "emailProviderId": this.getId(), "email": emailConfig }; return this.chainPostResponse(this, uriFunction, params, payload).then(function(response) { callback(response); }); } }); })(window);