@progress/sitefinity-webservices-sdk 0.2.72 → 1.0.0

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.
Files changed (201) hide show
  1. package/.eslintignore +4 -0
  2. package/.eslintrc.js +19 -0
  3. package/ci/pipelines/ci.yml +219 -0
  4. package/config/helpers.js +0 -6
  5. package/config/webpack.common.js +1 -3
  6. package/config/webpack.dev.js +2 -9
  7. package/config/webpack.prod.js +5 -6
  8. package/dist/docs/.nojekyll +1 -0
  9. package/dist/docs/assets/highlight.css +57 -0
  10. package/dist/docs/assets/icons.css +1043 -0
  11. package/dist/docs/assets/icons.png +0 -0
  12. package/dist/docs/assets/icons@2x.png +0 -0
  13. package/dist/docs/assets/main.js +52 -0
  14. package/dist/docs/assets/search.js +1 -0
  15. package/dist/docs/assets/style.css +1413 -0
  16. package/dist/docs/assets/{images/widgets.png → widgets.png} +0 -0
  17. package/dist/docs/assets/{images/widgets@2x.png → widgets@2x.png} +0 -0
  18. package/dist/docs/classes/BlobBuilder.BlobBuilder-1.html +7 -0
  19. package/dist/docs/classes/Data.Data-1.html +65 -0
  20. package/dist/docs/classes/Expression.BinaryExpression.html +1 -0
  21. package/dist/docs/classes/Expression.ComplexExpression.html +1 -0
  22. package/dist/docs/classes/Expression.ExpressionBase.html +1 -0
  23. package/dist/docs/classes/OrderProperty.OrderProperty-1.html +1 -0
  24. package/dist/docs/classes/Query.Query-1.html +33 -0
  25. package/dist/docs/classes/QueryBase.QueryBase-1.html +7 -0
  26. package/dist/docs/classes/QueryBuilder.QueryBuilder-1.html +1 -0
  27. package/dist/docs/classes/Requests_BatchRequest.BatchRequest.html +17 -0
  28. package/dist/docs/classes/Requests_BatchRequest.Transaction.html +17 -0
  29. package/dist/docs/classes/Requests_ExecutableRequest.ExecutableRequest.html +1 -0
  30. package/dist/docs/classes/Requests_Request.CreateRelatedRequest.html +1 -0
  31. package/dist/docs/classes/Requests_Request.CreateRequest.html +1 -0
  32. package/dist/docs/classes/Requests_Request.DeleteRelatedByIdRequest.html +1 -0
  33. package/dist/docs/classes/Requests_Request.DeleteRelatedRequest.html +1 -0
  34. package/dist/docs/classes/Requests_Request.DeleteRequest.html +1 -0
  35. package/dist/docs/classes/Requests_Request.GetByIdRequest.html +1 -0
  36. package/dist/docs/classes/Requests_Request.GetRelatedByIdRequest.html +1 -0
  37. package/dist/docs/classes/Requests_Request.GetRelatedRequest.html +1 -0
  38. package/dist/docs/classes/Requests_Request.GetRequest.html +1 -0
  39. package/dist/docs/classes/Requests_Request.UpdateRequest.html +1 -0
  40. package/dist/docs/classes/Requests_Request.UploadRequest.html +1 -0
  41. package/dist/docs/classes/Requests_RequestBase.RequestBase.html +1 -0
  42. package/dist/docs/classes/Requests_RequestFactory.RequestFactory.html +1 -0
  43. package/dist/docs/classes/Sitefinity.Sitefinity-1.html +5 -0
  44. package/dist/docs/classes/WhereQuery.WhereQuery-1.html +31 -0
  45. package/dist/docs/classes/utils.utils-1.html +1 -0
  46. package/dist/docs/index.html +54 -242
  47. package/dist/docs/interfaces/Data.CreateRelatedRequestOptions.html +1 -0
  48. package/dist/docs/interfaces/Data.CreateRequestOptions.html +1 -0
  49. package/dist/docs/interfaces/Data.OperationsRequestOptions.html +1 -0
  50. package/dist/docs/interfaces/Data.PropertyRequestOptions.html +1 -0
  51. package/dist/docs/interfaces/Data.RequestOptionsBase.html +1 -0
  52. package/dist/docs/interfaces/Data.SingleRelatedItemRequestOptions.html +1 -0
  53. package/dist/docs/interfaces/Data.UpdateRequestOptions.html +1 -0
  54. package/dist/docs/interfaces/Data.UploadRequestOptions.html +1 -0
  55. package/dist/docs/interfaces/Requests_BatchRequest.BatchCreateRelatedRequestOptions.html +1 -0
  56. package/dist/docs/interfaces/Requests_BatchRequest.BatchCreateRequestOptions.html +1 -0
  57. package/dist/docs/interfaces/Requests_BatchRequest.BatchPropertyRequestOptions.html +1 -0
  58. package/dist/docs/interfaces/Requests_BatchRequest.BatchRequestOptionsBase.html +1 -0
  59. package/dist/docs/interfaces/Requests_BatchRequest.BatchRequestOptionsExtended.html +1 -0
  60. package/dist/docs/interfaces/Requests_BatchRequest.BatchSingleItemRequestOptions.html +1 -0
  61. package/dist/docs/interfaces/Requests_BatchRequest.BatchSingleRelatedItemRequestOptions.html +1 -0
  62. package/dist/docs/interfaces/Requests_BatchRequest.BatchUpdateRequestOptions.html +1 -0
  63. package/dist/docs/interfaces/Requests_ExecutableRequest.ResponseHandlers.html +5 -0
  64. package/dist/docs/interfaces/Requests_Request.PostRequestOptionsExtended.html +1 -0
  65. package/dist/docs/interfaces/Requests_Request.PutRequestOptionsExtended.html +1 -0
  66. package/dist/docs/interfaces/Requests_Request.RelatedByIdRequestOptionsExtended.html +1 -0
  67. package/dist/docs/interfaces/Requests_Request.RelatedRequestOptionsExtended.html +1 -0
  68. package/dist/docs/interfaces/Requests_Request.UploadRequestOptionsExtended.html +1 -0
  69. package/dist/docs/interfaces/Requests_RequestBase.RequestOptionsBaseExtended.html +1 -0
  70. package/dist/docs/interfaces/Sitefinity.SDKOptions.html +9 -0
  71. package/dist/docs/interfaces/Sitefinity.Token.html +1 -0
  72. package/dist/docs/interfaces/Sitefinity.TypeOptions.html +13 -0
  73. package/dist/docs/modules/BlobBuilder.html +1 -0
  74. package/dist/docs/modules/Data.html +1 -0
  75. package/dist/docs/modules/Expression.html +1 -0
  76. package/dist/docs/modules/OrderProperty.html +1 -0
  77. package/dist/docs/modules/Query.html +1 -0
  78. package/dist/docs/modules/QueryBase.html +1 -0
  79. package/dist/docs/modules/QueryBuilder.html +1 -0
  80. package/dist/docs/modules/Requests_BatchRequest.html +1 -0
  81. package/dist/docs/modules/Requests_ExecutableRequest.html +1 -0
  82. package/dist/docs/modules/Requests_Request.html +1 -0
  83. package/dist/docs/modules/Requests_RequestBase.html +1 -0
  84. package/dist/docs/modules/Requests_RequestFactory.html +1 -0
  85. package/dist/docs/modules/Sitefinity.html +1 -0
  86. package/dist/docs/modules/WhereQuery.html +1 -0
  87. package/dist/docs/modules/constants.html +1 -0
  88. package/dist/docs/modules/utils.html +1 -0
  89. package/dist/docs/modules.html +1 -0
  90. package/dist/samples.html +33 -81
  91. package/dist/sitefinity-webservices-sdk.d.ts +16 -0
  92. package/dist/sitefinity-webservices-sdk.js +1159 -1734
  93. package/dist/sitefinity-webservices-sdk.js.map +1 -1
  94. package/dist/sitefinity-webservices-sdk.min.js +2 -16
  95. package/dist/sitefinity-webservices-sdk.min.js.LICENSE.txt +14 -0
  96. package/dist/src/BlobBuilder.d.ts +14 -0
  97. package/dist/src/Data.d.ts +144 -0
  98. package/dist/src/Expression.d.ts +19 -0
  99. package/dist/src/OrderProperty.d.ts +8 -0
  100. package/dist/src/Query.d.ts +59 -0
  101. package/dist/src/QueryBase.d.ts +18 -0
  102. package/dist/src/QueryBuilder.d.ts +13 -0
  103. package/dist/src/Requests/BatchRequest.d.ts +146 -0
  104. package/dist/src/Requests/ExecutableRequest.d.ts +20 -0
  105. package/dist/src/Requests/Request.d.ts +88 -0
  106. package/dist/src/Requests/RequestBase.d.ts +28 -0
  107. package/dist/src/Requests/RequestFactory.d.ts +22 -0
  108. package/dist/src/Sitefinity.d.ts +66 -0
  109. package/dist/src/WhereQuery.d.ts +68 -0
  110. package/dist/src/constants.d.ts +55 -0
  111. package/dist/src/utils.d.ts +16 -0
  112. package/karma.conf.js +29 -0
  113. package/package-lock.json +16108 -6805
  114. package/package.json +28 -10
  115. package/sitefinity-webservices-sdk.ts +16 -0
  116. package/src/BlobBuilder.ts +7 -12
  117. package/src/Data.spec.ts +160 -0
  118. package/src/Data.ts +132 -207
  119. package/src/Expression.ts +6 -3
  120. package/src/OrderProperty.ts +4 -5
  121. package/src/Query.ts +52 -78
  122. package/src/QueryBase.ts +21 -47
  123. package/src/QueryBuilder.ts +76 -82
  124. package/src/Requests/BatchRequest.ts +312 -335
  125. package/src/Requests/ExecutableRequest.ts +46 -73
  126. package/src/Requests/Request.ts +134 -260
  127. package/src/Requests/RequestBase.ts +161 -0
  128. package/src/Requests/RequestFactory.ts +36 -54
  129. package/src/Requests/request.spec.ts +92 -0
  130. package/src/Sitefinity.spec.ts +418 -0
  131. package/src/Sitefinity.ts +77 -146
  132. package/src/WhereQuery.ts +55 -112
  133. package/src/constants.ts +58 -39
  134. package/src/utils.ts +17 -14
  135. package/template.html +33 -35
  136. package/tsconfig.json +8 -1
  137. package/type.txt +1 -1
  138. package/version.txt +1 -1
  139. package/config/html.conf.json +0 -5
  140. package/dist/docs/assets/css/main.css +0 -865
  141. package/dist/docs/assets/css/main.css.map +0 -7
  142. package/dist/docs/assets/images/icons.png +0 -0
  143. package/dist/docs/assets/images/icons@2x.png +0 -0
  144. package/dist/docs/assets/js/main.js +0 -5
  145. package/dist/docs/assets/js/search.js +0 -3
  146. package/dist/docs/classes/_authentication_.authentication.html +0 -527
  147. package/dist/docs/classes/_blobbuilder_.blobbuilder.html +0 -351
  148. package/dist/docs/classes/_data_.data.html +0 -974
  149. package/dist/docs/classes/_expression_.binaryexpression.html +0 -412
  150. package/dist/docs/classes/_expression_.complexexpression.html +0 -374
  151. package/dist/docs/classes/_expression_.expressionbase.html +0 -336
  152. package/dist/docs/classes/_orderproperty_.orderproperty.html +0 -381
  153. package/dist/docs/classes/_query_.query.html +0 -896
  154. package/dist/docs/classes/_querybase_.querybase.html +0 -518
  155. package/dist/docs/classes/_querybuilder_.querybuilder.html +0 -466
  156. package/dist/docs/classes/_requests_batchrequest_.batchrequest.html +0 -1511
  157. package/dist/docs/classes/_requests_batchrequest_.transaction.html +0 -804
  158. package/dist/docs/classes/_requests_executablerequest_.executablerequest.html +0 -549
  159. package/dist/docs/classes/_requests_request_.createrelatedrequest.html +0 -689
  160. package/dist/docs/classes/_requests_request_.createrequest.html +0 -680
  161. package/dist/docs/classes/_requests_request_.deleterelatedbyidrequest.html +0 -687
  162. package/dist/docs/classes/_requests_request_.deleterelatedrequest.html +0 -673
  163. package/dist/docs/classes/_requests_request_.deleterequest.html +0 -666
  164. package/dist/docs/classes/_requests_request_.getbyidrequest.html +0 -666
  165. package/dist/docs/classes/_requests_request_.getrelatedbyidrequest.html +0 -687
  166. package/dist/docs/classes/_requests_request_.getrelatedrequest.html +0 -673
  167. package/dist/docs/classes/_requests_request_.getrequest.html +0 -658
  168. package/dist/docs/classes/_requests_request_.requestbase.html +0 -687
  169. package/dist/docs/classes/_requests_request_.updaterequest.html +0 -686
  170. package/dist/docs/classes/_requests_request_.uploadrequest.html +0 -715
  171. package/dist/docs/classes/_requests_requestfactory_.requestfactory.html +0 -724
  172. package/dist/docs/classes/_sitefinity_.sitefinity.html +0 -521
  173. package/dist/docs/classes/_utils_.utils.html +0 -597
  174. package/dist/docs/classes/_wherequery_.wherequery.html +0 -971
  175. package/dist/docs/globals.html +0 -238
  176. package/dist/docs/modules/_authentication_.html +0 -225
  177. package/dist/docs/modules/_blobbuilder_.html +0 -225
  178. package/dist/docs/modules/_constants_.html +0 -528
  179. package/dist/docs/modules/_contenttypes_.html +0 -248
  180. package/dist/docs/modules/_data_.html +0 -225
  181. package/dist/docs/modules/_expression_.html +0 -233
  182. package/dist/docs/modules/_headers_.html +0 -328
  183. package/dist/docs/modules/_httpmethods_.html +0 -288
  184. package/dist/docs/modules/_main_.html +0 -209
  185. package/dist/docs/modules/_orderproperty_.html +0 -225
  186. package/dist/docs/modules/_query_.html +0 -225
  187. package/dist/docs/modules/_querybase_.html +0 -225
  188. package/dist/docs/modules/_querybuilder_.html +0 -247
  189. package/dist/docs/modules/_requests_batchrequest_.html +0 -265
  190. package/dist/docs/modules/_requests_executablerequest_.html +0 -296
  191. package/dist/docs/modules/_requests_request_.html +0 -333
  192. package/dist/docs/modules/_requests_requestfactory_.html +0 -247
  193. package/dist/docs/modules/_sitefinity_.html +0 -225
  194. package/dist/docs/modules/_utils_.html +0 -225
  195. package/dist/docs/modules/_wherequery_.html +0 -247
  196. package/dist/index.html +0 -474
  197. package/src/Authentication.ts +0 -96
  198. package/src/ContentTypes.ts +0 -5
  199. package/src/Headers.ts +0 -12
  200. package/src/HttpMethods.ts +0 -9
  201. package/src/main.ts +0 -2
package/src/Data.ts CHANGED
@@ -1,68 +1,49 @@
1
- /**
2
- * @class Data
3
- * @classdesc The constructor of the Data object. This object is used for requesting data from Sitefinity.
4
- * @param {object} urlOptions - An object containing configuration options for the {@link Data} object.
5
- * @param {string} urlOptions.baseUrl - Your service url that points to the configured instance of Sitefinity service.
6
- * @param {string} urlOptions.entitySet - The url name of the type.
7
- * @param {object} urlOptions.SFParams - An object containing configuration options for requests.
8
- * @param {string} urlOptions.SFParams.provider - The provider name to use in each request.
9
- * @param {string} urlOptions.SFParams.culture - The culture name to use in each request.
1
+ import { SF_PARAMS } from "./constants";
2
+ import { Query } from "./Query";
3
+ import { ExecutableRequest } from "./Requests/ExecutableRequest";
4
+ import { RequestFactory } from "./Requests/RequestFactory";
5
+ import { TypeOptions } from "./Sitefinity";
6
+
7
+ /**
8
+ * The constructor of the Data object. This object is used for requesting data from Sitefinity.
10
9
  */
11
10
  export class Data {
12
- private urlOptions: any;
13
- private factory: any;
11
+ private urlOptions: TypeOptions;
12
+ private factory: RequestFactory;
14
13
 
15
- constructor(urlOptions, factory) {
14
+ constructor(urlOptions: TypeOptions, factory: RequestFactory) {
16
15
  this.urlOptions = urlOptions;
17
16
  this.factory = factory;
18
17
  }
19
18
 
20
- // TODO: rethink this
21
19
  /**
22
20
  * Executes a GET request to retrieve a collection of items.
23
- * @memberOf Data
24
- * @instance
25
- * @param {object} parameters - The parameters for the request.
26
- * @param {string} parameters.action - The OData action along with its parameters.
27
- * @param {object} parameters.query - The {@link WhereQuery} with which to filter the items.
28
- * @param {Function} parameters.successCb - The success callback function.
29
- * @param {Function} parameters.failureCb - The error callback function.
30
21
  */
31
- get(parameters: any) {
32
- parameters = parameters || {};
33
-
34
- // TODO: move to Request
35
- if (parameters.query)
36
- this.urlOptions.ODataParams = parameters.query;
37
-
38
- var request = this.factory.get({
22
+ get(parameters: RequestOptionsBase) {
23
+ const request = this.factory.get({
39
24
  urlOptions: this.urlOptions,
25
+ query: parameters.query,
40
26
  action: parameters.action,
41
27
  successCb: parameters.successCb,
42
28
  failureCb: parameters.failureCb,
43
29
  fallbackProperties: parameters.fallbackProperties
44
30
  });
45
31
 
46
- request._execute();
32
+ request.execute();
47
33
  }
48
34
 
49
35
  /**
50
36
  * Executes a GET request to retrieve an/all item(s) operations.
51
- * @memberOf Data
52
- * @instance
53
- * @param {object} parameters - The parameters for the request.
54
- * @param {Function} parameters.successCb - The success callback function.
55
- * @param {Function} parameters.failureCb - The error callback function.
56
37
  */
57
- getOperations(parameters: any) {
58
- var request;
59
- var action = "operations";
38
+ getOperations(parameters: OperationsRequestOptions) {
39
+ let request: ExecutableRequest;
40
+ let action = "operations";
60
41
 
61
42
  // Set parentId if no item key is passed
62
43
  if (!parameters.key)
63
- action += "?parentId=" + parameters.parentId;
44
+ action += `?${SF_PARAMS.parentId}=` + parameters.parentId;
64
45
 
65
- var params: any = {
46
+ const params: any = {
66
47
  urlOptions: this.urlOptions,
67
48
  action: action,
68
49
  successCb: parameters.successCb,
@@ -76,88 +57,59 @@ export class Data {
76
57
  request = this.factory.get(params);
77
58
  }
78
59
 
79
- request._execute();
60
+ request.execute();
80
61
  }
81
62
 
82
63
  /**
83
64
  * Executes a GET request for a single item.
84
- * @memberOf Data
85
- * @instance
86
- * @param {object} parameters - The parameters for the request.
87
- * @param {object} parameters.query - The {@link QueryBase} object containing the OData query options that should be sent to the server.
88
- * @param {string} parameters.key - The identifier of the item to be retrieved.
89
- * @param {string} parameters.action - The OData action along with its parameters.
90
- * @param {Function} parameters.successCb - The success callback function.
91
- * @param {Function} parameters.failureCb - The error callback function.
92
65
  */
93
- getSingle(parameters: any) {
66
+ getSingle(parameters: RequestOptionsBase) {
94
67
  if (!(parameters.key))
95
68
  throw "Parameter 'key' is required!";
96
69
 
97
- if (parameters.query)
98
- this.urlOptions.ODataParams = parameters.query;
99
-
100
- var request = this.factory.getSingle({
70
+ const request = this.factory.getSingle({
101
71
  urlOptions: this.urlOptions,
102
72
  key: parameters.key,
73
+ query: parameters.query,
103
74
  action: parameters.action,
104
75
  successCb: parameters.successCb,
105
76
  failureCb: parameters.failureCb,
106
77
  fallbackProperties: parameters.fallbackProperties
107
78
  });
108
79
 
109
- request._execute();
80
+ request.execute();
110
81
  }
111
82
 
112
83
  /**
113
84
  * Executes a POST request for a single item.
114
- * @memberOf Data
115
- * @instance
116
- * @param {object} parameters - The parameters for the request.
117
- * @param {string} parameters.key - The identifier of the item.
118
- * @param {object} parameters.data - The payload of the request.
119
- * @param {string} parameters.action - The OData action along with its parameters.
120
- * @param {Function} parameters.successCb - The success callback function.
121
- * @param {Function} parameters.failureCb - The error callback function.
122
85
  */
123
- create(parameters: any) {
86
+ create(parameters: CreateRequestOptions) {
124
87
  if (!(parameters.data))
125
88
  throw "Parameter 'data' is required!";
126
89
 
127
- if (parameters.query)
128
- this.urlOptions.ODataParams = parameters.query;
129
-
130
- var request = this.factory.create({
90
+ const request = this.factory.create({
131
91
  urlOptions: this.urlOptions,
132
92
  key: parameters.key,
93
+ query: parameters.query,
133
94
  data: parameters.data,
134
95
  action: parameters.action,
135
96
  successCb: parameters.successCb,
136
97
  failureCb: parameters.failureCb
137
98
  });
138
99
 
139
- request._execute();
100
+ request.execute();
140
101
  }
141
102
 
142
103
  /**
143
104
  * Executes a PATCH request to update a single item.
144
- * @memberOf Data
145
- * @instance
146
- * @param {object} parameters - The parameters for the request.
147
- * @param {bool} parameters.saveTemp - A flag indicating whether to save in temp.
148
- * @param {string} parameters.key - The identifier of the item to be updated.
149
- * @param {object} parameters.data - The payload of the request.
150
- * @param {string} parameters.action - The OData action along with its parameters.
151
- * @param {Function} parameters.successCb - The success callback function.
152
- * @param {Function} parameters.failureCb - The error callback function.
153
105
  * @example
154
- * var data = sf.data({
155
- * urlName: "newsitems",
156
- * providerName: "OpenAccessDataProvider",
157
- * cultureName: "en"
106
+ * const data = sf.data({
107
+ * entitySet: "newsitems",
108
+ * provider: "OpenAccessDataProvider",
109
+ * culture: "en"
158
110
  * });
159
111
  *
160
- * var newsItemUpdate = {
112
+ * const newsItemUpdate = {
161
113
  * "Title": 'updated news title'
162
114
  * };
163
115
  *
@@ -169,11 +121,11 @@ export class Data {
169
121
  * failureCb: failureCb
170
122
  * });
171
123
  */
172
- update(parameters: any) {
124
+ update(parameters: UpdateRequestOptions) {
173
125
  if (!(parameters.key || parameters.data))
174
126
  throw "Parameters: 'data' and 'key' are required!";
175
127
 
176
- var request = this.factory.update({
128
+ const request = this.factory.update({
177
129
  urlOptions: this.urlOptions,
178
130
  key: parameters.key,
179
131
  data: parameters.data,
@@ -183,47 +135,34 @@ export class Data {
183
135
  failureCb: parameters.failureCb
184
136
  });
185
137
 
186
- request._execute();
138
+ request.execute();
187
139
  }
188
140
 
189
141
  /**
190
142
  * Executes a DELETE request to delete a single item.
191
- * @memberOf Data
192
- * @instance
193
- * @param {object} parameters - The parameters for the request.
194
- * @param {string} parameters.key - The identifier of the item to be deleted.
195
- * @param {Function} parameters.successCb - The success callback function.
196
- * @param {Function} parameters.failureCb - The error callback function.
197
143
  */
198
- destroy(parameters: any) {
144
+ destroy(parameters: RequestOptionsBase) {
199
145
  if (!(parameters.key))
200
146
  throw "Parameter 'key' is required!";
201
147
 
202
- var request = this.factory.destroy({
148
+ const request = this.factory.destroy({
203
149
  urlOptions: this.urlOptions,
204
150
  key: parameters.key,
205
151
  successCb: parameters.successCb,
206
152
  failureCb: parameters.failureCb
207
153
  });
208
154
 
209
- request._execute();
155
+ request.execute();
210
156
  }
211
157
 
212
158
  /**
213
159
  * Executes a POST request to execute a workflow operation for single item.
214
- * @memberOf Data
215
- * @instance
216
- * @param {object} parameters - The parameters for the request.
217
- * @param {string} parameters.key - The identifier of the item.
218
- * @param {object} parameters.data - The payload of the request.
219
- * @param {Function} parameters.successCb - The success callback function.
220
- * @param {Function} parameters.failureCb - The error callback function.
221
160
  */
222
- operation(parameters: any) {
161
+ operation(parameters: CreateRequestOptions) {
223
162
  if (!(parameters.key || parameters.data))
224
163
  throw "Parameters: 'data' and 'key' are required!";
225
164
 
226
- var request = this.factory.create({
165
+ const request = this.factory.create({
227
166
  urlOptions: this.urlOptions,
228
167
  key: parameters.key,
229
168
  action: "operation",
@@ -232,186 +171,130 @@ export class Data {
232
171
  failureCb: parameters.failureCb
233
172
  });
234
173
 
235
- request._execute();
174
+ request.execute();
236
175
  }
237
176
 
238
177
  /**
239
178
  * Executes a GET request to get the property of a single item.
240
- * @memberOf Data
241
- * @instance
242
- * @param {object} parameters - The parameters for the request.
243
- * @param {string} parameters.key - The identifier of the item.
244
- * @param {string} parameters.property - The name of the property to be retrieved.
245
- * @param {Function} parameters.successCb - The success callback function.
246
- * @param {Function} parameters.failureCb - The error callback function.
247
179
  */
248
- getProperty(parameters: any) {
180
+ getProperty(parameters: PropertyRequestOptions) {
249
181
  if (!(parameters.key || parameters.property))
250
182
  throw "Parameters: 'data' and 'property' are required!";
251
183
 
252
- var request = this.factory.getProperty({
184
+ const request = this.factory.getProperty({
253
185
  urlOptions: this.urlOptions,
254
186
  key: parameters.key,
255
- navigationProperty: parameters.property,
187
+ property: parameters.property,
256
188
  successCb: parameters.successCb,
257
189
  failureCb: parameters.failureCb
258
190
  });
259
191
 
260
- request._execute();
192
+ request.execute();
261
193
  }
262
194
 
263
195
  /**
264
196
  * Executes a GET request to get the related property value of a single item.
265
- * @memberOf Data
266
- * @instance
267
- * @param {object} parameters - The parameters for the request.
268
- * @param {string} parameters.key - The identifier of the item.
269
- * @param {string} parameters.navigationProperty - The name of the navigation property to be retrieved.
270
- * @param {Function} parameters.successCb - The success callback function.
271
- * @param {Function} parameters.failureCb - The error callback function.
272
197
  */
273
- getRelated(parameters: any) {
274
- if (!(parameters.key || parameters.navigationProperty))
275
- throw "Parameters: 'data' and 'navigationProperty' are required!";
198
+ getRelated(parameters: PropertyRequestOptions) {
199
+ if (!(parameters.key || parameters.property))
200
+ throw "Parameters: 'data' and 'property' are required!";
276
201
 
277
- var request = this.factory.getRelated({
202
+ const request = this.factory.getRelated({
278
203
  urlOptions: this.urlOptions,
279
204
  key: parameters.key,
280
- navigationProperty: parameters.navigationProperty,
205
+ property: parameters.property,
281
206
  successCb: parameters.successCb,
282
207
  failureCb: parameters.failureCb
283
208
  });
284
209
 
285
- request._execute();
210
+ request.execute();
286
211
  }
287
212
 
288
213
  /**
289
214
  * Executes a GET request to retrieve the related property value of a single item by the id of the related item.
290
- * @memberOf Data
291
- * @instance
292
- * @param {object} parameters - The parameters for the request.
293
- * @param {string} parameters.key - The identifier of the item.
294
- * @param {string} parameters.navigationProperty - The name of the navigation property to be retrieved.
295
- * @param {string} parameters.relatedKey - The identifier of the related item.
296
- * @param {Function} parameters.successCb - The success callback function.
297
- * @param {Function} parameters.failureCb - The error callback function.
298
215
  */
299
- getRelatedById(parameters: any) {
300
- if (!(parameters.key || parameters.navigationProperty || parameters.relatedKey))
301
- throw "Parameters: 'data', 'relatedKey' and 'navigationProperty' are required!";
216
+ getRelatedById(parameters: SingleRelatedItemRequestOptions) {
217
+ if (!(parameters.key || parameters.property || parameters.relatedId))
218
+ throw "Parameters: 'data', 'relatedId' and 'property' are required!";
302
219
 
303
- var request = this.factory.getRelatedById({
220
+ const request = this.factory.getRelatedById({
304
221
  urlOptions: this.urlOptions,
305
222
  key: parameters.key,
306
- relatedKey: parameters.relatedKey,
307
- navigationProperty: parameters.navigationProperty,
223
+ relatedId: parameters.relatedId,
224
+ property: parameters.property,
308
225
  successCb: parameters.successCb,
309
226
  failureCb: parameters.failureCb
310
227
  });
311
228
 
312
- request._execute();
229
+ request.execute();
313
230
  }
314
231
 
315
232
  /**
316
233
  * Executes a DELETE request to retrieve the delete all of the associated members in the relation property.
317
- * @memberOf Data
318
- * @instance
319
- * @param {object} parameters - The parameters for the request.
320
- * @param {string} parameters.key - The identifier of the item.
321
- * @param {string} parameters.navigationProperty - The name of the navigation property.
322
- * @param {Function} parameters.successCb - The success callback function.
323
- * @param {Function} parameters.failureCb - The error callback function.
324
234
  */
325
- destroyRelated(parameters: any) {
326
- if (!(parameters.key || parameters.navigationProperty))
327
- throw "Parameters: 'data' and 'navigationProperty' are required!";
235
+ destroyRelated(parameters: PropertyRequestOptions) {
236
+ if (!(parameters.key || parameters.property))
237
+ throw "Parameters: 'data' and 'property' are required!";
328
238
 
329
- var request = this.factory.destroyRelated({
239
+ const request = this.factory.destroyRelated({
330
240
  urlOptions: this.urlOptions,
331
241
  key: parameters.key,
332
- navigationProperty: parameters.navigationProperty,
242
+ property: parameters.property,
333
243
  successCb: parameters.successCb,
334
244
  failureCb: parameters.failureCb
335
245
  });
336
246
 
337
- request._execute();
247
+ request.execute();
338
248
  }
339
249
 
340
250
  /**
341
251
  * Executes a DELETE request to retrieve the a single entry of the associated members in the relation property.
342
- * @memberOf Data
343
- * @instance
344
- * @param {object} parameters - The parameters for the request.
345
- * @param {string} parameters.key - The identifier of the item.
346
- * @param {string} parameters.navigationProperty - The name of the navigation property.
347
- * @param {string} parameters.relatedKey - The identifier of the related item.
348
- * @param {Function} parameters.successCb - The success callback function.
349
- * @param {Function} parameters.failureCb - The error callback function.
350
252
  */
351
- destroyRelatedById(parameters: any) {
352
- if (!(parameters.key || parameters.navigationProperty || parameters.relatedKey))
353
- throw "Parameters: 'data', 'relatedKey' and 'navigationProperty' are required!";
253
+ destroyRelatedById(parameters: SingleRelatedItemRequestOptions) {
254
+ if (!(parameters.key || parameters.property || parameters.relatedId))
255
+ throw "Parameters: 'data', 'relatedId' and 'property' are required!";
354
256
 
355
- var request = this.factory.destroyRelatedById({
257
+ const request = this.factory.destroyRelatedById({
356
258
  urlOptions: this.urlOptions,
357
259
  key: parameters.key,
358
- relatedKey: parameters.relatedKey,
359
- navigationProperty: parameters.navigationProperty,
260
+ relatedId: parameters.relatedId,
261
+ property: parameters.property,
360
262
  successCb: parameters.successCb,
361
263
  failureCb: parameters.failureCb
362
264
  });
363
265
 
364
- request._execute();
266
+ request.execute();
365
267
  }
366
268
 
367
269
  /**
368
270
  * Executes a POST request to add a related item to the property collection.
369
- * @memberOf Data
370
- * @instance
371
- * @param {object} parameters - The parameters for the request.
372
- * @param {string} parameters.key - The identifier of the item.
373
- * @param {string} parameters.navigationProperty - The name of the navigation property.
374
- * @param {string} parameters.link - The URL of the related item.
375
- * @param {Function} parameters.successCb - The success callback function.
376
- * @param {Function} parameters.failureCb - The error callback function.
377
271
  */
378
- createRelated(parameters: any) {
379
- if (!(parameters.key || parameters.navigationProperty || parameters.link))
380
- throw "Parameters: 'data', 'link' and 'navigationProperty' are required!";
272
+ createRelated(parameters: CreateRelatedRequestOptions) {
273
+ if (!(parameters.key || parameters.property || parameters.link))
274
+ throw "Parameters: 'data', 'link' and 'property' are required!";
381
275
 
382
- var data = {
276
+ const data = {
383
277
  "@odata.id": parameters.link
384
278
  }
385
279
 
386
- var request = this.factory.createRelated({
280
+ const request = this.factory.createRelated({
387
281
  urlOptions: this.urlOptions,
388
282
  key: parameters.key,
389
- navigationProperty: parameters.navigationProperty,
283
+ property: parameters.property,
390
284
  data: data,
391
285
  successCb: parameters.successCb,
392
286
  failureCb: parameters.failureCb
393
287
  });
394
288
 
395
- request._execute();
289
+ request.execute();
396
290
  }
397
291
 
398
292
  /**
399
293
  * Executes a POST request to upload a media item.
400
- * @memberOf Data
401
- * @instance
402
- * @param {object} parameters - The parameters for the request.
403
- * @param {string} parameters.data - The data to be uploaded.
404
- * @param {string} parameters.data.content - The base64 representation of the media item.
405
- * @param {string} parameters.data.contentType - The content type of the item. E.g. image/jpeg.
406
- * @param {string} parameters.data.name - The name of the media item.
407
- * @param {string} parameters.data.payload - Holds the JSON metadata about the image. E.g. Title, Urlname etc.
408
- * @param {string} parameters.data.uploadProperties - The properties passed on upload. Must contain ParentId and can contain FolderId, Title, UrlName, etc.
409
- * @param {Function} parameters.successCb - The success callback function.
410
- * @param {Function} parameters.failureCb - The error callback function.
411
294
  * @example
412
295
  *
413
- * var data = sf.data({
414
- * urlName: "images"
296
+ * const data = sf.data({
297
+ * entitySet: "images"
415
298
  * });
416
299
  * data.upload({
417
300
  * data: {
@@ -420,7 +303,7 @@ export class Data {
420
303
  * name: "test.jpg",
421
304
  * payload: {
422
305
  * Title: "Test",
423
- * UrlName: "test"
306
+ * entitySet: "test"
424
307
  * },
425
308
  * uploadProperties: {
426
309
  * ParentId: "4BA7AD46-F29B-4E65-BE17-9BF7CE5BA1FB"
@@ -430,21 +313,21 @@ export class Data {
430
313
  * failureCb: failureCb
431
314
  * });
432
315
  */
433
- upload(parameters: any) {
316
+ upload(parameters: UploadRequestOptions) {
434
317
  if (!(parameters || parameters.data || parameters.data.content || parameters.data.contentType || parameters.data || parameters.data.name || parameters.data.uploadProperties))
435
318
  throw "parameters: content, contentType, name and uploadProperties are required!";
436
319
 
437
- var options = {
320
+ const options = {
438
321
  urlOptions: this.urlOptions,
439
322
  _factory: this.factory,
440
323
  successCb: parameters.successCb,
441
324
  failureCb: parameters.failureCb
442
325
  }
443
326
 
444
- var batch = this.factory.batch(options);
445
- var transaction = batch.beginTransaction();
327
+ const batch = this.factory.batch(options);
328
+ const transaction = batch.beginTransaction();
446
329
 
447
- var uploadedFile = transaction.upload({
330
+ const uploadedFile = transaction.upload({
448
331
  entitySet: this.urlOptions.entitySet,
449
332
  data: parameters.data.content,
450
333
  contentType: parameters.data.contentType,
@@ -470,8 +353,50 @@ export class Data {
470
353
  }
471
354
 
472
355
  batch.endTransaction(transaction);
473
- var executor = this.factory.createExecutor(batch);
474
- executor._execute();
356
+ batch.execute();
475
357
  }
476
358
  }
477
359
 
360
+ export interface RequestOptionsBase {
361
+ query?: Query;
362
+ action?: string;
363
+ successCb?: Function;
364
+ failureCb?: Function;
365
+ fallbackProperties?: string[];
366
+ key?: string | number;
367
+ }
368
+
369
+ export interface OperationsRequestOptions extends RequestOptionsBase {
370
+ parentId?: string;
371
+ }
372
+
373
+ export interface CreateRequestOptions extends RequestOptionsBase {
374
+ data?: object;
375
+ }
376
+
377
+ export interface UpdateRequestOptions extends CreateRequestOptions {
378
+ saveTemp?: boolean;
379
+ }
380
+
381
+ export interface PropertyRequestOptions extends RequestOptionsBase {
382
+ property: string;
383
+ }
384
+
385
+ export interface SingleRelatedItemRequestOptions extends PropertyRequestOptions {
386
+ relatedId: string;
387
+ }
388
+
389
+ export interface CreateRelatedRequestOptions extends PropertyRequestOptions {
390
+ link: string | number;
391
+ }
392
+
393
+ export interface UploadRequestOptions extends CreateRequestOptions {
394
+ data: {
395
+ content: string;
396
+ contentType: string;
397
+ uploadProperties: { [key: string]: string };
398
+ name: string;
399
+ payload: object;
400
+ },
401
+ publish: boolean;
402
+ }
package/src/Expression.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  export class ExpressionBase {
2
2
  constructor(public type: string) {
3
-
4
3
  }
5
4
 
6
5
  getType(): string {
@@ -9,7 +8,7 @@ export class ExpressionBase {
9
8
  }
10
9
 
11
10
  export class BinaryExpression extends ExpressionBase {
12
- constructor(type: string, public parameter: string, public constant: any) {
11
+ constructor(type: string, public parameter: string, public constant: any, public caseSensitive: boolean = true) {
13
12
  super(type);
14
13
  }
15
14
 
@@ -20,10 +19,14 @@ export class BinaryExpression extends ExpressionBase {
20
19
  getConstant(): any {
21
20
  return this.constant;
22
21
  }
22
+
23
+ isCaseSensitive(): boolean {
24
+ return this.caseSensitive;
25
+ }
23
26
  }
24
27
 
25
28
  export class ComplexExpression extends ExpressionBase {
26
- constructor (type: string, private expressions: ExpressionBase[]) {
29
+ constructor(type: string, private expressions: ExpressionBase[]) {
27
30
  super(type);
28
31
  }
29
32
 
@@ -1,6 +1,5 @@
1
1
  import { utils } from './utils';
2
2
 
3
-
4
3
  export class OrderProperty {
5
4
  constructor(private propertyPath: string, private isDesc: boolean = null) {
6
5
  if (!utils.isString(propertyPath))
@@ -8,13 +7,13 @@ export class OrderProperty {
8
7
 
9
8
  propertyPath = propertyPath.trim();
10
9
 
11
- var parts = propertyPath.split(' ');
10
+ const parts = propertyPath.split(' ');
12
11
  // parts[0] is the propertyPath; [1] would be whether descending or not.
13
12
  if (parts.length > 1 && isDesc !== true && isDesc !== false) {
14
13
  isDesc = parts[1].toLowerCase() == 'desc';
15
14
  if (!isDesc) {
16
15
  // isDesc is false but check to make sure its intended.
17
- var isAsc = parts[1].toLowerCase() == 'asc';
16
+ const isAsc = parts[1].toLowerCase() == 'asc';
18
17
  if (!isAsc) {
19
18
  throw new Error("the second word in the propertyPath must begin with 'desc' or 'asc'");
20
19
  }
@@ -33,8 +32,8 @@ export class OrderProperty {
33
32
  return this.isDesc;
34
33
  }
35
34
 
36
- getValue() {
37
- var direction = (this.isDesc) ? 'desc' : 'asc';
35
+ getValue(): string {
36
+ const direction = (this.isDesc) ? 'desc' : 'asc';
38
37
  return this.propertyPath + ' ' + direction;
39
38
  }
40
39
  }