@progress/sitefinity-webservices-sdk 0.3.0 → 1.0.2
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 +1140 -1734
- 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 +68 -83
- 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 +418 -0
- package/src/Sitefinity.ts +77 -146
- package/src/WhereQuery.ts +52 -112
- package/src/constants.ts +58 -39
- package/src/utils.ts +17 -14
- package/template.html +33 -35
- package/tsconfig.json +8 -1
- package/type.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 -493
- 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
- package/version.txt +0 -1
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { CONTENT_TYPES, HEADER_NAMES, ODATA_PARAMS, SF_PARAMS } from "../constants";
|
|
2
|
+
import { RequestOptionsBase } from "../Data";
|
|
3
|
+
import { Query } from "../Query";
|
|
4
|
+
import { TypeOptions } from "../Sitefinity";
|
|
5
|
+
import { utils } from '../utils';
|
|
6
|
+
|
|
7
|
+
export class RequestBase {
|
|
8
|
+
public successCb: Function;
|
|
9
|
+
public failureCb: Function;
|
|
10
|
+
public progressCb: Function;
|
|
11
|
+
public key: string | number;
|
|
12
|
+
public urlOptions: TypeOptions;
|
|
13
|
+
protected query: Query;
|
|
14
|
+
private action: string;
|
|
15
|
+
private fallbackProperties: string[];
|
|
16
|
+
|
|
17
|
+
constructor(options: RequestOptionsBaseExtended) {
|
|
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
|
+
this.query = options.query;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
getQueryString(urlOptions: TypeOptions, query: Query): string {
|
|
29
|
+
const paramDictionary: { [key: string]: string } = {};
|
|
30
|
+
|
|
31
|
+
this.getQueryParameters(paramDictionary, urlOptions, query);
|
|
32
|
+
const keys = Object.keys(paramDictionary);
|
|
33
|
+
if (keys.length == 0)
|
|
34
|
+
return null;
|
|
35
|
+
|
|
36
|
+
let queryString = "?";
|
|
37
|
+
for (const prop in paramDictionary) {
|
|
38
|
+
queryString += prop + "=" + paramDictionary[prop] + "&";
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
queryString = queryString.substring(0, queryString.length - 1);
|
|
42
|
+
|
|
43
|
+
return queryString;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
getBody(): object {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
getMethod(): string {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
getHeaders(): { [key: string]: string } {
|
|
55
|
+
const headers = {};
|
|
56
|
+
headers[HEADER_NAMES.contentType] = CONTENT_TYPES.json;
|
|
57
|
+
return headers;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
buildUrl(): string {
|
|
61
|
+
let url = this.urlOptions.baseUrl + (this.urlOptions.entitySet || "");
|
|
62
|
+
url += this.key ? ("(" + this.key + ")") : "";
|
|
63
|
+
if (this.action) {
|
|
64
|
+
url += url.endsWith("/") ? "" : "/";
|
|
65
|
+
url += this.action;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// including count here
|
|
69
|
+
// not the best solution as build() is called once more in getQueryString
|
|
70
|
+
// but not that big of an issue right now
|
|
71
|
+
if (this.query) {
|
|
72
|
+
const getCount = this.query.build().$count;
|
|
73
|
+
|
|
74
|
+
if (utils.isBoolean(getCount) && !getCount) {
|
|
75
|
+
url += "/$count";
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return this.addQueryParameters(url);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
protected parseResponse(http: XMLHttpRequest): string | any {
|
|
83
|
+
const data = utils.parseStringToJson(http.responseText);
|
|
84
|
+
if (data) {
|
|
85
|
+
if (http.status >= 400 && data.error) {
|
|
86
|
+
return data.error;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return data;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return http.responseText;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
protected addQueryParameters(url: string): string {
|
|
96
|
+
let queryString = this.getQueryString(this.urlOptions, this.query);
|
|
97
|
+
|
|
98
|
+
if (queryString) {
|
|
99
|
+
if (url.indexOf("?") > -1 && queryString[0] == "?") {
|
|
100
|
+
queryString = "&" + queryString.substring(1);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
url += queryString;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
return url;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
private getQueryParameters(paramDictionary: { [key: string]: string }, urlOptions: TypeOptions, query: Query) {
|
|
110
|
+
if (query) {
|
|
111
|
+
const builtQuery = query.build();
|
|
112
|
+
if (utils.isString(builtQuery.$filter))
|
|
113
|
+
paramDictionary[ODATA_PARAMS.$filter] = builtQuery.$filter;
|
|
114
|
+
if (utils.isString(builtQuery.$select))
|
|
115
|
+
paramDictionary[ODATA_PARAMS.$select] = builtQuery.$select;
|
|
116
|
+
if (utils.isString(builtQuery.$expand))
|
|
117
|
+
paramDictionary[ODATA_PARAMS.$expand] = builtQuery.$expand;
|
|
118
|
+
if (utils.isString(builtQuery.$orderby))
|
|
119
|
+
paramDictionary[ODATA_PARAMS.$orderby] = builtQuery.$orderby;
|
|
120
|
+
if (utils.isNumber(builtQuery.$skip))
|
|
121
|
+
paramDictionary[ODATA_PARAMS.$skip] = builtQuery.$skip;
|
|
122
|
+
if (utils.isNumber(builtQuery.$top))
|
|
123
|
+
paramDictionary[ODATA_PARAMS.$top] = builtQuery.$top;
|
|
124
|
+
if (utils.isString(builtQuery.$search))
|
|
125
|
+
paramDictionary[ODATA_PARAMS.$search] = builtQuery.$search;
|
|
126
|
+
|
|
127
|
+
// inline count
|
|
128
|
+
if (utils.isBoolean(builtQuery.$count) && builtQuery.$count)
|
|
129
|
+
paramDictionary[ODATA_PARAMS.$count] = builtQuery.$count;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
if (urlOptions.provider) {
|
|
133
|
+
paramDictionary[SF_PARAMS.provider] = urlOptions.provider;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
if (urlOptions.culture) {
|
|
137
|
+
paramDictionary[SF_PARAMS.culture] = urlOptions.culture;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
if (urlOptions.siteId) {
|
|
141
|
+
paramDictionary[SF_PARAMS.siteId] = urlOptions.siteId;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
if (this.fallbackProperties) {
|
|
145
|
+
paramDictionary[SF_PARAMS.fallbackParams] = this.fallbackProperties.join();
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
if (urlOptions.additionalQueryParams) {
|
|
149
|
+
for (const key in urlOptions.additionalQueryParams) {
|
|
150
|
+
if (urlOptions.additionalQueryParams.hasOwnProperty(key)) {
|
|
151
|
+
paramDictionary[key] = urlOptions.additionalQueryParams[key];
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export interface RequestOptionsBaseExtended extends RequestOptionsBase {
|
|
159
|
+
progressCb?: Function;
|
|
160
|
+
urlOptions: TypeOptions;
|
|
161
|
+
}
|
|
@@ -1,85 +1,67 @@
|
|
|
1
|
-
import { GetRequest, GetByIdRequest, CreateRequest, UpdateRequest, DeleteRequest, GetRelatedRequest, GetRelatedByIdRequest, DeleteRelatedRequest, DeleteRelatedByIdRequest, CreateRelatedRequest, UploadRequest } from "./Request";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { GetRequest, GetByIdRequest, CreateRequest, UpdateRequest, DeleteRequest, GetRelatedRequest, GetRelatedByIdRequest, DeleteRelatedRequest, DeleteRelatedByIdRequest, CreateRelatedRequest, UploadRequest, PostRequestOptionsExtended, PutRequestOptionsExtended, RelatedRequestOptionsExtended, RelatedByIdRequestOptionsExtended, UploadRequestOptionsExtended } from "./Request";
|
|
2
|
+
import { SDKOptions, Token } from "../Sitefinity";
|
|
3
|
+
import { BatchRequest, BatchRequestOptionsExtended } from "./BatchRequest";
|
|
4
|
+
import { RequestOptionsBaseExtended } from "./RequestBase";
|
|
5
5
|
|
|
6
6
|
export class RequestFactory {
|
|
7
|
-
public token:
|
|
8
|
-
private
|
|
9
|
-
private enableUnlimitedChoices: boolean;
|
|
10
|
-
private integrationMode: boolean;
|
|
11
|
-
|
|
12
|
-
constructor(options: any) {
|
|
13
|
-
this.token = null;
|
|
14
|
-
this.handlers = options.handlers;
|
|
15
|
-
this.enableUnlimitedChoices = options.enableUnlimitedChoices;
|
|
16
|
-
this.integrationMode = options.integrationMode;
|
|
17
|
-
}
|
|
7
|
+
public token: Token;
|
|
8
|
+
private options: SDKOptions;
|
|
18
9
|
|
|
19
|
-
|
|
20
|
-
|
|
10
|
+
constructor(options: SDKOptions) {
|
|
11
|
+
this.options = options;
|
|
21
12
|
}
|
|
22
13
|
|
|
23
|
-
|
|
24
|
-
return
|
|
14
|
+
get(parameters: RequestOptionsBaseExtended) {
|
|
15
|
+
return new GetRequest(parameters, this.token, this.options);
|
|
25
16
|
}
|
|
26
17
|
|
|
27
|
-
|
|
28
|
-
return
|
|
18
|
+
getSingle(parameters: RequestOptionsBaseExtended) {
|
|
19
|
+
return new GetByIdRequest(parameters, this.token, this.options);
|
|
29
20
|
}
|
|
30
21
|
|
|
31
|
-
|
|
32
|
-
return
|
|
22
|
+
create(parameters: PostRequestOptionsExtended) {
|
|
23
|
+
return new CreateRequest(parameters, this.token, this.options);
|
|
33
24
|
}
|
|
34
25
|
|
|
35
|
-
|
|
36
|
-
return
|
|
26
|
+
update(parameters: PutRequestOptionsExtended) {
|
|
27
|
+
return new UpdateRequest(parameters, this.token, this.options);
|
|
37
28
|
}
|
|
38
29
|
|
|
39
|
-
|
|
40
|
-
return
|
|
30
|
+
destroy(parameters: RequestOptionsBaseExtended) {
|
|
31
|
+
return new DeleteRequest(parameters, this.token, this.options);
|
|
41
32
|
}
|
|
42
33
|
|
|
43
|
-
|
|
44
|
-
return
|
|
34
|
+
getProperty(parameters: RelatedRequestOptionsExtended) {
|
|
35
|
+
return new GetRelatedRequest(parameters, this.token, this.options);
|
|
45
36
|
}
|
|
46
37
|
|
|
47
|
-
|
|
48
|
-
return
|
|
38
|
+
getRelated(parameters: RelatedRequestOptionsExtended) {
|
|
39
|
+
return new GetRelatedRequest(parameters, this.token, this.options);
|
|
49
40
|
}
|
|
50
41
|
|
|
51
|
-
|
|
52
|
-
return
|
|
42
|
+
getRelatedById(parameters: RelatedByIdRequestOptionsExtended) {
|
|
43
|
+
return new GetRelatedByIdRequest(parameters, this.token, this.options);
|
|
53
44
|
}
|
|
54
45
|
|
|
55
|
-
|
|
56
|
-
return
|
|
46
|
+
destroyRelated(parameters: RelatedRequestOptionsExtended) {
|
|
47
|
+
return new DeleteRelatedRequest(parameters, this.token, this.options);
|
|
57
48
|
}
|
|
58
49
|
|
|
59
|
-
|
|
60
|
-
return
|
|
50
|
+
destroyRelatedById(parameters: RelatedByIdRequestOptionsExtended) {
|
|
51
|
+
return new DeleteRelatedByIdRequest(parameters, this.token, this.options);
|
|
61
52
|
}
|
|
62
53
|
|
|
63
|
-
|
|
64
|
-
parameters.
|
|
65
|
-
return new BatchRequest(parameters);
|
|
54
|
+
createRelated(parameters: RelatedRequestOptionsExtended) {
|
|
55
|
+
return new CreateRelatedRequest(parameters, this.token, this.options);
|
|
66
56
|
}
|
|
67
57
|
|
|
68
|
-
upload(parameters:
|
|
69
|
-
return
|
|
58
|
+
upload(parameters: UploadRequestOptionsExtended) {
|
|
59
|
+
return new UploadRequest(parameters, this.token, this.options);
|
|
70
60
|
}
|
|
71
61
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
token: this.token,
|
|
77
|
-
enableUnlimitedChoices: this.enableUnlimitedChoices,
|
|
78
|
-
integrationMode: this.integrationMode
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
// TODO
|
|
82
|
-
(executor as any).navigationProperty = request.navigationProperty;
|
|
83
|
-
return executor;
|
|
62
|
+
batch(parameters: RequestOptionsBaseExtended) {
|
|
63
|
+
const batchParams = parameters as BatchRequestOptionsExtended;
|
|
64
|
+
batchParams.factory = this;
|
|
65
|
+
return new BatchRequest(batchParams, this.token, this.options);
|
|
84
66
|
}
|
|
85
67
|
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { Query } from "../Query";
|
|
2
|
+
import { Sitefinity } from "../Sitefinity";
|
|
3
|
+
|
|
4
|
+
describe("SDK basic tests", () => {
|
|
5
|
+
const baseUrl = "http://www.mysite.com/api/default/"
|
|
6
|
+
let sitefinity: Sitefinity;
|
|
7
|
+
let query: Query;
|
|
8
|
+
|
|
9
|
+
beforeEach(function() {
|
|
10
|
+
jasmine.Ajax.install();
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
afterEach(function() {
|
|
14
|
+
jasmine.Ajax.uninstall();
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
beforeAll(() => {
|
|
18
|
+
sitefinity = new Sitefinity({
|
|
19
|
+
baseUrl
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
query = new Sitefinity.Query();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it("query assert", () => {
|
|
26
|
+
const testQuery = (query.where().and().endsWith("Title", "Record").done() as any).or().startsWith('Title', 'asd').done().done();
|
|
27
|
+
const resultingQuery = testQuery.build();
|
|
28
|
+
expect(resultingQuery.$filter).toEqual("(endswith(Title, 'Record')) and (startswith(Title, 'asd'))");
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it("complex query assert", () => {
|
|
32
|
+
const testQuery = query.where().not().endsWith("Record", "Title").done().and().not().eq('Content', 'test').done().done().done();
|
|
33
|
+
const resultingQuery = testQuery.build();
|
|
34
|
+
expect(resultingQuery.$filter).toEqual("(not endswith(Record, 'Title')) and ((not (Content eq 'test')))");
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it("query count assert", () => {
|
|
38
|
+
const data = sitefinity.data({
|
|
39
|
+
entitySet: "newsitems"
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
data.get({query: query.count(false)});
|
|
43
|
+
|
|
44
|
+
let request = jasmine.Ajax.requests.mostRecent();
|
|
45
|
+
expect(request.url).toBe('http://www.mysite.com/api/default/newsitems/$count');
|
|
46
|
+
|
|
47
|
+
data.get({query: query.count(true)});
|
|
48
|
+
|
|
49
|
+
request = jasmine.Ajax.requests.mostRecent();
|
|
50
|
+
expect(request.url).toBe('http://www.mysite.com/api/default/newsitems?$count=true');
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it("request assert", () => {
|
|
54
|
+
sitefinity.data({
|
|
55
|
+
entitySet: "newsitems",
|
|
56
|
+
provider: "newsProvider",
|
|
57
|
+
culture: "en-US"
|
|
58
|
+
}).get({query: null});
|
|
59
|
+
|
|
60
|
+
const request = jasmine.Ajax.requests.mostRecent();
|
|
61
|
+
expect(request.url).toBe('http://www.mysite.com/api/default/newsitems?sf_provider=newsProvider&sf_culture=en-US');
|
|
62
|
+
expect(request.method).toBe('GET');
|
|
63
|
+
expect(request.data()).toEqual({});
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it("batch assert", async () => {
|
|
67
|
+
const batch = sitefinity.batch();
|
|
68
|
+
const getQuery = query.where().eq('Title', 'newTitleN11').done();
|
|
69
|
+
|
|
70
|
+
batch.get({
|
|
71
|
+
entitySet: "newsitems",
|
|
72
|
+
query: getQuery
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
const transaction = batch.beginTransaction();
|
|
76
|
+
|
|
77
|
+
transaction.create({
|
|
78
|
+
entitySet: "newsitems",
|
|
79
|
+
data: { title: "Test" }
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
batch.endTransaction(transaction);
|
|
83
|
+
(batch as any).execute();
|
|
84
|
+
|
|
85
|
+
const request = jasmine.Ajax.requests.mostRecent();
|
|
86
|
+
expect(request.url).toBe('http://www.mysite.com/api/default/$batch');
|
|
87
|
+
expect(request.method).toBe('POST');
|
|
88
|
+
|
|
89
|
+
await readBlobAsText(request.params).then((result) => {
|
|
90
|
+
expect(result).toContain("{\"title\":\"Test\"}");
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
function readBlobAsText(blob: Blob): Promise<string> {
|
|
95
|
+
return new Promise((resolve, reject) => {
|
|
96
|
+
const reader = new FileReader();
|
|
97
|
+
|
|
98
|
+
reader.onload = () => {
|
|
99
|
+
resolve(<string>reader.result);
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
reader.onerror = () => {
|
|
103
|
+
reject();
|
|
104
|
+
};
|
|
105
|
+
reader.readAsText(blob);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
});
|