@microsoft/power-apps 0.3.1
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/LICENSE +153 -0
- package/README.md +63 -0
- package/lib/__tests__/connectorDataOperationExecutor.spec.d.ts +5 -0
- package/lib/__tests__/connectorDataOperationExecutor.spec.d.ts.map +1 -0
- package/lib/__tests__/connectorDataOperationExecutor.spec.js +509 -0
- package/lib/__tests__/connectorDataOperationExecutor.spec.js.map +1 -0
- package/lib/__tests__/dataverseDataOperationExecutor.spec.d.ts +5 -0
- package/lib/__tests__/dataverseDataOperationExecutor.spec.d.ts.map +1 -0
- package/lib/__tests__/dataverseDataOperationExecutor.spec.js +349 -0
- package/lib/__tests__/dataverseDataOperationExecutor.spec.js.map +1 -0
- package/lib/__tests__/helpers/testHelpers.d.ts +27 -0
- package/lib/__tests__/helpers/testHelpers.d.ts.map +1 -0
- package/lib/__tests__/helpers/testHelpers.js +67 -0
- package/lib/__tests__/helpers/testHelpers.js.map +1 -0
- package/lib/__tests__/index.spec.d.ts +5 -0
- package/lib/__tests__/index.spec.d.ts.map +1 -0
- package/lib/__tests__/index.spec.js +10 -0
- package/lib/__tests__/index.spec.js.map +1 -0
- package/lib/__tests__/mockDataOperationExecutor.spec.d.ts +5 -0
- package/lib/__tests__/mockDataOperationExecutor.spec.d.ts.map +1 -0
- package/lib/__tests__/mockDataOperationExecutor.spec.js +51 -0
- package/lib/__tests__/mockDataOperationExecutor.spec.js.map +1 -0
- package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.d.ts +17 -0
- package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.d.ts.map +1 -0
- package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.js +35 -0
- package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.js.map +1 -0
- package/lib/__tests__/mocks/mockLog.d.ts +31 -0
- package/lib/__tests__/mocks/mockLog.d.ts.map +1 -0
- package/lib/__tests__/mocks/mockLog.js +53 -0
- package/lib/__tests__/mocks/mockLog.js.map +1 -0
- package/lib/__tests__/mocks/mockTeamsConnectorResponse.d.ts +76 -0
- package/lib/__tests__/mocks/mockTeamsConnectorResponse.d.ts.map +1 -0
- package/lib/__tests__/mocks/mockTeamsConnectorResponse.js +81 -0
- package/lib/__tests__/mocks/mockTeamsConnectorResponse.js.map +1 -0
- package/lib/__tests__/mocks/silenceConsole.d.ts +37 -0
- package/lib/__tests__/mocks/silenceConsole.d.ts.map +1 -0
- package/lib/__tests__/mocks/silenceConsole.js +58 -0
- package/lib/__tests__/mocks/silenceConsole.js.map +1 -0
- package/lib/__tests__/powerDataRuntimeInstance.test.d.ts +5 -0
- package/lib/__tests__/powerDataRuntimeInstance.test.d.ts.map +1 -0
- package/lib/__tests__/powerDataRuntimeInstance.test.js +179 -0
- package/lib/__tests__/powerDataRuntimeInstance.test.js.map +1 -0
- package/lib/__tests__/powerDataSourcesInfoProvider.test.d.ts +5 -0
- package/lib/__tests__/powerDataSourcesInfoProvider.test.d.ts.map +1 -0
- package/lib/__tests__/powerDataSourcesInfoProvider.test.js +153 -0
- package/lib/__tests__/powerDataSourcesInfoProvider.test.js.map +1 -0
- package/lib/__tests__/runtimeClientProvider.test.d.ts +5 -0
- package/lib/__tests__/runtimeClientProvider.test.d.ts.map +1 -0
- package/lib/__tests__/runtimeClientProvider.test.js +248 -0
- package/lib/__tests__/runtimeClientProvider.test.js.map +1 -0
- package/lib/__tests__/runtimeDataClient.spec.d.ts +2 -0
- package/lib/__tests__/runtimeDataClient.spec.d.ts.map +1 -0
- package/lib/__tests__/runtimeDataClient.spec.js +351 -0
- package/lib/__tests__/runtimeDataClient.spec.js.map +1 -0
- package/lib/__tests__/runtimeDataClient.test.d.ts +2 -0
- package/lib/__tests__/runtimeDataClient.test.d.ts.map +1 -0
- package/lib/__tests__/runtimeDataClient.test.js +351 -0
- package/lib/__tests__/runtimeDataClient.test.js.map +1 -0
- package/lib/__tests__/runtimeDataOperation.test.d.ts +5 -0
- package/lib/__tests__/runtimeDataOperation.test.d.ts.map +1 -0
- package/lib/__tests__/runtimeDataOperation.test.js +234 -0
- package/lib/__tests__/runtimeDataOperation.test.js.map +1 -0
- package/lib/__tests__/runtimeMetadataClient.test.d.ts +5 -0
- package/lib/__tests__/runtimeMetadataClient.test.d.ts.map +1 -0
- package/lib/__tests__/runtimeMetadataClient.test.js +271 -0
- package/lib/__tests__/runtimeMetadataClient.test.js.map +1 -0
- package/lib/__tests__/runtimeMetadataOperations.test.d.ts +5 -0
- package/lib/__tests__/runtimeMetadataOperations.test.d.ts.map +1 -0
- package/lib/__tests__/runtimeMetadataOperations.test.js +286 -0
- package/lib/__tests__/runtimeMetadataOperations.test.js.map +1 -0
- package/lib/__tests__/serviceSchemaModelSnapshot.test.d.ts +2 -0
- package/lib/__tests__/serviceSchemaModelSnapshot.test.d.ts.map +1 -0
- package/lib/__tests__/serviceSchemaModelSnapshot.test.js +98 -0
- package/lib/__tests__/serviceSchemaModelSnapshot.test.js.map +1 -0
- package/lib/__tests__/types.spec.d.ts +5 -0
- package/lib/__tests__/types.spec.d.ts.map +1 -0
- package/lib/__tests__/types.spec.js +104 -0
- package/lib/__tests__/types.spec.js.map +1 -0
- package/lib/__tests__/utils.test.d.ts +5 -0
- package/lib/__tests__/utils.test.d.ts.map +1 -0
- package/lib/__tests__/utils.test.js +33 -0
- package/lib/__tests__/utils.test.js.map +1 -0
- package/lib/app/Lifecycle.d.ts +14 -0
- package/lib/app/Lifecycle.d.ts.map +1 -0
- package/lib/app/Lifecycle.js +37 -0
- package/lib/app/Lifecycle.js.map +1 -0
- package/lib/app/index.d.ts +5 -0
- package/lib/app/index.d.ts.map +1 -0
- package/lib/app/index.js +5 -0
- package/lib/app/index.js.map +1 -0
- package/lib/data/Data.types.d.ts +20 -0
- package/lib/data/Data.types.d.ts.map +1 -0
- package/lib/data/Data.types.js +5 -0
- package/lib/data/Data.types.js.map +1 -0
- package/lib/data/executors/index.d.ts +6 -0
- package/lib/data/executors/index.d.ts.map +1 -0
- package/lib/data/executors/index.js +5 -0
- package/lib/data/executors/index.js.map +1 -0
- package/lib/data/index.d.ts +7 -0
- package/lib/data/index.d.ts.map +1 -0
- package/lib/data/index.js +5 -0
- package/lib/data/index.js.map +1 -0
- package/lib/data/powerAppsData.d.ts +10 -0
- package/lib/data/powerAppsData.d.ts.map +1 -0
- package/lib/data/powerAppsData.js +43 -0
- package/lib/data/powerAppsData.js.map +1 -0
- package/lib/index.d.ts +8 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +8 -0
- package/lib/index.js.map +1 -0
- package/lib/internal/communication/CompatibleMessageReceiver.d.ts +12 -0
- package/lib/internal/communication/CompatibleMessageReceiver.d.ts.map +1 -0
- package/lib/internal/communication/CompatibleMessageReceiver.js +92 -0
- package/lib/internal/communication/CompatibleMessageReceiver.js.map +1 -0
- package/lib/internal/communication/IncompatibleMessageReceiver.d.ts +10 -0
- package/lib/internal/communication/IncompatibleMessageReceiver.d.ts.map +1 -0
- package/lib/internal/communication/IncompatibleMessageReceiver.js +13 -0
- package/lib/internal/communication/IncompatibleMessageReceiver.js.map +1 -0
- package/lib/internal/communication/MessageReceiver.Types.d.ts +18 -0
- package/lib/internal/communication/MessageReceiver.Types.d.ts.map +1 -0
- package/lib/internal/communication/MessageReceiver.Types.js +5 -0
- package/lib/internal/communication/MessageReceiver.Types.js.map +1 -0
- package/lib/internal/communication/SendMessage.d.ts +11 -0
- package/lib/internal/communication/SendMessage.d.ts.map +1 -0
- package/lib/internal/communication/SendMessage.js +32 -0
- package/lib/internal/communication/SendMessage.js.map +1 -0
- package/lib/internal/communication/SendMessageOperation.d.ts +15 -0
- package/lib/internal/communication/SendMessageOperation.d.ts.map +1 -0
- package/lib/internal/communication/SendMessageOperation.js +18 -0
- package/lib/internal/communication/SendMessageOperation.js.map +1 -0
- package/lib/internal/data/ConnectionUtils.d.ts +5 -0
- package/lib/internal/data/ConnectionUtils.d.ts.map +1 -0
- package/lib/internal/data/ConnectionUtils.js +20 -0
- package/lib/internal/data/ConnectionUtils.js.map +1 -0
- package/lib/internal/data/OperationExecutor.d.ts +18 -0
- package/lib/internal/data/OperationExecutor.d.ts.map +1 -0
- package/lib/internal/data/OperationExecutor.js +35 -0
- package/lib/internal/data/OperationExecutor.js.map +1 -0
- package/lib/internal/data/core/api/createRecord.d.ts +13 -0
- package/lib/internal/data/core/api/createRecord.d.ts.map +1 -0
- package/lib/internal/data/core/api/createRecord.js +15 -0
- package/lib/internal/data/core/api/createRecord.js.map +1 -0
- package/lib/internal/data/core/api/deleteRecord.d.ts +13 -0
- package/lib/internal/data/core/api/deleteRecord.d.ts.map +1 -0
- package/lib/internal/data/core/api/deleteRecord.js +15 -0
- package/lib/internal/data/core/api/deleteRecord.js.map +1 -0
- package/lib/internal/data/core/api/execute.d.ts +11 -0
- package/lib/internal/data/core/api/execute.d.ts.map +1 -0
- package/lib/internal/data/core/api/execute.js +13 -0
- package/lib/internal/data/core/api/execute.js.map +1 -0
- package/lib/internal/data/core/api/retrieveMultipleRecords.d.ts +13 -0
- package/lib/internal/data/core/api/retrieveMultipleRecords.d.ts.map +1 -0
- package/lib/internal/data/core/api/retrieveMultipleRecords.js +15 -0
- package/lib/internal/data/core/api/retrieveMultipleRecords.js.map +1 -0
- package/lib/internal/data/core/api/retrieveRecord.d.ts +13 -0
- package/lib/internal/data/core/api/retrieveRecord.d.ts.map +1 -0
- package/lib/internal/data/core/api/retrieveRecord.js +15 -0
- package/lib/internal/data/core/api/retrieveRecord.js.map +1 -0
- package/lib/internal/data/core/api/updateRecord.d.ts +14 -0
- package/lib/internal/data/core/api/updateRecord.d.ts.map +1 -0
- package/lib/internal/data/core/api/updateRecord.js +16 -0
- package/lib/internal/data/core/api/updateRecord.js.map +1 -0
- package/lib/internal/data/core/common/types.d.ts +230 -0
- package/lib/internal/data/core/common/types.d.ts.map +1 -0
- package/lib/internal/data/core/common/types.js +25 -0
- package/lib/internal/data/core/common/types.js.map +1 -0
- package/lib/internal/data/core/common/utils.d.ts +19 -0
- package/lib/internal/data/core/common/utils.d.ts.map +1 -0
- package/lib/internal/data/core/common/utils.js +47 -0
- package/lib/internal/data/core/common/utils.js.map +1 -0
- package/lib/internal/data/core/data/defaultOperationOrchestrator.d.ts +93 -0
- package/lib/internal/data/core/data/defaultOperationOrchestrator.d.ts.map +1 -0
- package/lib/internal/data/core/data/defaultOperationOrchestrator.js +249 -0
- package/lib/internal/data/core/data/defaultOperationOrchestrator.js.map +1 -0
- package/lib/internal/data/core/data/executors/connectorDataOperationExecutor.d.ts +160 -0
- package/lib/internal/data/core/data/executors/connectorDataOperationExecutor.d.ts.map +1 -0
- package/lib/internal/data/core/data/executors/connectorDataOperationExecutor.js +500 -0
- package/lib/internal/data/core/data/executors/connectorDataOperationExecutor.js.map +1 -0
- package/lib/internal/data/core/data/executors/dataverseDataOperationExecutor.d.ts +164 -0
- package/lib/internal/data/core/data/executors/dataverseDataOperationExecutor.d.ts.map +1 -0
- package/lib/internal/data/core/data/executors/dataverseDataOperationExecutor.js +508 -0
- package/lib/internal/data/core/data/executors/dataverseDataOperationExecutor.js.map +1 -0
- package/lib/internal/data/core/data/executors/index.d.ts +5 -0
- package/lib/internal/data/core/data/executors/index.d.ts.map +1 -0
- package/lib/internal/data/core/data/executors/index.js +5 -0
- package/lib/internal/data/core/data/executors/index.js.map +1 -0
- package/lib/internal/data/core/data/executors/mockDataOperationExecutor.d.ts +21 -0
- package/lib/internal/data/core/data/executors/mockDataOperationExecutor.d.ts.map +1 -0
- package/lib/internal/data/core/data/executors/mockDataOperationExecutor.js +75 -0
- package/lib/internal/data/core/data/executors/mockDataOperationExecutor.js.map +1 -0
- package/lib/internal/data/core/error/codes.d.ts +31 -0
- package/lib/internal/data/core/error/codes.d.ts.map +1 -0
- package/lib/internal/data/core/error/codes.js +39 -0
- package/lib/internal/data/core/error/codes.js.map +1 -0
- package/lib/internal/data/core/error/constants.d.ts +30 -0
- package/lib/internal/data/core/error/constants.d.ts.map +1 -0
- package/lib/internal/data/core/error/constants.js +33 -0
- package/lib/internal/data/core/error/constants.js.map +1 -0
- package/lib/internal/data/core/error/error.d.ts +8 -0
- package/lib/internal/data/core/error/error.d.ts.map +1 -0
- package/lib/internal/data/core/error/error.js +8 -0
- package/lib/internal/data/core/error/error.js.map +1 -0
- package/lib/internal/data/core/error/messages.d.ts +24 -0
- package/lib/internal/data/core/error/messages.d.ts.map +1 -0
- package/lib/internal/data/core/error/messages.js +55 -0
- package/lib/internal/data/core/error/messages.js.map +1 -0
- package/lib/internal/data/core/error/types.d.ts +30 -0
- package/lib/internal/data/core/error/types.d.ts.map +1 -0
- package/lib/internal/data/core/error/types.js +28 -0
- package/lib/internal/data/core/error/types.js.map +1 -0
- package/lib/internal/data/core/error/util.d.ts +24 -0
- package/lib/internal/data/core/error/util.d.ts.map +1 -0
- package/lib/internal/data/core/error/util.js +71 -0
- package/lib/internal/data/core/error/util.js.map +1 -0
- package/lib/internal/data/core/metadata/runtimeDataSourceService.d.ts +65 -0
- package/lib/internal/data/core/metadata/runtimeDataSourceService.d.ts.map +1 -0
- package/lib/internal/data/core/metadata/runtimeDataSourceService.js +101 -0
- package/lib/internal/data/core/metadata/runtimeDataSourceService.js.map +1 -0
- package/lib/internal/data/core/metadata/runtimeMetadataOperations.d.ts +17 -0
- package/lib/internal/data/core/metadata/runtimeMetadataOperations.d.ts.map +1 -0
- package/lib/internal/data/core/metadata/runtimeMetadataOperations.js +34 -0
- package/lib/internal/data/core/metadata/runtimeMetadataOperations.js.map +1 -0
- package/lib/internal/data/core/runtime/getRuntimeContext.d.ts +11 -0
- package/lib/internal/data/core/runtime/getRuntimeContext.d.ts.map +1 -0
- package/lib/internal/data/core/runtime/getRuntimeContext.js +16 -0
- package/lib/internal/data/core/runtime/getRuntimeContext.js.map +1 -0
- package/lib/internal/data/core/runtime/initializeRuntime.d.ts +13 -0
- package/lib/internal/data/core/runtime/initializeRuntime.d.ts.map +1 -0
- package/lib/internal/data/core/runtime/initializeRuntime.js +38 -0
- package/lib/internal/data/core/runtime/initializeRuntime.js.map +1 -0
- package/lib/internal/data/core/runtime/powerDataRuntime.d.ts +68 -0
- package/lib/internal/data/core/runtime/powerDataRuntime.d.ts.map +1 -0
- package/lib/internal/data/core/runtime/powerDataRuntime.js +116 -0
- package/lib/internal/data/core/runtime/powerDataRuntime.js.map +1 -0
- package/lib/internal/data/core/runtime/powerDataRuntimeInstance.d.ts +20 -0
- package/lib/internal/data/core/runtime/powerDataRuntimeInstance.d.ts.map +1 -0
- package/lib/internal/data/core/runtime/powerDataRuntimeInstance.js +36 -0
- package/lib/internal/data/core/runtime/powerDataRuntimeInstance.js.map +1 -0
- package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.d.ts +34 -0
- package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.d.ts.map +1 -0
- package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.js +45 -0
- package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.js.map +1 -0
- package/lib/internal/data/core/runtimeClient/runtimeClientProvider.d.ts +43 -0
- package/lib/internal/data/core/runtimeClient/runtimeClientProvider.d.ts.map +1 -0
- package/lib/internal/data/core/runtimeClient/runtimeClientProvider.js +87 -0
- package/lib/internal/data/core/runtimeClient/runtimeClientProvider.js.map +1 -0
- package/lib/internal/data/core/runtimeClient/runtimeDataClient.d.ts +112 -0
- package/lib/internal/data/core/runtimeClient/runtimeDataClient.d.ts.map +1 -0
- package/lib/internal/data/core/runtimeClient/runtimeDataClient.js +457 -0
- package/lib/internal/data/core/runtimeClient/runtimeDataClient.js.map +1 -0
- package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.d.ts +40 -0
- package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.d.ts.map +1 -0
- package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.js +94 -0
- package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.js.map +1 -0
- package/lib/internal/data/core/telemetry/log.d.ts +20 -0
- package/lib/internal/data/core/telemetry/log.d.ts.map +1 -0
- package/lib/internal/data/core/telemetry/log.js +85 -0
- package/lib/internal/data/core/telemetry/log.js.map +1 -0
- package/lib/internal/data/core/types/index.d.ts +164 -0
- package/lib/internal/data/core/types/index.d.ts.map +1 -0
- package/lib/internal/data/core/types/index.js +7 -0
- package/lib/internal/data/core/types/index.js.map +1 -0
- package/lib/internal/plugin/PluginCommon.d.ts +16 -0
- package/lib/internal/plugin/PluginCommon.d.ts.map +1 -0
- package/lib/internal/plugin/PluginCommon.js +116 -0
- package/lib/internal/plugin/PluginCommon.js.map +1 -0
- package/lib/internal/plugin/PluginMobile.d.ts +13 -0
- package/lib/internal/plugin/PluginMobile.d.ts.map +1 -0
- package/lib/internal/plugin/PluginMobile.js +109 -0
- package/lib/internal/plugin/PluginMobile.js.map +1 -0
- package/lib/telemetry/Logger.types.d.ts +8 -0
- package/lib/telemetry/Logger.types.d.ts.map +1 -0
- package/lib/telemetry/Logger.types.js +5 -0
- package/lib/telemetry/Logger.types.js.map +1 -0
- package/lib/telemetry/LoggerManager.d.ts +6 -0
- package/lib/telemetry/LoggerManager.d.ts.map +1 -0
- package/lib/telemetry/LoggerManager.js +28 -0
- package/lib/telemetry/LoggerManager.js.map +1 -0
- package/lib/telemetry/Metrics.types.d.ts +53 -0
- package/lib/telemetry/Metrics.types.d.ts.map +1 -0
- package/lib/telemetry/Metrics.types.js +5 -0
- package/lib/telemetry/Metrics.types.js.map +1 -0
- package/lib/telemetry/Performance.d.ts +5 -0
- package/lib/telemetry/Performance.d.ts.map +1 -0
- package/lib/telemetry/Performance.js +47 -0
- package/lib/telemetry/Performance.js.map +1 -0
- package/lib/telemetry/index.d.ts +5 -0
- package/lib/telemetry/index.d.ts.map +1 -0
- package/lib/telemetry/index.js +5 -0
- package/lib/telemetry/index.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import { DataSources } from '../common/types';
|
|
5
|
+
import { createErrorResponse, DataOperationErrorMessages } from '../error/error';
|
|
6
|
+
import { getDataOperationExecutor } from '../../../../data/powerAppsData';
|
|
7
|
+
/**
|
|
8
|
+
* RuntimeDataOperations provides a unified interface for performing data operations
|
|
9
|
+
* across different data sources.
|
|
10
|
+
*/
|
|
11
|
+
export class DefaultDataOperationOrchestrator {
|
|
12
|
+
_dataverseOperation;
|
|
13
|
+
_connectorOperation;
|
|
14
|
+
_connectionsService;
|
|
15
|
+
// Static identifiers for services and actions
|
|
16
|
+
// Used to identify specific services and actions within the PowerApps environment
|
|
17
|
+
constructor(_dataverseOperation, _connectorOperation, _connectionsService) {
|
|
18
|
+
this._dataverseOperation = _dataverseOperation;
|
|
19
|
+
this._connectorOperation = _connectorOperation;
|
|
20
|
+
this._connectionsService = _connectionsService;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Creates a new record in the specified data source.
|
|
24
|
+
* @param tableName - The name of the table.
|
|
25
|
+
* @param data - The record data to create.
|
|
26
|
+
* @returns A promise that resolves to the operation result.
|
|
27
|
+
* @throws DataOperationError if the operation fails.
|
|
28
|
+
*/
|
|
29
|
+
async createRecordAsync(tableName, data) {
|
|
30
|
+
try {
|
|
31
|
+
this._validateParams({ tableName, data });
|
|
32
|
+
const executor = await this._getExecutor(tableName);
|
|
33
|
+
return await executor.createRecordAsync(tableName, data);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
return createErrorResponse(error, 'Create record operation failed');
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Updates an existing record in the specified data source.
|
|
41
|
+
* @param tableName - The name of the table.
|
|
42
|
+
* @param id - The ID of the record to update.
|
|
43
|
+
* @param data - The updated record data.
|
|
44
|
+
* @returns A promise that resolves to the operation result.
|
|
45
|
+
* @throws DataOperationError if the operation fails.
|
|
46
|
+
*/
|
|
47
|
+
async updateRecordAsync(tableName, id, data) {
|
|
48
|
+
try {
|
|
49
|
+
this._validateParams({ tableName, id, data });
|
|
50
|
+
const executor = await this._getExecutor(tableName);
|
|
51
|
+
return await executor.updateRecordAsync(tableName, id, data);
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
return createErrorResponse(error, 'Update record operation failed');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Deletes a record from the specified data source.
|
|
59
|
+
* @param tableName - The name of the table.
|
|
60
|
+
* @param id - The ID of the record to delete.
|
|
61
|
+
* @returns A promise that resolves to the operation result.
|
|
62
|
+
* @throws DataOperationError if the operation fails.
|
|
63
|
+
*/
|
|
64
|
+
async deleteRecordAsync(tableName, id) {
|
|
65
|
+
try {
|
|
66
|
+
this._validateParams({ tableName, id });
|
|
67
|
+
const executor = await this._getExecutor(tableName);
|
|
68
|
+
return await executor.deleteRecordAsync(tableName, id);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
return createErrorResponse(error, 'Delete record operation failed');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Retrieves a record from the specified data source.
|
|
76
|
+
* @param tableName - The name of the table.
|
|
77
|
+
* @param id - The ID of the record to retrieve.
|
|
78
|
+
* @param options - Optional operation options.
|
|
79
|
+
* @returns A promise that resolves to the operation result.
|
|
80
|
+
* @throws DataOperationError if the operation fails.
|
|
81
|
+
*/
|
|
82
|
+
async retrieveRecordAsync(tableName, id, options) {
|
|
83
|
+
try {
|
|
84
|
+
this._validateParams({ tableName, id });
|
|
85
|
+
const executor = await this._getExecutor(tableName);
|
|
86
|
+
const optionsString = this._convertOptionsToString(options);
|
|
87
|
+
return await executor.retrieveRecordAsync(tableName, id, optionsString, options?.maxPageSize);
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
return createErrorResponse(error, 'Retrieve record operation failed');
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Retrieves multiple records from the specified data source.
|
|
95
|
+
* @param tableName - The name of the table.
|
|
96
|
+
* @param options - Optional operation options.
|
|
97
|
+
* @returns A promise that resolves to the operation result.
|
|
98
|
+
* @throws DataOperationError if the operation fails.
|
|
99
|
+
*/
|
|
100
|
+
async retrieveMultipleRecordsAsync(tableName, options) {
|
|
101
|
+
try {
|
|
102
|
+
this._validateParams({ tableName });
|
|
103
|
+
const executor = await this._getExecutor(tableName);
|
|
104
|
+
const optionsString = this._convertOptionsToString(options);
|
|
105
|
+
return await executor.retrieveMultipleRecordsAsync(tableName, optionsString, options?.maxPageSize);
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
return createErrorResponse(error, 'Retrieve multiple records operation failed');
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Executes a data operation on the specified data source.
|
|
113
|
+
* @param operation - The operation to execute
|
|
114
|
+
* @returns A promise that resolves to the operation result.
|
|
115
|
+
* @throws DataOperationError if the operation fails.
|
|
116
|
+
*/
|
|
117
|
+
async executeAsync(operation) {
|
|
118
|
+
try {
|
|
119
|
+
this._validateParams({ operation });
|
|
120
|
+
const executor = await this._getExecutor('', operation.connectorOperation ? DataSources.Connector : DataSources.Dataverse);
|
|
121
|
+
return await executor.executeAsync(operation);
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
return createErrorResponse(error, 'Execute operation failed');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Retrieves the appropriate executor based on the data source.
|
|
129
|
+
* @param dataSource - The data source to retrieve the executor for.
|
|
130
|
+
* @returns The corresponding executor instance.
|
|
131
|
+
* @throws DataOperationError if the data source is invalid.
|
|
132
|
+
* // TODO: Add Dataverse support
|
|
133
|
+
*/
|
|
134
|
+
async _getExecutor(tableName, dataSource) {
|
|
135
|
+
const dataOperationExecutorOverride = getDataOperationExecutor();
|
|
136
|
+
if (dataOperationExecutorOverride) {
|
|
137
|
+
return dataOperationExecutorOverride;
|
|
138
|
+
}
|
|
139
|
+
const dataSourceType = dataSource || (await this._connectionsService.getDataSource(tableName)).dataSourceType;
|
|
140
|
+
switch (dataSourceType) {
|
|
141
|
+
case DataSources.Dataverse:
|
|
142
|
+
return this._dataverseOperation;
|
|
143
|
+
case DataSources.Connector:
|
|
144
|
+
return this._connectorOperation;
|
|
145
|
+
default:
|
|
146
|
+
return this._connectorOperation;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Validates the input parameters for data operations.
|
|
151
|
+
* @param params - The parameters to validate.
|
|
152
|
+
* @throws DataOperationError if validation fails.
|
|
153
|
+
*/
|
|
154
|
+
_validateParams(params) {
|
|
155
|
+
for (const [key, value] of Object.entries(params)) {
|
|
156
|
+
if (!value) {
|
|
157
|
+
throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: ${key} is required`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Converts operation options to a query string format.
|
|
163
|
+
* @param options - The operation options to convert.
|
|
164
|
+
* @returns The formatted query string.
|
|
165
|
+
*/
|
|
166
|
+
_convertOptionsToString(options) {
|
|
167
|
+
if (!options) {
|
|
168
|
+
return '';
|
|
169
|
+
}
|
|
170
|
+
this._validateOptions(options);
|
|
171
|
+
const parts = [];
|
|
172
|
+
if (options.select && options.select.length > 0) {
|
|
173
|
+
parts.push(`$select=${encodeURIComponent(options.select.map((s) => s.trim().replace(/%20/g, '+').replace(/'/g, '%27')).join(','))}`);
|
|
174
|
+
}
|
|
175
|
+
if (options.filter) {
|
|
176
|
+
const encodedFilter = encodeURIComponent(options.filter.trim())
|
|
177
|
+
.replace(/%20/g, '+')
|
|
178
|
+
.replace(/'/g, '%27');
|
|
179
|
+
parts.push(`$filter=${encodedFilter}`);
|
|
180
|
+
}
|
|
181
|
+
if (options.orderBy && options.orderBy.length > 0) {
|
|
182
|
+
parts.push(`$orderby=${encodeURIComponent(options.orderBy.map((s) => s.trim().replace(/%20/g, '+').replace(/'/g, '%27')).join(','))}`);
|
|
183
|
+
}
|
|
184
|
+
if (options.top !== undefined && options.top !== null) {
|
|
185
|
+
parts.push(`$top=${options.top}`);
|
|
186
|
+
}
|
|
187
|
+
if (options.skip !== undefined && options.skip !== null) {
|
|
188
|
+
parts.push(`$skip=${options.skip}`);
|
|
189
|
+
}
|
|
190
|
+
if (options.count !== undefined && options.count !== null) {
|
|
191
|
+
parts.push(`$count=${options.count}`);
|
|
192
|
+
}
|
|
193
|
+
if (options.skipToken && options.skipToken.trim() !== '') {
|
|
194
|
+
parts.push(`$skiptoken=${encodeURIComponent(options.skipToken.trim())}`);
|
|
195
|
+
}
|
|
196
|
+
return parts.length ? `?${parts.join('&')}` : '';
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Validates the operation options.
|
|
200
|
+
* @param options - The operation options to validate.
|
|
201
|
+
* @throws Error if validation fails.
|
|
202
|
+
*/
|
|
203
|
+
_validateOptions(options) {
|
|
204
|
+
// maxPageSize must be a number
|
|
205
|
+
if (options.maxPageSize && typeof options.maxPageSize !== 'number') {
|
|
206
|
+
throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: maxPageSize must be a number`);
|
|
207
|
+
}
|
|
208
|
+
/*
|
|
209
|
+
select
|
|
210
|
+
- must be an array of string
|
|
211
|
+
- no empty strings allowed
|
|
212
|
+
- no null or undefined values allowed
|
|
213
|
+
*/
|
|
214
|
+
if (options.select) {
|
|
215
|
+
if (!Array.isArray(options.select)) {
|
|
216
|
+
throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: select must be an array of strings`);
|
|
217
|
+
}
|
|
218
|
+
if (options.select.some((s) => typeof s !== 'string' || s.trim() === '')) {
|
|
219
|
+
throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: select must contain only non-empty strings`);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
// filter must be a string
|
|
223
|
+
if (options.filter && typeof options.filter !== 'string') {
|
|
224
|
+
throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: filter must be a string`);
|
|
225
|
+
}
|
|
226
|
+
// orderBy must be an array of strings
|
|
227
|
+
if (options.orderBy) {
|
|
228
|
+
if (!Array.isArray(options.orderBy)) {
|
|
229
|
+
throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: orderBy must be an array of strings`);
|
|
230
|
+
}
|
|
231
|
+
if (options.orderBy.some((s) => typeof s !== 'string' || s.trim() === '')) {
|
|
232
|
+
throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: orderBy must contain only non-empty strings`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
// top must be a number
|
|
236
|
+
if (options.top && typeof options.top !== 'number') {
|
|
237
|
+
throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: top must be a number`);
|
|
238
|
+
}
|
|
239
|
+
// skip must be a number
|
|
240
|
+
if (options.skip && typeof options.skip !== 'number') {
|
|
241
|
+
throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: skip must be a number`);
|
|
242
|
+
}
|
|
243
|
+
// count must be a boolean
|
|
244
|
+
if (options.count && typeof options.count !== 'boolean') {
|
|
245
|
+
throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: count must be a boolean`);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=defaultOperationOrchestrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultOperationOrchestrator.js","sourceRoot":"","sources":["../../../../../src/internal/data/core/data/defaultOperationOrchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import { IConnectionReference, IRuntimeClientProvider } from '../../common/types';
|
|
5
|
+
import { RuntimeDataSourceService } from '../../metadata/runtimeDataSourceService';
|
|
6
|
+
import type { IDataOperation, IDataOperationExecutor, IOperationResult } from '../../types';
|
|
7
|
+
/**
|
|
8
|
+
* Type for connection references mapping
|
|
9
|
+
*/
|
|
10
|
+
export type ConnectionReferences = Record<string, IConnectionReference>;
|
|
11
|
+
/**
|
|
12
|
+
* Interface for connector operation configuration
|
|
13
|
+
*/
|
|
14
|
+
export interface IConnectorOperationConfig {
|
|
15
|
+
tableName: string;
|
|
16
|
+
apiId: string;
|
|
17
|
+
runtimeUrl: string;
|
|
18
|
+
connectionName: string;
|
|
19
|
+
datasetName?: string;
|
|
20
|
+
tableId: string;
|
|
21
|
+
version?: string;
|
|
22
|
+
datasetNameOverride?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* ConnectorDataOperation provides functionality for performing CRUD operations
|
|
26
|
+
* against connector data sources using the Runtime Data Client.
|
|
27
|
+
*/
|
|
28
|
+
export declare class ConnectorDataOperationExecutor implements IDataOperationExecutor {
|
|
29
|
+
private readonly _clientProvider;
|
|
30
|
+
private readonly _connectionsService;
|
|
31
|
+
private _databaseReferences;
|
|
32
|
+
private _connectionReferences;
|
|
33
|
+
constructor(clientProvider: IRuntimeClientProvider, connectionsService: RuntimeDataSourceService);
|
|
34
|
+
/**
|
|
35
|
+
* Creates a new record in the specified table
|
|
36
|
+
*/
|
|
37
|
+
createRecordAsync<TRequest, TResponse>(tableName: string, data: TRequest): Promise<IOperationResult<TResponse>>;
|
|
38
|
+
/**
|
|
39
|
+
* Updates an existing record in the specified table
|
|
40
|
+
*/
|
|
41
|
+
updateRecordAsync<TRequest, TResponse>(tableName: string, id: string, data: TRequest): Promise<IOperationResult<TResponse>>;
|
|
42
|
+
/**
|
|
43
|
+
* Deletes a record from the specified table
|
|
44
|
+
*/
|
|
45
|
+
deleteRecordAsync(tableName: string, id: string): Promise<IOperationResult<void>>;
|
|
46
|
+
/**
|
|
47
|
+
* Retrieves a single record from the specified table
|
|
48
|
+
*/
|
|
49
|
+
retrieveRecordAsync<TResponse>(tableName: string, id: string, options: string): Promise<IOperationResult<TResponse>>;
|
|
50
|
+
/**
|
|
51
|
+
* Retrieves multiple records from the specified table
|
|
52
|
+
*/
|
|
53
|
+
retrieveMultipleRecordsAsync<TResponse>(tableName: string, options: string): Promise<IOperationResult<TResponse[]>>;
|
|
54
|
+
/**
|
|
55
|
+
* Executes a custom operation on the data source
|
|
56
|
+
*/
|
|
57
|
+
executeAsync<TRequest, TResponse>(operation: IDataOperation<TRequest>): Promise<IOperationResult<TResponse>>;
|
|
58
|
+
/**
|
|
59
|
+
* Determines the appropriate HTTP method for a request
|
|
60
|
+
* @param requestUrl - The URL for the request
|
|
61
|
+
* @param dataSourceInfo - The data source information
|
|
62
|
+
* @param operation - The operation name
|
|
63
|
+
* @returns The HTTP method to use
|
|
64
|
+
*/
|
|
65
|
+
private _getHttpMethod;
|
|
66
|
+
/**
|
|
67
|
+
* Builds the operation body parameters
|
|
68
|
+
*/
|
|
69
|
+
private _buildOperationBody;
|
|
70
|
+
/**
|
|
71
|
+
* Builds operation body parameters from the operation and data source info
|
|
72
|
+
*/
|
|
73
|
+
private _buildOperationBodyParam;
|
|
74
|
+
/**
|
|
75
|
+
* Builds the operation header for a given data operation if required.
|
|
76
|
+
*
|
|
77
|
+
* @template TRequest - The type of the request payload for the data operation.
|
|
78
|
+
* @param dataOperationRequest - The data operation containing details about the connector operation.
|
|
79
|
+
* @param tableName - The name of the table associated with the data operation.
|
|
80
|
+
* @returns A promise that resolves to the operation header as a string if a header parameter is required,
|
|
81
|
+
* or `undefined` if no header parameter is needed.
|
|
82
|
+
*/
|
|
83
|
+
private _buildOperationHeader;
|
|
84
|
+
/**
|
|
85
|
+
* Builds the operation header parameters as a JSON string for a given data operation.
|
|
86
|
+
*
|
|
87
|
+
* @template TRequest - The type of the request object for the data operation.
|
|
88
|
+
* @param dataOperationRequest - The data operation containing connector operation details and parameters.
|
|
89
|
+
* @param tableName - The name of the table associated with the data operation.
|
|
90
|
+
* @returns A promise that resolves to a JSON string representing the header parameters,
|
|
91
|
+
* or `undefined` if no `header` parameters are available.
|
|
92
|
+
*/
|
|
93
|
+
private _buildOperationHeaderParam;
|
|
94
|
+
/**
|
|
95
|
+
* Constructs the request URL for table operations
|
|
96
|
+
* @param tableName - The name of the table
|
|
97
|
+
* @param connectionReference - The connection reference
|
|
98
|
+
* @param options - Optional URL parameters
|
|
99
|
+
* @param encodeOptions - Whether to encode the options
|
|
100
|
+
* @returns The constructed URL
|
|
101
|
+
*/
|
|
102
|
+
private _buildTableUrl;
|
|
103
|
+
/**
|
|
104
|
+
* Builds the operation URL
|
|
105
|
+
*/
|
|
106
|
+
private _buildOperationUrl;
|
|
107
|
+
/**
|
|
108
|
+
* Gets the connection references
|
|
109
|
+
*/
|
|
110
|
+
private _getConnectionReferencesAsync;
|
|
111
|
+
/**
|
|
112
|
+
* Gets the database references
|
|
113
|
+
*/
|
|
114
|
+
private _getDatabaseReferencesAsync;
|
|
115
|
+
/**
|
|
116
|
+
* Gets the metadata client instance
|
|
117
|
+
*/
|
|
118
|
+
private _getMetadataClient;
|
|
119
|
+
/**
|
|
120
|
+
* Gets the connection reference for a table
|
|
121
|
+
*/
|
|
122
|
+
private _getConnectionReference;
|
|
123
|
+
/**
|
|
124
|
+
* Gets both the data client and connection reference
|
|
125
|
+
*/
|
|
126
|
+
private _getClientsAndConnection;
|
|
127
|
+
/**
|
|
128
|
+
* Builds the URL for shared SQL operations
|
|
129
|
+
*/
|
|
130
|
+
private _buildSharedSqlOperationUrl;
|
|
131
|
+
/**
|
|
132
|
+
* Builds the URL for standard operations
|
|
133
|
+
*/
|
|
134
|
+
private _buildStandardOperationUrl;
|
|
135
|
+
/**
|
|
136
|
+
* Normalizes the parameter name by replacing hyphens with underscores and performs case-insensitive matching
|
|
137
|
+
*/
|
|
138
|
+
private _getNormalizedParamValue;
|
|
139
|
+
/**
|
|
140
|
+
* Processes operation parameters into path and query parameters
|
|
141
|
+
*/
|
|
142
|
+
private _processParameters;
|
|
143
|
+
/**
|
|
144
|
+
* Gets the operation configuration
|
|
145
|
+
*/
|
|
146
|
+
private _getOperationConfig;
|
|
147
|
+
/**
|
|
148
|
+
* Initializes the clients
|
|
149
|
+
*/
|
|
150
|
+
private _getReferences;
|
|
151
|
+
/**
|
|
152
|
+
* Validates constructor parameters
|
|
153
|
+
*/
|
|
154
|
+
private _validateConstructorParams;
|
|
155
|
+
/**
|
|
156
|
+
* Constructs the final URL
|
|
157
|
+
*/
|
|
158
|
+
private _constructUrl;
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=connectorDataOperationExecutor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectorDataOperationExecutor.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/data/core/data/executors/connectorDataOperationExecutor.ts"],"names":[],"mappings":"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"}
|