@apigames/sdk-core 24.1.6 → 24.1.7
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IRestClient, RestClientResponse } from '@apigames/rest-client';
|
|
2
|
-
import { IResourceContainer, IResourceObject, ResourceContainerIncludedResourceTypes, ResourceHeaderParams, ResourcePathParams, ResourceFilterName, ResourceFilterValue, ResourceIncludeOption, ResourceSortOption, SDKConfiguration } from '..';
|
|
2
|
+
import { IResourceContainer, IResourceObject, ResourceContainerFacets, ResourceContainerIncludedResourceTypes, ResourceFacetField, ResourceFieldName, ResourceHeaderParams, ResourceObjectType, ResourcePathParams, ResourceFilterName, ResourceFilterValue, ResourceIncludeOption, ResourceSortOption, SDKConfiguration } from '..';
|
|
3
3
|
export declare enum ResourceFilterType {
|
|
4
4
|
Equal = "equal",
|
|
5
5
|
NotEqual = "!equal",
|
|
@@ -18,6 +18,7 @@ export default class ResourceContainer implements IResourceContainer {
|
|
|
18
18
|
private _count;
|
|
19
19
|
private _countQueryHash;
|
|
20
20
|
protected _data: IResourceObject | IResourceObject[];
|
|
21
|
+
protected _facets: ResourceContainerFacets;
|
|
21
22
|
protected _includes: ResourceContainerIncludedResourceTypes;
|
|
22
23
|
private _queryParams;
|
|
23
24
|
private readonly _restClient;
|
|
@@ -26,6 +27,7 @@ export default class ResourceContainer implements IResourceContainer {
|
|
|
26
27
|
protected pathParams: ResourcePathParams;
|
|
27
28
|
constructor(params?: ResourceContainerParams);
|
|
28
29
|
get data(): IResourceObject | IResourceObject[];
|
|
30
|
+
get facets(): ResourceContainerFacets;
|
|
29
31
|
get includes(): ResourceContainerIncludedResourceTypes;
|
|
30
32
|
get restClient(): IRestClient;
|
|
31
33
|
get sdkConfig(): SDKConfiguration;
|
|
@@ -49,6 +51,8 @@ export default class ResourceContainer implements IResourceContainer {
|
|
|
49
51
|
GetHeaders(action: string): ResourceHeaderParams;
|
|
50
52
|
private GetQueryParams;
|
|
51
53
|
IncludedObject(type: string, id: string): IResourceObject;
|
|
54
|
+
Facet(fields: ResourceFacetField[]): IResourceContainer;
|
|
55
|
+
Fields(resourceType: ResourceObjectType, fields: ResourceFieldName[]): IResourceContainer;
|
|
52
56
|
Filter(filter: ResourceFilterName, selector: ResourceFilterType, value: ResourceFilterValue): IResourceContainer;
|
|
53
57
|
Sort(option: ResourceSortOption): IResourceContainer;
|
|
54
58
|
Include(include: ResourceIncludeOption): IResourceContainer;
|
|
@@ -29,6 +29,7 @@ var ResourceFilterType;
|
|
|
29
29
|
class ResourceContainer {
|
|
30
30
|
constructor(params) {
|
|
31
31
|
this._data = undefined;
|
|
32
|
+
this._facets = undefined;
|
|
32
33
|
this._includes = {};
|
|
33
34
|
this._restClient = (0, json_1.isDefined)(params === null || params === void 0 ? void 0 : params.restClient) ? params === null || params === void 0 ? void 0 : params.restClient : new rest_client_1.RestClient();
|
|
34
35
|
this._sdkConfig = (0, json_1.isDefined)(params === null || params === void 0 ? void 0 : params.sdkConfig) ? params === null || params === void 0 ? void 0 : params.sdkConfig : (0, __1.SDKConfig)();
|
|
@@ -36,6 +37,7 @@ class ResourceContainer {
|
|
|
36
37
|
this.pathParams = {};
|
|
37
38
|
this._queryParams = {
|
|
38
39
|
includes: {},
|
|
40
|
+
fields: {},
|
|
39
41
|
filters: {},
|
|
40
42
|
sort: undefined,
|
|
41
43
|
pagination: {},
|
|
@@ -44,6 +46,9 @@ class ResourceContainer {
|
|
|
44
46
|
get data() {
|
|
45
47
|
throw new Error('Method or Property not implemented.');
|
|
46
48
|
}
|
|
49
|
+
get facets() {
|
|
50
|
+
return this._facets;
|
|
51
|
+
}
|
|
47
52
|
get includes() {
|
|
48
53
|
return this._includes;
|
|
49
54
|
}
|
|
@@ -76,6 +81,7 @@ class ResourceContainer {
|
|
|
76
81
|
}
|
|
77
82
|
ClearData() {
|
|
78
83
|
this._data = undefined;
|
|
84
|
+
this._facets = undefined;
|
|
79
85
|
this._includes = {};
|
|
80
86
|
}
|
|
81
87
|
AddResourceToMemoryStructure(obj) {
|
|
@@ -138,6 +144,24 @@ class ResourceContainer {
|
|
|
138
144
|
}
|
|
139
145
|
}
|
|
140
146
|
}
|
|
147
|
+
if ((0, json_1.hasProperty)(response.data, 'meta') && (0, json_1.isObject)(response.data.meta)) {
|
|
148
|
+
if ((0, json_1.hasProperty)(response.data.meta, 'facets') && (0, json_1.isObject)(response.data.meta.facets)) {
|
|
149
|
+
this._facets = {};
|
|
150
|
+
for (const facetFieldName in response.data.meta.facets) {
|
|
151
|
+
if ((0, json_1.hasProperty)(response.data.meta.facets, facetFieldName)) {
|
|
152
|
+
this._facets[facetFieldName] = {};
|
|
153
|
+
for (const facetValue in response.data.meta.facets[facetFieldName]) {
|
|
154
|
+
if ((0, json_1.hasProperty)(response.data.meta.facets[facetFieldName], facetValue)) {
|
|
155
|
+
if ((0, json_1.isDefinedAndNotNull)(response.data.meta.facets[facetFieldName][facetValue])
|
|
156
|
+
&& (0, json_1.isNumber)(response.data.meta.facets[facetFieldName][facetValue])) {
|
|
157
|
+
this._facets[facetFieldName][facetValue] = response.data.meta.facets[facetFieldName][facetValue];
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
141
165
|
}
|
|
142
166
|
Add() {
|
|
143
167
|
throw new Error('Method or Property not implemented.');
|
|
@@ -227,6 +251,7 @@ class ResourceContainer {
|
|
|
227
251
|
InitParams() {
|
|
228
252
|
this._queryParams = {
|
|
229
253
|
includes: {},
|
|
254
|
+
fields: {},
|
|
230
255
|
filters: {},
|
|
231
256
|
sort: undefined,
|
|
232
257
|
pagination: {},
|
|
@@ -279,6 +304,14 @@ class ResourceContainer {
|
|
|
279
304
|
}
|
|
280
305
|
if (includeList.length > 0)
|
|
281
306
|
queryParams.include = includeList.join(',');
|
|
307
|
+
if ((0, json_1.hasProperty)(this._queryParams, 'facets') && (0, json_1.isDefined)(this._queryParams.facets)) {
|
|
308
|
+
queryParams.facets = this._queryParams.facets;
|
|
309
|
+
}
|
|
310
|
+
for (const resourceType in this._queryParams.fields) {
|
|
311
|
+
if ((0, json_1.hasProperty)(this._queryParams.fields, resourceType)) {
|
|
312
|
+
queryParams[`fields[${resourceType}]`] = this._queryParams.fields[resourceType];
|
|
313
|
+
}
|
|
314
|
+
}
|
|
282
315
|
if ((0, json_1.hasProperty)(this._queryParams.pagination, 'offset'))
|
|
283
316
|
queryParams['page[offset]'] = this._queryParams.pagination.offset;
|
|
284
317
|
if ((0, json_1.hasProperty)(this._queryParams.pagination, 'page'))
|
|
@@ -294,6 +327,14 @@ class ResourceContainer {
|
|
|
294
327
|
IncludedObject(type, id) {
|
|
295
328
|
throw new Error('Method or Property not implemented.');
|
|
296
329
|
}
|
|
330
|
+
Facet(fields) {
|
|
331
|
+
this._queryParams.facets = fields.join(',');
|
|
332
|
+
return this;
|
|
333
|
+
}
|
|
334
|
+
Fields(resourceType, fields) {
|
|
335
|
+
this._queryParams.fields[resourceType] = fields.join(',');
|
|
336
|
+
return this;
|
|
337
|
+
}
|
|
297
338
|
Filter(filter, selector, value) {
|
|
298
339
|
this._queryParams.filters[`${selector}:${filter}`] = value;
|
|
299
340
|
return this;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { ISDKError, ISDKRequestError, ISDKException, ISDKRequestException, } from './sdk.errors';
|
|
2
|
-
export { IResourceContainer, ResourceContainerIncludedResourceTypes, ResourceFilterName, ResourceFilterValue, ResourceSortOption, ResourceIncludeOption, IResourceObject, IResourceObjectAttributes, IResourceObjectRelationships, GeospatialPoint, ResourceObjectAttributeBase, ResourceObjectAttributesLoadType, ResourceObjectRelationshipLinkObject, ResourceObjectRelationshipLink, ResourceObjectRelationshipsLinks, ResourceObjectRelationshipsLoadType, ResourceObjectRelationship, ResourceObjectRelationships, ResourceObjectUri, ResourceObjectRelationshipBase, } from './resource.interfaces';
|
|
2
|
+
export { IResourceContainer, ResourceContainerFacetValue, ResourceContainerFacets, ResourceContainerIncludedResourceTypes, ResourceFacetField, ResourceFieldName, ResourceFilterName, ResourceFilterValue, ResourceObjectType, ResourceSortOption, ResourceIncludeOption, IResourceObject, IResourceObjectAttributes, IResourceObjectRelationships, GeospatialPoint, ResourceObjectAttributeBase, ResourceObjectAttributesLoadType, ResourceObjectRelationshipLinkObject, ResourceObjectRelationshipLink, ResourceObjectRelationshipsLinks, ResourceObjectRelationshipsLoadType, ResourceObjectRelationship, ResourceObjectRelationships, ResourceObjectUri, ResourceObjectRelationshipBase, } from './resource.interfaces';
|
|
@@ -19,6 +19,12 @@ export type ResourceObjectRelationshipLink = {
|
|
|
19
19
|
export type ResourceObjectRelationshipsLinks = {
|
|
20
20
|
data: ResourceObjectRelationshipLinkObject[];
|
|
21
21
|
};
|
|
22
|
+
export type ResourceContainerFacetValue = {
|
|
23
|
+
[value: string]: number;
|
|
24
|
+
};
|
|
25
|
+
export type ResourceContainerFacets = {
|
|
26
|
+
[fieldName: string]: ResourceContainerFacetValue;
|
|
27
|
+
};
|
|
22
28
|
export type ResourceContainerIncludedResources = {
|
|
23
29
|
[id: string]: IResourceObject;
|
|
24
30
|
};
|
|
@@ -70,15 +76,20 @@ export interface IResourceObject {
|
|
|
70
76
|
UpdateAttributes(value: any): void;
|
|
71
77
|
UpdateRelationships(value: any): void;
|
|
72
78
|
}
|
|
79
|
+
export type ResourceFacetField = string;
|
|
80
|
+
export type ResourceFieldName = string;
|
|
73
81
|
export type ResourceFilterName = string;
|
|
74
82
|
export type ResourceFilterValue = string;
|
|
75
83
|
export type ResourceSortOption = string;
|
|
76
84
|
export type ResourceIncludeOption = string;
|
|
77
85
|
export interface IResourceContainer {
|
|
78
86
|
data: IResourceObject | IResourceObject[];
|
|
87
|
+
facets: ResourceContainerFacets;
|
|
79
88
|
includes: ResourceContainerIncludedResourceTypes;
|
|
80
89
|
restClient: IRestClient;
|
|
81
90
|
uri: string;
|
|
91
|
+
Facet(fields: ResourceFacetField[]): IResourceContainer;
|
|
92
|
+
Fields(resource: ResourceObjectType, fields: ResourceFieldName[]): IResourceContainer;
|
|
82
93
|
Filter(filter: ResourceFilterName, selector: ResourceFilterType, value: ResourceFilterValue): IResourceContainer;
|
|
83
94
|
GetHeaders(action: string): ResourceHeaderParams;
|
|
84
95
|
Sort(option: ResourceSortOption): IResourceContainer;
|