Skip to content

Commit

Permalink
feat: some optimization on error message and response
Browse files Browse the repository at this point in the history
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
  • Loading branch information
SuZhou-Joe committed Sep 5, 2023
1 parent 5533bd5 commit e353a36
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 29 deletions.
34 changes: 17 additions & 17 deletions src/core/server/saved_objects/service/saved_objects_client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -465,35 +465,35 @@ export class SavedObjectsClient {
return await this._repository.addToWorkspaces(objects, workspaces, options);
};

/**
* Bulk Updates multiple SavedObject at once
*
* @param objects
*/
async bulkUpdate<T = unknown>(
objects: Array<SavedObjectsBulkUpdateObject<T>>,
options?: SavedObjectsBulkUpdateOptions
): Promise<SavedObjectsBulkUpdateResponse<T>> {
return await this._repository.bulkUpdate(objects, options);
}

/**
* Different DB may have different query DSL for given params
*/
async getPermissionQueryDSL(
getPermissionQueryDSL = async (
props: Parameters<SavedObjectsRepository['getPermissionQueryDSL']>[0]
) {
) => {
return await this._repository.getPermissionQueryDSL(props);
}
};

/**
* Different DB may have different query to find granted objects,
* provide a placeholder here for other query implementation
*/
async processFindOptions(props: {
processFindOptions = async (props: {
options: SavedObjectsFindOptions;
principals: Principals;
}): Promise<SavedObjectsFindOptions> {
}): Promise<SavedObjectsFindOptions> => {
return await this._repository.processFindOptions(props);
};

/**
* Bulk Updates multiple SavedObject at once
*
* @param objects
*/
async bulkUpdate<T = unknown>(
objects: Array<SavedObjectsBulkUpdateObject<T>>,
options?: SavedObjectsBulkUpdateOptions
): Promise<SavedObjectsBulkUpdateResponse<T>> {
return await this._repository.bulkUpdate(objects, options);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
*/

import { i18n } from '@osd/i18n';
import Boom from '@hapi/boom';
import { Observable } from 'rxjs';
import { first } from 'rxjs/operators';

Expand All @@ -29,23 +28,29 @@ import {
SavedObjectsPermissionControlContract,
WORKSPACE_TYPE,
WorkspacePermissionMode,
SavedObjectsErrorHelpers,
} from '../../../../core/server';
import { ConfigSchema } from '../../config';
import { WorkspaceFindOptions } from '../types';

// Can't throw unauthorized for now, the page will be refreshed if unauthorized
const generateWorkspacePermissionError = () =>
Boom.illegal(
i18n.translate('workspace.permission.invalidate', {
defaultMessage: 'Invalid workspace permission',
})
const generateWorkspacePermissionError = () => {
SavedObjectsErrorHelpers.decorateForbiddenError(
new Error(
i18n.translate('workspace.permission.invalidate', {
defaultMessage: 'Invalid workspace permission',
})
)
);
};

const generateSavedObjectsPermissionError = () =>
Boom.illegal(
i18n.translate('saved_objects.permission.invalidate', {
defaultMessage: 'Invalid saved objects permission',
})
SavedObjectsErrorHelpers.decorateForbiddenError(
new Error(
i18n.translate('saved_objects.permission.invalidate', {
defaultMessage: 'Invalid saved objects permission',
})
)
);

export class WorkspaceSavedObjectsClientWrapper {
Expand Down Expand Up @@ -347,8 +352,6 @@ export class WorkspaceSavedObjectsClientWrapper {
principals,
});
return await wrapperOptions.client.find<T>(processedOptions);

return await wrapperOptions.client.find<T>(options);
};

const addToWorkspacesWithPermissionControl = async (
Expand Down

0 comments on commit e353a36

Please sign in to comment.