123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- "use strict";
- define(['bi/glass/core/Class', 'jquery'], function (Class, $) {
- 'use strict';
-
- var CustomVisualizationService = Class.extend({
-
- customVizUrl: 'v1/visualizations',
- init: function init(options) {
- CustomVisualizationService.inherited('init', this, arguments);
- this.logger = options.glassContext.appController.logger;
- this.ajaxService = options.glassContext.getCoreSvc('.Ajax');
- },
-
- ajax: function ajax(options) {
- var dfd = $.Deferred();
- if (this.ajaxService) {
- this.logDebug(options);
- return this.ajaxService.ajax(options, dfd);
- }
- var err = 'There is no ajax service from glass context.';
- this.logError(err);
- return dfd.reject(err);
- },
-
- updateOrUpload: function updateOrUpload(options) {
- var url;
- var type;
- if (options.isUpload) {
- url = this.getUrl(null);
- url = url + "?maskResponses=true&updateAction=FAIL";
- type = 'POST';
- } else {
- if (!options.id) {
- var err = 'Name is not specified for update.';
- this.logError(err);
- var dfd = $.Deferred();
- return dfd.reject(err);
- }
- url = this.getUrl(options.id);
- type = 'PUT';
- }
- var requestOptions = {
- 'headers': {
- 'Accept': 'application/json',
- 'Content-Type': 'application/zip'
- },
- 'url': url,
- 'type': type,
- 'data': options.data,
- 'Content-Length': options.byteLength,
- 'processData': false
- };
- return this.ajax(requestOptions).then(function (response) {
- if (response.data) {
- var data = JSON.parse(response.data);
- if (data.Status > 299) {
- throw response;
- }
- }
- return response;
- });
- },
-
- logError: function logError(msg) {
- if (this.logger) {
- this.logger.error(msg);
- }
- },
-
- logDebug: function logDebug(msg) {
- if (this.logger) {
- this.logger.debug(msg);
- }
- },
-
- getUrl: function getUrl(id) {
- var url;
- if (!id) {
- url = this.customVizUrl;
- } else {
- url = this.customVizUrl + '/id/' + id;
- }
- if (!url) {
- this.logDebug('Empty url');
- }
- return url;
- }
- });
- return CustomVisualizationService;
- });
|