@boostercloud/framework-provider-azure 0.21.7 → 0.22.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.
package/dist/index.js
CHANGED
|
@@ -42,7 +42,7 @@ const Provider = () => ({
|
|
|
42
42
|
rawToEnvelopes: undefined,
|
|
43
43
|
fetchSubscriptions: undefined,
|
|
44
44
|
store: read_model_adapter_1.storeReadModel.bind(null, cosmosClient),
|
|
45
|
-
delete:
|
|
45
|
+
delete: read_model_adapter_1.deleteReadModel.bind(null, cosmosClient),
|
|
46
46
|
deleteSubscription: undefined,
|
|
47
47
|
deleteAllSubscriptions: undefined,
|
|
48
48
|
},
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.rawGraphQLRequestToEnvelope = void 0;
|
|
4
4
|
async function rawGraphQLRequestToEnvelope(context, logger) {
|
|
5
|
+
var _a, _b;
|
|
5
6
|
logger.debug('Received GraphQL request: ', context.req);
|
|
6
7
|
const requestID = context.executionContext.invocationId;
|
|
7
8
|
const connectionID = undefined; // TODO: Add this when sockets are supported
|
|
@@ -14,6 +15,7 @@ async function rawGraphQLRequestToEnvelope(context, logger) {
|
|
|
14
15
|
return {
|
|
15
16
|
requestID,
|
|
16
17
|
eventType,
|
|
18
|
+
token: (_b = (_a = context.req) === null || _a === void 0 ? void 0 : _a.headers) === null || _b === void 0 ? void 0 : _b.authorization,
|
|
17
19
|
value: graphQLValue,
|
|
18
20
|
};
|
|
19
21
|
}
|
|
@@ -2,3 +2,4 @@ import { CosmosClient } from '@azure/cosmos';
|
|
|
2
2
|
import { BoosterConfig, Logger, ReadModelInterface, ReadOnlyNonEmptyArray, UUID } from '@boostercloud/framework-types';
|
|
3
3
|
export declare function fetchReadModel(db: CosmosClient, config: BoosterConfig, logger: Logger, readModelName: string, readModelID: UUID): Promise<ReadOnlyNonEmptyArray<ReadModelInterface>>;
|
|
4
4
|
export declare function storeReadModel(db: CosmosClient, config: BoosterConfig, logger: Logger, readModelName: string, readModel: ReadModelInterface): Promise<void>;
|
|
5
|
+
export declare function deleteReadModel(db: CosmosClient, config: BoosterConfig, logger: Logger, readModelName: string, readModel: ReadModelInterface): Promise<void>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.storeReadModel = exports.fetchReadModel = void 0;
|
|
3
|
+
exports.deleteReadModel = exports.storeReadModel = exports.fetchReadModel = void 0;
|
|
4
4
|
const framework_types_1 = require("@boostercloud/framework-types");
|
|
5
5
|
const constants_1 = require("../constants");
|
|
6
6
|
async function fetchReadModel(db, config, logger, readModelName, readModelID) {
|
|
@@ -75,3 +75,13 @@ async function storeReadModel(db, config, logger, readModelName, readModel) {
|
|
|
75
75
|
await updateReadModel(readModel, db, config, readModelName, logger);
|
|
76
76
|
}
|
|
77
77
|
exports.storeReadModel = storeReadModel;
|
|
78
|
+
async function deleteReadModel(db, config, logger, readModelName, readModel) {
|
|
79
|
+
logger.debug(`[ReadModelAdapter#deleteReadModel] Entering to Read model deleted. ID = ${readModel.id}`);
|
|
80
|
+
await db
|
|
81
|
+
.database(config.resourceNames.applicationStack)
|
|
82
|
+
.container(config.resourceNames.forReadModel(readModelName))
|
|
83
|
+
.item(readModel.id, readModel.id)
|
|
84
|
+
.delete();
|
|
85
|
+
logger.debug(`[ReadModelAdapter#deleteReadModel] Read model deleted. ID = ${readModel.id}`);
|
|
86
|
+
}
|
|
87
|
+
exports.deleteReadModel = deleteReadModel;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { CosmosClient } from '@azure/cosmos';
|
|
2
|
-
import { BoosterConfig, Logger, FilterFor } from '@boostercloud/framework-types';
|
|
3
|
-
export declare function searchReadModel(cosmosDb: CosmosClient, config: BoosterConfig, logger: Logger, readModelName: string, filters: FilterFor<unknown>): Promise<Array<any>>;
|
|
2
|
+
import { BoosterConfig, Logger, FilterFor, ReadModelListResult } from '@boostercloud/framework-types';
|
|
3
|
+
export declare function searchReadModel(cosmosDb: CosmosClient, config: BoosterConfig, logger: Logger, readModelName: string, filters: FilterFor<unknown>, limit?: number, afterCursor?: Record<string, string> | undefined, paginatedVersion?: boolean): Promise<Array<any> | ReadModelListResult<any>>;
|
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.searchReadModel = void 0;
|
|
4
4
|
const framework_types_1 = require("@boostercloud/framework-types");
|
|
5
|
-
async function searchReadModel(cosmosDb, config, logger, readModelName, filters) {
|
|
5
|
+
async function searchReadModel(cosmosDb, config, logger, readModelName, filters, limit, afterCursor, paginatedVersion = false) {
|
|
6
6
|
const filterExpression = buildFilterExpression(filters);
|
|
7
|
+
const queryDefinition = `SELECT * FROM c ${filterExpression !== '' ? `WHERE ${filterExpression}` : filterExpression}`;
|
|
8
|
+
const queryWithPagination = queryDefinition + (paginatedVersion && limit ? ` OFFSET ${(afterCursor === null || afterCursor === void 0 ? void 0 : afterCursor.id) || 0} LIMIT ${limit}` : '');
|
|
7
9
|
const querySpec = {
|
|
8
|
-
query:
|
|
10
|
+
query: queryWithPagination,
|
|
9
11
|
parameters: buildExpressionAttributeValues(filters),
|
|
10
12
|
};
|
|
11
13
|
logger.debug('Running search with the following params: \n', querySpec);
|
|
@@ -14,8 +16,16 @@ async function searchReadModel(cosmosDb, config, logger, readModelName, filters)
|
|
|
14
16
|
.container(config.resourceNames.forReadModel(readModelName))
|
|
15
17
|
.items.query(querySpec)
|
|
16
18
|
.fetchAll();
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
if (paginatedVersion) {
|
|
20
|
+
return {
|
|
21
|
+
items: resources !== null && resources !== void 0 ? resources : [],
|
|
22
|
+
count: resources.length,
|
|
23
|
+
cursor: { id: ((limit ? limit : 1) + ((afterCursor === null || afterCursor === void 0 ? void 0 : afterCursor.id) ? parseInt(afterCursor === null || afterCursor === void 0 ? void 0 : afterCursor.id) : 0)).toString() },
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return resources !== null && resources !== void 0 ? resources : [];
|
|
28
|
+
}
|
|
19
29
|
}
|
|
20
30
|
exports.searchReadModel = searchReadModel;
|
|
21
31
|
function buildFilterExpression(filters, usedPlaceholders = []) {
|
|
@@ -59,8 +69,9 @@ function buildOperation(propName, filter = {}, usedPlaceholders, nested) {
|
|
|
59
69
|
return `CONTAINS(${propName}, ${holder(index)})`;
|
|
60
70
|
case 'beginsWith':
|
|
61
71
|
return `STARTSWITH(${propName}, ${holder(index)})`;
|
|
62
|
-
case 'includes':
|
|
63
|
-
return `
|
|
72
|
+
case 'includes': {
|
|
73
|
+
return `ARRAY_CONTAINS(${propName}, ${holder(index)}, true)`;
|
|
74
|
+
}
|
|
64
75
|
default:
|
|
65
76
|
if (typeof value === 'object') {
|
|
66
77
|
return buildOperation(operation, value, usedPlaceholders, propName);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@boostercloud/framework-provider-azure",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"description": "Handle Booster's integration with Azure",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"framework-provider-azure"
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@azure/cosmos": "3.7.3",
|
|
24
24
|
"@azure/functions": "^1.2.2",
|
|
25
|
-
"@boostercloud/framework-types": "^0.
|
|
25
|
+
"@boostercloud/framework-types": "^0.22.0",
|
|
26
26
|
"chai": "4.2.0",
|
|
27
27
|
"chai-as-promised": "7.1.1",
|
|
28
28
|
"mocha": "8.4.0",
|
|
@@ -41,5 +41,5 @@
|
|
|
41
41
|
"bugs": {
|
|
42
42
|
"url": "https://github.com/boostercloud/booster/issues"
|
|
43
43
|
},
|
|
44
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "b479b1f7e3614d7737b4c82aac7b2020a640b269"
|
|
45
45
|
}
|