180 lines
6.4 KiB
JavaScript
180 lines
6.4 KiB
JavaScript
"use strict";
|
|
var angular = require("angular");
|
|
var BaseService = (function () {
|
|
function BaseService($http, $q, pageContext) {
|
|
this.$http = $http;
|
|
this.$q = $q;
|
|
this.pageContext = pageContext;
|
|
this.baseUrl = pageContext.web.absoluteUrl;
|
|
}
|
|
BaseService.prototype.getRequest = function (query, endPoint) {
|
|
var deferred = this.$q.defer();
|
|
this.$http({
|
|
url: endPoint || this.baseUrl + query,
|
|
method: "GET",
|
|
headers: {
|
|
"accept": "application/json;odata=verbose",
|
|
"content-Type": "application/json;odata=verbose"
|
|
}
|
|
}).then(function (response) {
|
|
if (response.data.d.results) {
|
|
deferred.resolve(response.data.d.results);
|
|
}
|
|
else {
|
|
deferred.resolve(response.data.d);
|
|
}
|
|
}, function (error) {
|
|
var iError = {
|
|
code: error.data.error.code,
|
|
message: error.data.error.message.value,
|
|
status: error.status,
|
|
statusText: error.statusText
|
|
};
|
|
deferred.reject(iError);
|
|
});
|
|
return deferred.promise;
|
|
};
|
|
BaseService.prototype.postRequest = function (url, requestBody, endPoint) {
|
|
var _this = this;
|
|
var deferred = this.$q.defer();
|
|
this.getFormDigestValue(this.baseUrl)
|
|
.then(function (requestDigest) {
|
|
return _this.$http({
|
|
url: endPoint || _this.baseUrl + url,
|
|
method: "POST",
|
|
headers: {
|
|
"accept": "application/json;odata=verbose",
|
|
"X-RequestDigest": requestDigest,
|
|
"content-Type": "application/json;odata=verbose"
|
|
},
|
|
data: JSON.stringify(requestBody)
|
|
});
|
|
}).then(function (response) {
|
|
deferred.resolve(response.data);
|
|
}, function (error) {
|
|
var iError = {
|
|
code: error.data.error.code,
|
|
message: error.data.error.message.value,
|
|
status: error.status,
|
|
statusText: error.statusText
|
|
};
|
|
deferred.reject(iError);
|
|
});
|
|
return deferred.promise;
|
|
};
|
|
BaseService.prototype.updateRequest = function (url, requestBody, eTag, endPoint) {
|
|
var _this = this;
|
|
var deferred = this.$q.defer();
|
|
this.getFormDigestValue(this.baseUrl)
|
|
.then(function (requestDigest) {
|
|
return _this.$http({
|
|
url: endPoint || _this.baseUrl + url,
|
|
method: "POST",
|
|
headers: {
|
|
"accept": "application/json;odata=verbose",
|
|
"X-RequestDigest": requestDigest,
|
|
"content-Type": "application/json;odata=verbose",
|
|
'IF-MATCH': eTag,
|
|
'X-HTTP-Method': 'MERGE'
|
|
},
|
|
data: JSON.stringify(requestBody)
|
|
});
|
|
}).then(function (response) {
|
|
deferred.resolve();
|
|
}, function (error) {
|
|
var iError = {
|
|
code: error.data.error.code,
|
|
message: error.data.error.message.value,
|
|
status: error.status,
|
|
statusText: error.statusText
|
|
};
|
|
deferred.reject(iError);
|
|
});
|
|
return deferred.promise;
|
|
};
|
|
BaseService.prototype.deleteRequest = function (url, eTag, endPoint) {
|
|
var _this = this;
|
|
var deferred = this.$q.defer();
|
|
this.getFormDigestValue(this.baseUrl)
|
|
.then(function (requestDigest) {
|
|
return _this.$http({
|
|
url: endPoint || _this.baseUrl + url,
|
|
method: "POST",
|
|
headers: {
|
|
'Accept': 'application/json;odata=nometadata',
|
|
'X-RequestDigest': requestDigest,
|
|
'IF-MATCH': eTag,
|
|
'X-HTTP-Method': 'DELETE'
|
|
}
|
|
});
|
|
}).then(function (response) {
|
|
deferred.resolve();
|
|
}, function (error) {
|
|
var iError = {
|
|
code: error.data.error.code,
|
|
message: error.data.error.message.value,
|
|
status: error.status,
|
|
statusText: error.statusText
|
|
};
|
|
deferred.reject(iError);
|
|
});
|
|
return deferred.promise;
|
|
};
|
|
BaseService.prototype.fileUploadRequest = function (url, file, endPoint) {
|
|
var _this = this;
|
|
var deferred = this.$q.defer();
|
|
this.getFormDigestValue(this.baseUrl)
|
|
.then(function (requestDigest) {
|
|
return _this.$http({
|
|
url: endPoint || _this.baseUrl + url,
|
|
method: "POST",
|
|
transformRequest: angular.identity,
|
|
headers: {
|
|
"accept": "application/json;odata=verbose",
|
|
"X-RequestDigest": requestDigest,
|
|
"content-Type": undefined
|
|
},
|
|
data: ArrayBuffer
|
|
});
|
|
}).then(function (response) {
|
|
deferred.resolve(response.data);
|
|
}, function (error) {
|
|
var iError = {
|
|
code: error.data.error.code,
|
|
message: error.data.error.message.value,
|
|
status: error.status,
|
|
statusText: error.statusText
|
|
};
|
|
deferred.reject(iError);
|
|
});
|
|
return deferred.promise;
|
|
};
|
|
BaseService.prototype.getFormDigestValue = function (webUrl) {
|
|
var deferred = this.$q.defer();
|
|
this.$http({
|
|
url: webUrl + '/_api/contextinfo',
|
|
method: 'POST',
|
|
headers: {
|
|
'Accept': 'application/json;odata=nometadata'
|
|
}
|
|
})
|
|
.then(function (digestResult) {
|
|
deferred.resolve(digestResult.data.FormDigestValue);
|
|
}, function (error) {
|
|
var iError = {
|
|
code: error.data.error.code,
|
|
message: error.data.error.message.value,
|
|
status: error.status,
|
|
statusText: error.statusText
|
|
};
|
|
deferred.reject(iError);
|
|
});
|
|
return deferred.promise;
|
|
};
|
|
return BaseService;
|
|
}());
|
|
BaseService.$inject = ["$http", "$q", "pageContext"];
|
|
exports.BaseService = BaseService;
|
|
|
|
//# sourceMappingURL=baseSvc.js.map
|