@progress/sitefinity-webservices-sdk 0.3.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +4 -0
- package/.eslintrc.js +19 -0
- package/ci/pipelines/ci.yml +219 -0
- package/config/helpers.js +0 -6
- package/config/webpack.common.js +1 -3
- package/config/webpack.dev.js +2 -9
- package/config/webpack.prod.js +5 -6
- package/dist/docs/.nojekyll +1 -0
- package/dist/docs/assets/highlight.css +57 -0
- package/dist/docs/assets/icons.css +1043 -0
- package/dist/docs/assets/icons.png +0 -0
- package/dist/docs/assets/icons@2x.png +0 -0
- package/dist/docs/assets/main.js +52 -0
- package/dist/docs/assets/search.js +1 -0
- package/dist/docs/assets/style.css +1413 -0
- package/dist/docs/assets/{images/widgets.png → widgets.png} +0 -0
- package/dist/docs/assets/{images/widgets@2x.png → widgets@2x.png} +0 -0
- package/dist/docs/classes/BlobBuilder.BlobBuilder-1.html +7 -0
- package/dist/docs/classes/Data.Data-1.html +65 -0
- package/dist/docs/classes/Expression.BinaryExpression.html +1 -0
- package/dist/docs/classes/Expression.ComplexExpression.html +1 -0
- package/dist/docs/classes/Expression.ExpressionBase.html +1 -0
- package/dist/docs/classes/OrderProperty.OrderProperty-1.html +1 -0
- package/dist/docs/classes/Query.Query-1.html +33 -0
- package/dist/docs/classes/QueryBase.QueryBase-1.html +7 -0
- package/dist/docs/classes/QueryBuilder.QueryBuilder-1.html +1 -0
- package/dist/docs/classes/Requests_BatchRequest.BatchRequest.html +17 -0
- package/dist/docs/classes/Requests_BatchRequest.Transaction.html +17 -0
- package/dist/docs/classes/Requests_ExecutableRequest.ExecutableRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.CreateRelatedRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.CreateRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.DeleteRelatedByIdRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.DeleteRelatedRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.DeleteRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.GetByIdRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.GetRelatedByIdRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.GetRelatedRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.GetRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.UpdateRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.UploadRequest.html +1 -0
- package/dist/docs/classes/Requests_RequestBase.RequestBase.html +1 -0
- package/dist/docs/classes/Requests_RequestFactory.RequestFactory.html +1 -0
- package/dist/docs/classes/Sitefinity.Sitefinity-1.html +5 -0
- package/dist/docs/classes/WhereQuery.WhereQuery-1.html +31 -0
- package/dist/docs/classes/utils.utils-1.html +1 -0
- package/dist/docs/index.html +54 -242
- package/dist/docs/interfaces/Data.CreateRelatedRequestOptions.html +1 -0
- package/dist/docs/interfaces/Data.CreateRequestOptions.html +1 -0
- package/dist/docs/interfaces/Data.OperationsRequestOptions.html +1 -0
- package/dist/docs/interfaces/Data.PropertyRequestOptions.html +1 -0
- package/dist/docs/interfaces/Data.RequestOptionsBase.html +1 -0
- package/dist/docs/interfaces/Data.SingleRelatedItemRequestOptions.html +1 -0
- package/dist/docs/interfaces/Data.UpdateRequestOptions.html +1 -0
- package/dist/docs/interfaces/Data.UploadRequestOptions.html +1 -0
- package/dist/docs/interfaces/Requests_BatchRequest.BatchCreateRelatedRequestOptions.html +1 -0
- package/dist/docs/interfaces/Requests_BatchRequest.BatchCreateRequestOptions.html +1 -0
- package/dist/docs/interfaces/Requests_BatchRequest.BatchPropertyRequestOptions.html +1 -0
- package/dist/docs/interfaces/Requests_BatchRequest.BatchRequestOptionsBase.html +1 -0
- package/dist/docs/interfaces/Requests_BatchRequest.BatchRequestOptionsExtended.html +1 -0
- package/dist/docs/interfaces/Requests_BatchRequest.BatchSingleItemRequestOptions.html +1 -0
- package/dist/docs/interfaces/Requests_BatchRequest.BatchSingleRelatedItemRequestOptions.html +1 -0
- package/dist/docs/interfaces/Requests_BatchRequest.BatchUpdateRequestOptions.html +1 -0
- package/dist/docs/interfaces/Requests_ExecutableRequest.ResponseHandlers.html +5 -0
- package/dist/docs/interfaces/Requests_Request.PostRequestOptionsExtended.html +1 -0
- package/dist/docs/interfaces/Requests_Request.PutRequestOptionsExtended.html +1 -0
- package/dist/docs/interfaces/Requests_Request.RelatedByIdRequestOptionsExtended.html +1 -0
- package/dist/docs/interfaces/Requests_Request.RelatedRequestOptionsExtended.html +1 -0
- package/dist/docs/interfaces/Requests_Request.UploadRequestOptionsExtended.html +1 -0
- package/dist/docs/interfaces/Requests_RequestBase.RequestOptionsBaseExtended.html +1 -0
- package/dist/docs/interfaces/Sitefinity.SDKOptions.html +9 -0
- package/dist/docs/interfaces/Sitefinity.Token.html +1 -0
- package/dist/docs/interfaces/Sitefinity.TypeOptions.html +13 -0
- package/dist/docs/modules/BlobBuilder.html +1 -0
- package/dist/docs/modules/Data.html +1 -0
- package/dist/docs/modules/Expression.html +1 -0
- package/dist/docs/modules/OrderProperty.html +1 -0
- package/dist/docs/modules/Query.html +1 -0
- package/dist/docs/modules/QueryBase.html +1 -0
- package/dist/docs/modules/QueryBuilder.html +1 -0
- package/dist/docs/modules/Requests_BatchRequest.html +1 -0
- package/dist/docs/modules/Requests_ExecutableRequest.html +1 -0
- package/dist/docs/modules/Requests_Request.html +1 -0
- package/dist/docs/modules/Requests_RequestBase.html +1 -0
- package/dist/docs/modules/Requests_RequestFactory.html +1 -0
- package/dist/docs/modules/Sitefinity.html +1 -0
- package/dist/docs/modules/WhereQuery.html +1 -0
- package/dist/docs/modules/constants.html +1 -0
- package/dist/docs/modules/utils.html +1 -0
- package/dist/docs/modules.html +1 -0
- package/dist/samples.html +33 -81
- package/dist/sitefinity-webservices-sdk.d.ts +16 -0
- package/dist/sitefinity-webservices-sdk.js +1139 -1738
- package/dist/sitefinity-webservices-sdk.js.map +1 -1
- package/dist/sitefinity-webservices-sdk.min.js +2 -16
- package/dist/sitefinity-webservices-sdk.min.js.LICENSE.txt +14 -0
- package/dist/src/BlobBuilder.d.ts +14 -0
- package/dist/src/Data.d.ts +144 -0
- package/dist/src/Expression.d.ts +19 -0
- package/dist/src/OrderProperty.d.ts +8 -0
- package/dist/src/Query.d.ts +59 -0
- package/dist/src/QueryBase.d.ts +18 -0
- package/dist/src/QueryBuilder.d.ts +13 -0
- package/dist/src/Requests/BatchRequest.d.ts +146 -0
- package/dist/src/Requests/ExecutableRequest.d.ts +20 -0
- package/dist/src/Requests/Request.d.ts +88 -0
- package/dist/src/Requests/RequestBase.d.ts +28 -0
- package/dist/src/Requests/RequestFactory.d.ts +22 -0
- package/dist/src/Sitefinity.d.ts +66 -0
- package/dist/src/WhereQuery.d.ts +68 -0
- package/dist/src/constants.d.ts +55 -0
- package/dist/src/utils.d.ts +16 -0
- package/karma.conf.js +29 -0
- package/package-lock.json +16108 -6805
- package/package.json +28 -10
- package/sitefinity-webservices-sdk.ts +16 -0
- package/src/BlobBuilder.ts +7 -12
- package/src/Data.spec.ts +160 -0
- package/src/Data.ts +132 -207
- package/src/Expression.ts +0 -1
- package/src/OrderProperty.ts +4 -5
- package/src/Query.ts +52 -78
- package/src/QueryBase.ts +21 -47
- package/src/QueryBuilder.ts +64 -82
- package/src/Requests/BatchRequest.ts +312 -335
- package/src/Requests/ExecutableRequest.ts +46 -73
- package/src/Requests/Request.ts +134 -260
- package/src/Requests/RequestBase.ts +161 -0
- package/src/Requests/RequestFactory.ts +36 -54
- package/src/Requests/request.spec.ts +108 -0
- package/src/Sitefinity.spec.ts +451 -0
- package/src/Sitefinity.ts +77 -146
- package/src/WhereQuery.ts +52 -112
- package/src/constants.ts +58 -39
- package/src/utils.ts +16 -16
- package/template.html +33 -35
- package/tsconfig.json +8 -1
- package/version.txt +1 -1
- package/config/html.conf.json +0 -5
- package/dist/docs/assets/css/main.css +0 -865
- package/dist/docs/assets/css/main.css.map +0 -7
- package/dist/docs/assets/images/icons.png +0 -0
- package/dist/docs/assets/images/icons@2x.png +0 -0
- package/dist/docs/assets/js/main.js +0 -5
- package/dist/docs/assets/js/search.js +0 -3
- package/dist/docs/classes/_authentication_.authentication.html +0 -527
- package/dist/docs/classes/_blobbuilder_.blobbuilder.html +0 -351
- package/dist/docs/classes/_data_.data.html +0 -974
- package/dist/docs/classes/_expression_.binaryexpression.html +0 -450
- package/dist/docs/classes/_expression_.complexexpression.html +0 -374
- package/dist/docs/classes/_expression_.expressionbase.html +0 -336
- package/dist/docs/classes/_orderproperty_.orderproperty.html +0 -381
- package/dist/docs/classes/_query_.query.html +0 -896
- package/dist/docs/classes/_querybase_.querybase.html +0 -518
- package/dist/docs/classes/_querybuilder_.querybuilder.html +0 -496
- package/dist/docs/classes/_requests_batchrequest_.batchrequest.html +0 -1511
- package/dist/docs/classes/_requests_batchrequest_.transaction.html +0 -804
- package/dist/docs/classes/_requests_executablerequest_.executablerequest.html +0 -549
- package/dist/docs/classes/_requests_request_.createrelatedrequest.html +0 -689
- package/dist/docs/classes/_requests_request_.createrequest.html +0 -680
- package/dist/docs/classes/_requests_request_.deleterelatedbyidrequest.html +0 -687
- package/dist/docs/classes/_requests_request_.deleterelatedrequest.html +0 -673
- package/dist/docs/classes/_requests_request_.deleterequest.html +0 -666
- package/dist/docs/classes/_requests_request_.getbyidrequest.html +0 -666
- package/dist/docs/classes/_requests_request_.getrelatedbyidrequest.html +0 -687
- package/dist/docs/classes/_requests_request_.getrelatedrequest.html +0 -673
- package/dist/docs/classes/_requests_request_.getrequest.html +0 -658
- package/dist/docs/classes/_requests_request_.requestbase.html +0 -687
- package/dist/docs/classes/_requests_request_.updaterequest.html +0 -686
- package/dist/docs/classes/_requests_request_.uploadrequest.html +0 -715
- package/dist/docs/classes/_requests_requestfactory_.requestfactory.html +0 -724
- package/dist/docs/classes/_sitefinity_.sitefinity.html +0 -521
- package/dist/docs/classes/_utils_.utils.html +0 -597
- package/dist/docs/classes/_wherequery_.wherequery.html +0 -992
- package/dist/docs/globals.html +0 -238
- package/dist/docs/modules/_authentication_.html +0 -225
- package/dist/docs/modules/_blobbuilder_.html +0 -225
- package/dist/docs/modules/_constants_.html +0 -528
- package/dist/docs/modules/_contenttypes_.html +0 -248
- package/dist/docs/modules/_data_.html +0 -225
- package/dist/docs/modules/_expression_.html +0 -233
- package/dist/docs/modules/_headers_.html +0 -328
- package/dist/docs/modules/_httpmethods_.html +0 -288
- package/dist/docs/modules/_main_.html +0 -209
- package/dist/docs/modules/_orderproperty_.html +0 -225
- package/dist/docs/modules/_query_.html +0 -225
- package/dist/docs/modules/_querybase_.html +0 -225
- package/dist/docs/modules/_querybuilder_.html +0 -247
- package/dist/docs/modules/_requests_batchrequest_.html +0 -265
- package/dist/docs/modules/_requests_executablerequest_.html +0 -296
- package/dist/docs/modules/_requests_request_.html +0 -333
- package/dist/docs/modules/_requests_requestfactory_.html +0 -247
- package/dist/docs/modules/_sitefinity_.html +0 -225
- package/dist/docs/modules/_utils_.html +0 -225
- package/dist/docs/modules/_wherequery_.html +0 -247
- package/dist/index.html +0 -474
- package/src/Authentication.ts +0 -96
- package/src/ContentTypes.ts +0 -5
- package/src/Headers.ts +0 -12
- package/src/HttpMethods.ts +0 -9
- package/src/main.ts +0 -2
|
@@ -1,138 +1,111 @@
|
|
|
1
|
-
import { RequestBase } from './
|
|
1
|
+
import { RequestBase, RequestOptionsBaseExtended } from './RequestBase';
|
|
2
2
|
import { utils } from '../utils';
|
|
3
|
+
import { HEADER_NAMES } from "../constants";
|
|
4
|
+
import { SDKOptions, Token } from "../Sitefinity";
|
|
3
5
|
|
|
4
|
-
|
|
5
|
-
var XMLHttpRequestDone = 4;
|
|
6
|
+
const XMLHttpRequestDone = 4;
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export class ExecutableRequest {
|
|
12
|
-
private request: RequestBase;
|
|
13
|
-
private handlers: any;
|
|
14
|
-
private token: any;
|
|
8
|
+
export class ExecutableRequest extends RequestBase {
|
|
9
|
+
private token: Token;
|
|
15
10
|
private enableUnlimitedChoices: boolean;
|
|
16
11
|
private integrationMode: boolean;
|
|
17
12
|
|
|
18
|
-
constructor(
|
|
19
|
-
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
23
|
-
this.
|
|
13
|
+
constructor(requestOptions: RequestOptionsBaseExtended, token: Token, sdkOptions: SDKOptions) {
|
|
14
|
+
super(requestOptions);
|
|
15
|
+
this.token = token;
|
|
16
|
+
this.successCb = this.successCb || sdkOptions.handlers?.successCb;
|
|
17
|
+
this.failureCb = this.failureCb || sdkOptions.handlers?.failureCb;
|
|
18
|
+
this.enableUnlimitedChoices = sdkOptions.enableUnlimitedChoices;
|
|
19
|
+
this.integrationMode = sdkOptions.integrationMode;
|
|
24
20
|
}
|
|
25
21
|
|
|
26
22
|
execute() {
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
_execute() {
|
|
31
|
-
var http = new XMLHttpRequest();
|
|
23
|
+
const http = new XMLHttpRequest();
|
|
32
24
|
|
|
33
25
|
http.onreadystatechange = () => {
|
|
34
26
|
if (http.readyState === XMLHttpRequestDone) {
|
|
35
27
|
if (http.status > 0) {
|
|
36
|
-
|
|
28
|
+
let data = this.parseResponse(http);
|
|
37
29
|
|
|
38
30
|
if (http.status >= 200 && http.status <= 206) {
|
|
39
31
|
|
|
40
|
-
if (isFunction(this.
|
|
41
|
-
this.
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
if (this.handlers && isFunction(this.handlers.successCb)) {
|
|
45
|
-
this.handlers.successCb(data);
|
|
32
|
+
if (utils.isFunction(this.successCb)) {
|
|
33
|
+
this.successCb(data);
|
|
46
34
|
}
|
|
47
35
|
}
|
|
48
36
|
else if (http.status >= 400) {
|
|
49
37
|
// When the data is string, we save the string as message
|
|
50
38
|
// and convert the data to normal object with message property
|
|
51
39
|
if (utils.isString(data)) {
|
|
52
|
-
var message = data;
|
|
53
40
|
data = {
|
|
54
|
-
message:
|
|
41
|
+
message: data
|
|
55
42
|
};
|
|
56
43
|
}
|
|
57
44
|
|
|
58
45
|
data.status = http.status;
|
|
59
46
|
|
|
60
47
|
// in case of errors we would like there to be one handler for all of the errors
|
|
61
|
-
if (isFunction(this.
|
|
62
|
-
this.
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
if (this.handlers && isFunction(this.handlers.failureCb)) {
|
|
66
|
-
this.handlers.failureCb(data);
|
|
48
|
+
if (utils.isFunction(this.failureCb)) {
|
|
49
|
+
this.failureCb(data);
|
|
67
50
|
}
|
|
68
51
|
}
|
|
69
52
|
}
|
|
70
53
|
}
|
|
71
54
|
};
|
|
72
55
|
|
|
73
|
-
if (isFunction(this.
|
|
56
|
+
if (utils.isFunction(this.progressCb)) {
|
|
74
57
|
if (http.upload) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
that.request.progressCb(event);
|
|
58
|
+
http.upload.onprogress = (event) => {
|
|
59
|
+
this.progressCb(event);
|
|
78
60
|
};
|
|
79
61
|
}
|
|
80
62
|
}
|
|
81
63
|
|
|
82
|
-
|
|
83
|
-
|
|
64
|
+
const method = this.getMethod();
|
|
65
|
+
const url = this.buildUrl();
|
|
84
66
|
http.open(method, url, true);
|
|
85
|
-
this.setHeaders(http, this.
|
|
67
|
+
this.setHeaders(http, this.getHeaders());
|
|
86
68
|
|
|
87
|
-
http.send(this.
|
|
69
|
+
http.send(utils.serializeToJSON(this.getBody()));
|
|
88
70
|
}
|
|
89
71
|
|
|
90
|
-
setHeaders(http:
|
|
91
|
-
|
|
92
|
-
for (
|
|
93
|
-
|
|
72
|
+
private setHeaders(http: XMLHttpRequest, headers: { [key: string]: string }) {
|
|
73
|
+
const headerKeys = Object.keys(headers);
|
|
74
|
+
for (let i = 0; i < headerKeys.length; i++) {
|
|
75
|
+
const currentHeaderName = headerKeys[i];
|
|
94
76
|
http.setRequestHeader(currentHeaderName, headers[currentHeaderName]);
|
|
95
77
|
}
|
|
96
78
|
|
|
97
79
|
if (this.token) {
|
|
98
80
|
if (typeof this.token === 'string') {
|
|
99
81
|
// for backward compatibility
|
|
100
|
-
http.setRequestHeader(
|
|
82
|
+
http.setRequestHeader(HEADER_NAMES.authorization, this.token);
|
|
101
83
|
} else {
|
|
102
|
-
http.setRequestHeader(
|
|
84
|
+
http.setRequestHeader(HEADER_NAMES.authorization, this.token.type + " " + this.token.value);
|
|
103
85
|
}
|
|
104
86
|
}
|
|
105
87
|
|
|
106
88
|
if (this.enableUnlimitedChoices) {
|
|
107
|
-
http.setRequestHeader(
|
|
89
|
+
http.setRequestHeader(HEADER_NAMES.choicesBinaryRepresentation, "true");
|
|
108
90
|
}
|
|
109
91
|
|
|
110
92
|
if (this.integrationMode) {
|
|
111
|
-
http.setRequestHeader(
|
|
93
|
+
http.setRequestHeader(HEADER_NAMES.integrationMode, "true");
|
|
112
94
|
}
|
|
113
95
|
|
|
114
96
|
// for backward compatibility
|
|
115
|
-
http.setRequestHeader(
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
_getBody() {
|
|
119
|
-
var body = utils.serializeToJSON(this.request._getBody());
|
|
120
|
-
return body;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
_getMethod = function() {
|
|
124
|
-
return this.request._getMethod();
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
_getHeaders = function () {
|
|
128
|
-
return this.request._getHeaders();
|
|
97
|
+
http.setRequestHeader(HEADER_NAMES.serviceRequest, "true");
|
|
129
98
|
}
|
|
99
|
+
}
|
|
130
100
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
101
|
+
export interface ResponseHandlers {
|
|
102
|
+
/**
|
|
103
|
+
* The success handler.
|
|
104
|
+
*/
|
|
105
|
+
successCb?: Function;
|
|
134
106
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
107
|
+
/**
|
|
108
|
+
* The failure handler.
|
|
109
|
+
*/
|
|
110
|
+
failureCb?: Function;
|
|
138
111
|
}
|
package/src/Requests/Request.ts
CHANGED
|
@@ -1,339 +1,213 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var httpMethods = require("../HttpMethods").default;
|
|
7
|
-
|
|
8
|
-
export class RequestBase {
|
|
9
|
-
public successCb: (data: any) => void;
|
|
10
|
-
public failureCb: (data: any) => void;
|
|
11
|
-
public progressCb: any;
|
|
12
|
-
public key: string;
|
|
13
|
-
private action: string;
|
|
14
|
-
private _fallbackProperties: string[];
|
|
15
|
-
public urlOptions: any;
|
|
16
|
-
|
|
17
|
-
constructor(options: any) {
|
|
18
|
-
this.successCb = options.successCb;
|
|
19
|
-
this.failureCb = options.failureCb;
|
|
20
|
-
this.urlOptions = options.urlOptions;
|
|
21
|
-
this.progressCb = options.progressCb;
|
|
22
|
-
this.key = options.key;
|
|
23
|
-
this.action = options.action;
|
|
24
|
-
this._fallbackProperties = options.fallbackProperties;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
_getBody() {
|
|
28
|
-
return undefined;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
_getMethod() {
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
_getHeaders(): any {
|
|
36
|
-
var headers = {};
|
|
37
|
-
headers[headerNames.contentType] = contentTypes.json;
|
|
38
|
-
return headers;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
_getQueryParameters(paramDictionary: any, urlOptions: any) {
|
|
42
|
-
if (urlOptions.ODataParams) {
|
|
43
|
-
var query = urlOptions.ODataParams.build();
|
|
44
|
-
if (utils.isString(query.$filter))
|
|
45
|
-
paramDictionary[constants.ODataParams.$filter] = query.$filter;
|
|
46
|
-
if (utils.isString(query.$select))
|
|
47
|
-
paramDictionary[constants.ODataParams.$select] = query.$select;
|
|
48
|
-
if (utils.isString(query.$expand))
|
|
49
|
-
paramDictionary[constants.ODataParams.$expand] = query.$expand;
|
|
50
|
-
if (utils.isString(query.$orderby))
|
|
51
|
-
paramDictionary[constants.ODataParams.$orderby] = query.$orderby;
|
|
52
|
-
if (utils.isNumber(query.$skip))
|
|
53
|
-
paramDictionary[constants.ODataParams.$skip] = query.$skip;
|
|
54
|
-
if (utils.isNumber(query.$top))
|
|
55
|
-
paramDictionary[constants.ODataParams.$top] = query.$top;
|
|
56
|
-
if (utils.isString(query.$search))
|
|
57
|
-
paramDictionary[constants.ODataParams.$search] = query.$search;
|
|
58
|
-
|
|
59
|
-
// inline count
|
|
60
|
-
if (utils.isBoolean(query.$count) && query.$count)
|
|
61
|
-
paramDictionary[constants.ODataParams.$count] = query.$count;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if (urlOptions.SFParams) {
|
|
65
|
-
var sfParams = urlOptions.SFParams;
|
|
66
|
-
if (sfParams.provider) {
|
|
67
|
-
paramDictionary[constants.SfParams.provider] = sfParams.provider;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if (sfParams.culture) {
|
|
71
|
-
paramDictionary[constants.SfParams.culture] = sfParams.culture;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
if (sfParams.siteId) {
|
|
75
|
-
paramDictionary[constants.SfParams.siteId] = sfParams.siteId;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
if (this._fallbackProperties) {
|
|
80
|
-
paramDictionary["sf_fallback_prop_names"] = this._fallbackProperties.join();
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
if (urlOptions.additionalQueryParams) {
|
|
84
|
-
for (const key in urlOptions.additionalQueryParams) {
|
|
85
|
-
if (urlOptions.additionalQueryParams.hasOwnProperty(key)) {
|
|
86
|
-
paramDictionary[key] = urlOptions.additionalQueryParams[key];
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
_getQueryString(urlOptions: any) {
|
|
93
|
-
var paramDictionary = {};
|
|
94
|
-
|
|
95
|
-
this._getQueryParameters(paramDictionary, urlOptions);
|
|
96
|
-
var keys = Object.keys(paramDictionary);
|
|
97
|
-
if (keys.length == 0)
|
|
98
|
-
return null;
|
|
99
|
-
|
|
100
|
-
var queryString = "?";
|
|
101
|
-
for (var prop in paramDictionary) {
|
|
102
|
-
queryString += prop + "=" + paramDictionary[prop] + "&";
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
queryString = queryString.substring(0, queryString.length - 1);
|
|
106
|
-
|
|
107
|
-
return queryString;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
_buildUrl() {
|
|
111
|
-
var url = this.urlOptions.baseUrl + (this.urlOptions.entitySet || "");
|
|
112
|
-
url += this.key ? ("(" + this.key + ")") : "";
|
|
113
|
-
if (this.action) {
|
|
114
|
-
url += url.endsWith("/") ? "" : "/";
|
|
115
|
-
url += this.action;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// including count here
|
|
119
|
-
// not the best solution as build() is called once more in getQueryString
|
|
120
|
-
// but not that big of an issue right now
|
|
121
|
-
if (this.urlOptions.ODataParams) {
|
|
122
|
-
var getCount = this.urlOptions.ODataParams.build().$count;
|
|
123
|
-
|
|
124
|
-
if (utils.isBoolean(getCount) && !getCount) {
|
|
125
|
-
url += "/$count";
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
return this._addQueryParameters(url);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
_parseResponse(http: any) {
|
|
133
|
-
var data = utils.parseStringToJson(http.responseText);
|
|
134
|
-
if (data) {
|
|
135
|
-
if (http.status >= 400 && data.error) {
|
|
136
|
-
return data.error;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
return data;
|
|
140
|
-
}
|
|
1
|
+
import { HEADER_NAMES, HTTP_METHODS } from "../constants";
|
|
2
|
+
import { SDKOptions, Token } from "../Sitefinity";
|
|
3
|
+
import { utils } from '../utils';
|
|
4
|
+
import { ExecutableRequest } from "./ExecutableRequest";
|
|
5
|
+
import { RequestOptionsBaseExtended } from "./RequestBase";
|
|
141
6
|
|
|
142
|
-
|
|
7
|
+
export class GetRequest extends ExecutableRequest {
|
|
8
|
+
constructor(requestOptions: RequestOptionsBaseExtended, token: Token, sdkOptions: SDKOptions) {
|
|
9
|
+
super(requestOptions, token, sdkOptions);
|
|
143
10
|
}
|
|
144
11
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
if (queryString) {
|
|
149
|
-
if (url.indexOf("?") > -1 && queryString[0] == "?") {
|
|
150
|
-
queryString = "&" + queryString.substring(1);
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
url += queryString;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
return url;
|
|
12
|
+
getMethod(): string {
|
|
13
|
+
return HTTP_METHODS.get;
|
|
157
14
|
}
|
|
158
15
|
}
|
|
159
16
|
|
|
160
|
-
export class
|
|
161
|
-
constructor(
|
|
162
|
-
super(
|
|
17
|
+
export class GetByIdRequest extends ExecutableRequest {
|
|
18
|
+
constructor(requestOptions: RequestOptionsBaseExtended, token: Token, sdkOptions: SDKOptions) {
|
|
19
|
+
super(requestOptions, token, sdkOptions);
|
|
163
20
|
}
|
|
164
21
|
|
|
165
|
-
|
|
166
|
-
return
|
|
22
|
+
getMethod(): string {
|
|
23
|
+
return HTTP_METHODS.get;
|
|
167
24
|
}
|
|
168
25
|
}
|
|
169
26
|
|
|
170
|
-
export class
|
|
171
|
-
constructor(
|
|
172
|
-
super(
|
|
27
|
+
export class DeleteRequest extends ExecutableRequest {
|
|
28
|
+
constructor(requestOptions: RequestOptionsBaseExtended, token: Token, sdkOptions: SDKOptions) {
|
|
29
|
+
super(requestOptions, token, sdkOptions);
|
|
173
30
|
}
|
|
174
31
|
|
|
175
|
-
|
|
176
|
-
return
|
|
32
|
+
getMethod(): string {
|
|
33
|
+
return HTTP_METHODS.delete;
|
|
177
34
|
}
|
|
178
35
|
}
|
|
179
36
|
|
|
180
|
-
export class
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
_getMethod() {
|
|
186
|
-
return httpMethods.Delete;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
37
|
+
export class UpdateRequest extends ExecutableRequest {
|
|
38
|
+
private data: object;
|
|
39
|
+
private saveTemp: boolean;
|
|
189
40
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
super(options);
|
|
195
|
-
this._data = options.data;
|
|
196
|
-
this._saveTemp = options.saveTemp;
|
|
41
|
+
constructor(requestOptions: PutRequestOptionsExtended, token: Token, sdkOptions: SDKOptions) {
|
|
42
|
+
super(requestOptions, token, sdkOptions);
|
|
43
|
+
this.data = requestOptions.data;
|
|
44
|
+
this.saveTemp = requestOptions.saveTemp;
|
|
197
45
|
}
|
|
198
46
|
|
|
199
|
-
|
|
200
|
-
return
|
|
47
|
+
getMethod(): string {
|
|
48
|
+
return HTTP_METHODS.patch;
|
|
201
49
|
}
|
|
202
50
|
|
|
203
|
-
|
|
204
|
-
|
|
51
|
+
getBody(): object {
|
|
52
|
+
const body = utils.convertDateFieldToISOString(this.data);
|
|
205
53
|
return body;
|
|
206
54
|
}
|
|
207
55
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
if (this.
|
|
211
|
-
headers[
|
|
56
|
+
getHeaders(): { [key: string]: string } {
|
|
57
|
+
const headers = super.getHeaders();
|
|
58
|
+
if (this.saveTemp) {
|
|
59
|
+
headers[HEADER_NAMES.operation] = "SaveTemp";
|
|
212
60
|
}
|
|
213
61
|
|
|
214
62
|
return headers;
|
|
215
63
|
}
|
|
216
64
|
}
|
|
217
65
|
|
|
218
|
-
export class CreateRequest extends
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
66
|
+
export class CreateRequest extends ExecutableRequest {
|
|
67
|
+
protected data: object;
|
|
68
|
+
|
|
69
|
+
constructor(requestOptions: PostRequestOptionsExtended, token: Token, sdkOptions: SDKOptions) {
|
|
70
|
+
super(requestOptions, token, sdkOptions);
|
|
71
|
+
this.data = requestOptions.data;
|
|
223
72
|
}
|
|
224
73
|
|
|
225
|
-
|
|
226
|
-
return
|
|
74
|
+
getMethod(): string {
|
|
75
|
+
return HTTP_METHODS.post;
|
|
227
76
|
}
|
|
228
77
|
|
|
229
|
-
|
|
230
|
-
|
|
78
|
+
getBody(): object {
|
|
79
|
+
const body = utils.convertDateFieldToISOString(this.data);
|
|
231
80
|
return body;
|
|
232
81
|
}
|
|
233
82
|
}
|
|
234
83
|
|
|
235
84
|
export class GetRelatedRequest extends GetByIdRequest {
|
|
236
|
-
private
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
85
|
+
private property: string;
|
|
86
|
+
|
|
87
|
+
constructor(requestOptions: RelatedRequestOptionsExtended, token: Token, sdkOptions: SDKOptions) {
|
|
88
|
+
super(requestOptions, token, sdkOptions);
|
|
89
|
+
this.property = requestOptions.property;
|
|
240
90
|
}
|
|
241
91
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
return this.
|
|
92
|
+
buildUrl(): string {
|
|
93
|
+
const url = this.urlOptions.baseUrl + this.urlOptions.entitySet + "(" + this.key + ")/" + this.property;
|
|
94
|
+
return this.addQueryParameters(url);
|
|
245
95
|
}
|
|
246
96
|
}
|
|
247
97
|
|
|
248
98
|
export class GetRelatedByIdRequest extends GetByIdRequest {
|
|
249
|
-
private
|
|
250
|
-
private
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
this.
|
|
99
|
+
private property: string;
|
|
100
|
+
private relatedId: string;
|
|
101
|
+
|
|
102
|
+
constructor(requestOptions: RelatedByIdRequestOptionsExtended, token: Token, sdkOptions: SDKOptions) {
|
|
103
|
+
super(requestOptions, token, sdkOptions);
|
|
104
|
+
this.property = requestOptions.property;
|
|
105
|
+
this.relatedId = requestOptions.relatedId;
|
|
255
106
|
}
|
|
256
107
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
return this.
|
|
108
|
+
buildUrl(): string {
|
|
109
|
+
const url = this.urlOptions.baseUrl + this.urlOptions.entitySet + "(" + this.key + ")/" + this.property + "(" + this.relatedId + ")";
|
|
110
|
+
return this.addQueryParameters(url);
|
|
260
111
|
}
|
|
261
112
|
}
|
|
262
113
|
|
|
263
114
|
export class DeleteRelatedRequest extends DeleteRequest {
|
|
264
|
-
private
|
|
265
|
-
constructor(options: any) {
|
|
266
|
-
super(options);
|
|
267
|
-
this.navigationProperty = options.navigationProperty;
|
|
268
|
-
}
|
|
115
|
+
private property: string;
|
|
269
116
|
|
|
117
|
+
constructor(requestOptions: RelatedRequestOptionsExtended, token: Token, sdkOptions: SDKOptions) {
|
|
118
|
+
super(requestOptions, token, sdkOptions);
|
|
119
|
+
this.property = requestOptions.property;
|
|
120
|
+
}
|
|
270
121
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
return this.
|
|
122
|
+
buildUrl(): string {
|
|
123
|
+
const url = this.urlOptions.baseUrl + this.urlOptions.entitySet + "(" + this.key + ")/" + this.property + "/$ref"
|
|
124
|
+
return this.addQueryParameters(url);
|
|
274
125
|
}
|
|
275
126
|
}
|
|
276
127
|
|
|
277
128
|
export class DeleteRelatedByIdRequest extends DeleteRequest {
|
|
278
|
-
private
|
|
279
|
-
private
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
this.
|
|
129
|
+
private property: string;
|
|
130
|
+
private relatedId: string;
|
|
131
|
+
|
|
132
|
+
constructor(requestOptions: RelatedByIdRequestOptionsExtended, token: Token, sdkOptions: SDKOptions) {
|
|
133
|
+
super(requestOptions, token, sdkOptions);
|
|
134
|
+
this.property = requestOptions.property;
|
|
135
|
+
this.relatedId = requestOptions.relatedId;
|
|
284
136
|
}
|
|
285
137
|
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
return this.
|
|
138
|
+
buildUrl(): string {
|
|
139
|
+
const url = this.urlOptions.baseUrl + this.urlOptions.entitySet + "(" + this.key + ")/" + this.property + "(" + this.relatedId + ")/$ref";
|
|
140
|
+
return this.addQueryParameters(url);
|
|
289
141
|
}
|
|
290
142
|
}
|
|
291
143
|
|
|
292
144
|
export class CreateRelatedRequest extends CreateRequest {
|
|
293
|
-
private
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
this.
|
|
145
|
+
private property: string;
|
|
146
|
+
|
|
147
|
+
constructor(requestOptions: RelatedRequestOptionsExtended, token: Token, sdkOptions: SDKOptions) {
|
|
148
|
+
super(requestOptions, token, sdkOptions);
|
|
149
|
+
this.property = requestOptions.property;
|
|
150
|
+
this.key = requestOptions.key;
|
|
298
151
|
}
|
|
299
152
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
return this.
|
|
153
|
+
buildUrl(): string {
|
|
154
|
+
const url = this.urlOptions.baseUrl + this.urlOptions.entitySet + "(" + this.key + ")/" + this.property + "/$ref";
|
|
155
|
+
return this.addQueryParameters(url);
|
|
303
156
|
}
|
|
304
157
|
}
|
|
305
158
|
|
|
306
|
-
|
|
307
159
|
export class UploadRequest extends CreateRequest {
|
|
308
|
-
private fileName:
|
|
309
|
-
private uploadProperties:
|
|
310
|
-
private contentType:
|
|
311
|
-
|
|
312
|
-
constructor(
|
|
313
|
-
super(
|
|
314
|
-
this.fileName =
|
|
315
|
-
this.uploadProperties =
|
|
316
|
-
this.contentType =
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
headers[
|
|
322
|
-
headers[
|
|
323
|
-
headers[
|
|
324
|
-
headers[
|
|
160
|
+
private fileName: string;
|
|
161
|
+
private uploadProperties: { [key: string]: string };
|
|
162
|
+
private contentType: string;
|
|
163
|
+
|
|
164
|
+
constructor(requestOptions: UploadRequestOptionsExtended, token: Token, sdkOptions: SDKOptions) {
|
|
165
|
+
super(requestOptions, token, sdkOptions);
|
|
166
|
+
this.fileName = requestOptions.fileName;
|
|
167
|
+
this.uploadProperties = requestOptions.uploadProperties;
|
|
168
|
+
this.contentType = requestOptions.contentType;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
getHeaders(): { [key: string]: string } {
|
|
172
|
+
const headers = super.getHeaders();
|
|
173
|
+
headers[HEADER_NAMES.contentType] = this.contentType || "application/octet-stream";
|
|
174
|
+
headers[HEADER_NAMES.fileName] = this.fileName;
|
|
175
|
+
headers[HEADER_NAMES.properties] = JSON.stringify(this.uploadProperties);
|
|
176
|
+
headers[HEADER_NAMES.contentEncoding] = "identity";
|
|
325
177
|
return headers;
|
|
326
178
|
}
|
|
327
179
|
|
|
328
|
-
|
|
329
|
-
return this.
|
|
180
|
+
getBody(): object {
|
|
181
|
+
return this.data;
|
|
330
182
|
}
|
|
331
183
|
|
|
332
|
-
|
|
184
|
+
getMethod(): string {
|
|
333
185
|
if (this.key) {
|
|
334
|
-
return
|
|
186
|
+
return HTTP_METHODS.patch;
|
|
335
187
|
}
|
|
336
188
|
|
|
337
|
-
return
|
|
189
|
+
return HTTP_METHODS.post;
|
|
338
190
|
}
|
|
339
191
|
}
|
|
192
|
+
|
|
193
|
+
export interface PostRequestOptionsExtended extends RequestOptionsBaseExtended {
|
|
194
|
+
data?: object;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
export interface PutRequestOptionsExtended extends PostRequestOptionsExtended {
|
|
198
|
+
saveTemp: boolean;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
export interface RelatedRequestOptionsExtended extends PostRequestOptionsExtended {
|
|
202
|
+
property: string;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
export interface RelatedByIdRequestOptionsExtended extends RelatedRequestOptionsExtended {
|
|
206
|
+
relatedId: string;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
export interface UploadRequestOptionsExtended extends PostRequestOptionsExtended {
|
|
210
|
+
fileName: string;
|
|
211
|
+
contentType: string;
|
|
212
|
+
uploadProperties: { [key: string]: string };
|
|
213
|
+
}
|