@apigames/sdk-core 22.1.10 → 22.1.13
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/lib/classes/index.d.ts +1 -1
- package/lib/classes/index.js +2 -1
- package/lib/classes/resource.container.js +2 -1
- package/lib/classes/resource.object.d.ts +1 -1
- package/lib/classes/resource.object.js +37 -23
- package/lib/interfaces/index.d.ts +1 -1
- package/lib/interfaces/index.js +3 -1
- package/lib/interfaces/resource.object.d.ts +10 -2
- package/lib/interfaces/resource.object.js +11 -1
- package/package.json +1 -1
package/lib/classes/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { default as ResourceContainer, ResourceFilterType } from './resource.container';
|
|
2
|
-
export { default as ResourceObject, ResourceObjectClass } from './resource.object';
|
|
2
|
+
export { default as ResourceObject, ResourceObjectClass, ResourceObjectMode } from './resource.object';
|
|
3
3
|
export { ResourcePathParams } from './resource.path.params';
|
|
4
4
|
export { SDKConfiguration, SDKConfig } from './sdk.config';
|
package/lib/classes/index.js
CHANGED
|
@@ -3,12 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.SDKConfig = exports.SDKConfiguration = exports.ResourceObject = exports.ResourceFilterType = exports.ResourceContainer = void 0;
|
|
6
|
+
exports.SDKConfig = exports.SDKConfiguration = exports.ResourceObjectMode = exports.ResourceObject = exports.ResourceFilterType = exports.ResourceContainer = void 0;
|
|
7
7
|
var resource_container_1 = require("./resource.container");
|
|
8
8
|
Object.defineProperty(exports, "ResourceContainer", { enumerable: true, get: function () { return __importDefault(resource_container_1).default; } });
|
|
9
9
|
Object.defineProperty(exports, "ResourceFilterType", { enumerable: true, get: function () { return resource_container_1.ResourceFilterType; } });
|
|
10
10
|
var resource_object_1 = require("./resource.object");
|
|
11
11
|
Object.defineProperty(exports, "ResourceObject", { enumerable: true, get: function () { return __importDefault(resource_object_1).default; } });
|
|
12
|
+
Object.defineProperty(exports, "ResourceObjectMode", { enumerable: true, get: function () { return resource_object_1.ResourceObjectMode; } });
|
|
12
13
|
var sdk_config_1 = require("./sdk.config");
|
|
13
14
|
Object.defineProperty(exports, "SDKConfiguration", { enumerable: true, get: function () { return sdk_config_1.SDKConfiguration; } });
|
|
14
15
|
Object.defineProperty(exports, "SDKConfig", { enumerable: true, get: function () { return sdk_config_1.SDKConfig; } });
|
|
@@ -13,6 +13,7 @@ exports.ResourceFilterType = void 0;
|
|
|
13
13
|
const json_1 = require("@apigames/json");
|
|
14
14
|
const rest_client_1 = require("@apigames/rest-client");
|
|
15
15
|
const __1 = require("..");
|
|
16
|
+
const resource_object_1 = require("./resource.object");
|
|
16
17
|
const hash = require('object-hash');
|
|
17
18
|
var ResourceFilterType;
|
|
18
19
|
(function (ResourceFilterType) {
|
|
@@ -98,7 +99,7 @@ class ResourceContainer {
|
|
|
98
99
|
if ((0, json_1.hasProperty)(resourceData, 'type') && (0, json_1.isString)(resourceData.type)) {
|
|
99
100
|
if ((0, json_1.hasProperty)(resourceData, 'id') && (0, json_1.isString)(resourceData.id)) {
|
|
100
101
|
const ResourceClass = (0, __1.SDKConfig)().ResourceClass(resourceData.type);
|
|
101
|
-
return new ResourceClass(this).LoadData(resourceData);
|
|
102
|
+
return new ResourceClass(this, resource_object_1.ResourceObjectMode.ExistingDocument).LoadData(resourceData);
|
|
102
103
|
}
|
|
103
104
|
throw new __1.SDKException('INVALID-RESOURCE-ID', 'The resource being loaded doesn\'t have the required resource id.');
|
|
104
105
|
}
|
|
@@ -8,7 +8,7 @@ export default class ResourceObject implements IResourceObject {
|
|
|
8
8
|
private _id;
|
|
9
9
|
private _mode;
|
|
10
10
|
private _uri;
|
|
11
|
-
constructor(container: IResourceContainer);
|
|
11
|
+
constructor(container: IResourceContainer, mode: ResourceObjectMode);
|
|
12
12
|
protected EndpointContentType(): string;
|
|
13
13
|
protected LoadAttributes(value: any): void;
|
|
14
14
|
protected LoadRelationships(value: any): void;
|
|
@@ -8,19 +8,24 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.ResourceObjectMode = void 0;
|
|
13
16
|
const json_1 = require("@apigames/json");
|
|
14
17
|
const __1 = require("..");
|
|
18
|
+
const date_and_time_1 = __importDefault(require("date-and-time"));
|
|
15
19
|
var ResourceObjectMode;
|
|
16
20
|
(function (ResourceObjectMode) {
|
|
17
21
|
ResourceObjectMode[ResourceObjectMode["NewDocument"] = 0] = "NewDocument";
|
|
18
22
|
ResourceObjectMode[ResourceObjectMode["ExistingDocument"] = 1] = "ExistingDocument";
|
|
19
23
|
})(ResourceObjectMode = exports.ResourceObjectMode || (exports.ResourceObjectMode = {}));
|
|
20
24
|
class ResourceObject {
|
|
21
|
-
constructor(container) {
|
|
25
|
+
constructor(container, mode) {
|
|
22
26
|
this._mode = ResourceObjectMode.NewDocument;
|
|
23
27
|
this._container = container;
|
|
28
|
+
this._mode = mode;
|
|
24
29
|
}
|
|
25
30
|
EndpointContentType() {
|
|
26
31
|
throw new Error('Method or Property not implemented.');
|
|
@@ -63,8 +68,15 @@ class ResourceObject {
|
|
|
63
68
|
return undefined;
|
|
64
69
|
if ((0, json_1.isUndefined)(data) && (0, json_1.isUndefined)(shadow))
|
|
65
70
|
return undefined;
|
|
71
|
+
if ((0, json_1.isUndefined)(shadow))
|
|
72
|
+
return data;
|
|
66
73
|
if ((0, json_1.isArray)(data))
|
|
67
74
|
return data;
|
|
75
|
+
if ((0, json_1.isDate)(data)) {
|
|
76
|
+
if (data.getTime() === 0)
|
|
77
|
+
return date_and_time_1.default.format(data, 'YYYY-MM-DD', false);
|
|
78
|
+
return data.toISOString();
|
|
79
|
+
}
|
|
68
80
|
if ((0, json_1.isObject)(data)) {
|
|
69
81
|
if ((Object.keys(data).length === 2)
|
|
70
82
|
&& ((0, json_1.hasProperty)(data, 'latitude') && (0, json_1.isNumber)(data.latitude))
|
|
@@ -83,7 +95,7 @@ class ResourceObject {
|
|
|
83
95
|
if ((0, json_1.isDefined)(shadow) && (0, json_1.isObject)(shadow)) {
|
|
84
96
|
for (const fieldName in shadow) {
|
|
85
97
|
if ((0, json_1.hasProperty)(shadow, fieldName)) {
|
|
86
|
-
if ((0, json_1.
|
|
98
|
+
if ((0, json_1.isDefinedAndNotNull)(shadow[fieldName]) && (0, json_1.isUndefinedOrNull)(data[fieldName]))
|
|
87
99
|
payload[fieldName] = null;
|
|
88
100
|
}
|
|
89
101
|
}
|
|
@@ -101,25 +113,27 @@ class ResourceObject {
|
|
|
101
113
|
const payload = {};
|
|
102
114
|
for (const fieldName in data) {
|
|
103
115
|
if ((0, json_1.hasProperty)(data, fieldName)) {
|
|
104
|
-
if ((0, json_1.
|
|
105
|
-
|
|
106
|
-
data: [],
|
|
107
|
-
};
|
|
108
|
-
for (const key of data[fieldName]) {
|
|
109
|
-
payload[fieldName].data.push({
|
|
110
|
-
type: this.RelationshipType(fieldName),
|
|
111
|
-
id: key,
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
else if ((0, json_1.isString)(data[fieldName])) {
|
|
116
|
-
if ((0, json_1.isUndefined)(shadow) || !(0, json_1.areEqual)(shadow[fieldName], data[fieldName])) {
|
|
116
|
+
if ((0, json_1.isDefinedAndNotNull)(data[fieldName])) {
|
|
117
|
+
if ((0, json_1.isArrayOfStrings)(data[fieldName])) {
|
|
117
118
|
payload[fieldName] = {
|
|
118
|
-
data:
|
|
119
|
-
type: this.RelationshipType(fieldName),
|
|
120
|
-
id: data[fieldName],
|
|
121
|
-
},
|
|
119
|
+
data: [],
|
|
122
120
|
};
|
|
121
|
+
for (const key of data[fieldName]) {
|
|
122
|
+
payload[fieldName].data.push({
|
|
123
|
+
type: this.RelationshipType(fieldName),
|
|
124
|
+
id: key,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
else if ((0, json_1.isString)(data[fieldName])) {
|
|
129
|
+
if ((0, json_1.isUndefined)(shadow) || !(0, json_1.areEqual)(shadow[fieldName], data[fieldName])) {
|
|
130
|
+
payload[fieldName] = {
|
|
131
|
+
data: {
|
|
132
|
+
type: this.RelationshipType(fieldName),
|
|
133
|
+
id: data[fieldName],
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
}
|
|
123
137
|
}
|
|
124
138
|
}
|
|
125
139
|
}
|
|
@@ -127,7 +141,7 @@ class ResourceObject {
|
|
|
127
141
|
if ((0, json_1.isDefined)(shadow) && (0, json_1.isObject)(shadow)) {
|
|
128
142
|
for (const fieldName in shadow) {
|
|
129
143
|
if ((0, json_1.hasProperty)(shadow, fieldName)) {
|
|
130
|
-
if ((0, json_1.
|
|
144
|
+
if ((0, json_1.isDefinedAndNotNull)(shadow[fieldName]) && (0, json_1.isUndefinedOrNull)(data[fieldName]))
|
|
131
145
|
payload[fieldName] = null;
|
|
132
146
|
}
|
|
133
147
|
}
|
|
@@ -230,7 +244,7 @@ class ResourceObject {
|
|
|
230
244
|
const queryUri = this.uri;
|
|
231
245
|
const queryHeaders = this.GetHeaders();
|
|
232
246
|
const queryOptions = {};
|
|
233
|
-
const payload = this.
|
|
247
|
+
const payload = this.GetUpdatePayload();
|
|
234
248
|
yield this._container.restClient.Patch(queryUri, payload, queryHeaders, queryOptions);
|
|
235
249
|
});
|
|
236
250
|
}
|
|
@@ -243,10 +257,10 @@ class ResourceObject {
|
|
|
243
257
|
yield this.UpdateResource();
|
|
244
258
|
}
|
|
245
259
|
if ((0, json_1.isDefined)(this.attributes)) {
|
|
246
|
-
this.shadowAttributes.LoadData(this.attributes);
|
|
260
|
+
this.shadowAttributes.LoadData(this.attributes, __1.ResourceObjectAttributesLoadType.Replace);
|
|
247
261
|
}
|
|
248
262
|
if ((0, json_1.isDefined)(this.relationships)) {
|
|
249
|
-
this.shadowRelationships.LoadData(this.relationships);
|
|
263
|
+
this.shadowRelationships.LoadData(this.relationships, __1.ResourceObjectRelationshipsLoadType.Replace);
|
|
250
264
|
}
|
|
251
265
|
});
|
|
252
266
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { ISDKError, ISDKRequestError, ISDKException, ISDKRequestException, } from './sdk.errors';
|
|
2
2
|
export { IResourceContainer, ResourceFilterName, ResourceFilterValue, ResourceSortOption, ResourceIncludeOption, } from './resource.container';
|
|
3
|
-
export { IResourceObject, IResourceObjectAttributes, IResourceObjectRelationships, GeospatialPoint, ResourceObjectAttributeBase, ResourceObjectRelationshipLinkObject, ResourceObjectRelationship, ResourceObjectRelationships, ResourceObjectRelationshipKey, ResourceObjectRelationshipKeys, ResourceObjectUri, ResourceObjectRelationshipBase, } from './resource.object';
|
|
3
|
+
export { IResourceObject, IResourceObjectAttributes, IResourceObjectRelationships, GeospatialPoint, ResourceObjectAttributeBase, ResourceObjectAttributesLoadType, ResourceObjectRelationshipLinkObject, ResourceObjectRelationship, ResourceObjectRelationships, ResourceObjectRelationshipsLoadType, ResourceObjectRelationshipKey, ResourceObjectRelationshipKeys, ResourceObjectUri, ResourceObjectRelationshipBase, } from './resource.object';
|
package/lib/interfaces/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ResourceObjectRelationshipBase = exports.ResourceObjectAttributeBase = exports.GeospatialPoint = void 0;
|
|
3
|
+
exports.ResourceObjectRelationshipBase = exports.ResourceObjectRelationshipsLoadType = exports.ResourceObjectAttributesLoadType = exports.ResourceObjectAttributeBase = exports.GeospatialPoint = void 0;
|
|
4
4
|
var resource_object_1 = require("./resource.object");
|
|
5
5
|
Object.defineProperty(exports, "GeospatialPoint", { enumerable: true, get: function () { return resource_object_1.GeospatialPoint; } });
|
|
6
6
|
Object.defineProperty(exports, "ResourceObjectAttributeBase", { enumerable: true, get: function () { return resource_object_1.ResourceObjectAttributeBase; } });
|
|
7
|
+
Object.defineProperty(exports, "ResourceObjectAttributesLoadType", { enumerable: true, get: function () { return resource_object_1.ResourceObjectAttributesLoadType; } });
|
|
8
|
+
Object.defineProperty(exports, "ResourceObjectRelationshipsLoadType", { enumerable: true, get: function () { return resource_object_1.ResourceObjectRelationshipsLoadType; } });
|
|
7
9
|
Object.defineProperty(exports, "ResourceObjectRelationshipBase", { enumerable: true, get: function () { return resource_object_1.ResourceObjectRelationshipBase; } });
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
export declare type ResourceObjectType = string;
|
|
2
2
|
export declare type ResourceObjectIdentifier = string;
|
|
3
|
+
export declare enum ResourceObjectAttributesLoadType {
|
|
4
|
+
Replace = 0,
|
|
5
|
+
Update = 1
|
|
6
|
+
}
|
|
3
7
|
export interface IResourceObjectAttributes {
|
|
4
|
-
LoadData(data: any): void;
|
|
8
|
+
LoadData(data: any, action: ResourceObjectAttributesLoadType): void;
|
|
5
9
|
}
|
|
6
10
|
export declare type ResourceObjectRelationshipLinkObject = {
|
|
7
11
|
type: ResourceObjectType;
|
|
@@ -15,8 +19,12 @@ export declare type ResourceObjectRelationships = {
|
|
|
15
19
|
};
|
|
16
20
|
export declare type ResourceObjectRelationshipKey = string;
|
|
17
21
|
export declare type ResourceObjectRelationshipKeys = ResourceObjectRelationshipKey[];
|
|
22
|
+
export declare enum ResourceObjectRelationshipsLoadType {
|
|
23
|
+
Replace = 0,
|
|
24
|
+
Update = 1
|
|
25
|
+
}
|
|
18
26
|
export interface IResourceObjectRelationships {
|
|
19
|
-
LoadData(data: any): void;
|
|
27
|
+
LoadData(data: any, action: ResourceObjectRelationshipsLoadType): void;
|
|
20
28
|
}
|
|
21
29
|
export declare type ResourceObjectUri = string;
|
|
22
30
|
export declare class ResourceObjectAttributeBase {
|
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ResourceObjectRelationshipBase = exports.GeospatialPoint = exports.ResourceObjectAttributeBase = void 0;
|
|
3
|
+
exports.ResourceObjectRelationshipBase = exports.GeospatialPoint = exports.ResourceObjectAttributeBase = exports.ResourceObjectRelationshipsLoadType = exports.ResourceObjectAttributesLoadType = void 0;
|
|
4
4
|
const json_1 = require("@apigames/json");
|
|
5
5
|
const helpers_1 = require("../helpers");
|
|
6
|
+
var ResourceObjectAttributesLoadType;
|
|
7
|
+
(function (ResourceObjectAttributesLoadType) {
|
|
8
|
+
ResourceObjectAttributesLoadType[ResourceObjectAttributesLoadType["Replace"] = 0] = "Replace";
|
|
9
|
+
ResourceObjectAttributesLoadType[ResourceObjectAttributesLoadType["Update"] = 1] = "Update";
|
|
10
|
+
})(ResourceObjectAttributesLoadType = exports.ResourceObjectAttributesLoadType || (exports.ResourceObjectAttributesLoadType = {}));
|
|
11
|
+
var ResourceObjectRelationshipsLoadType;
|
|
12
|
+
(function (ResourceObjectRelationshipsLoadType) {
|
|
13
|
+
ResourceObjectRelationshipsLoadType[ResourceObjectRelationshipsLoadType["Replace"] = 0] = "Replace";
|
|
14
|
+
ResourceObjectRelationshipsLoadType[ResourceObjectRelationshipsLoadType["Update"] = 1] = "Update";
|
|
15
|
+
})(ResourceObjectRelationshipsLoadType = exports.ResourceObjectRelationshipsLoadType || (exports.ResourceObjectRelationshipsLoadType = {}));
|
|
6
16
|
class ResourceObjectAttributeBase {
|
|
7
17
|
static LoadDateTime(value) {
|
|
8
18
|
return (0, helpers_1.LoadDateTime)(value);
|