export function vizRouter()

in dashboards-notebooks/server/routes/vizRouter.ts [10:44]


export function vizRouter(router: IRouter) {
  // Fetches available saved visualizations for current user
  router.get(
    {
      path: `${API_PREFIX}/visualizations`,
      validate: {},
    },
    async (context, request, response): Promise<IOpenSearchDashboardsResponse<any | ResponseError>> => {
      const params: RequestParams.Search = {
        index: '.kibana',
        size: FETCH_SIZE,
        q: 'type:visualization',
      };
      try {
        const opensearchClientResponse = await context.core.opensearch.legacy.client.callAsCurrentUser(
          'search',
          params
        );
        const savedVisualizations = opensearchClientResponse.hits.hits;
        const vizResponse = savedVisualizations.map((vizDocument) => ({
          label: vizDocument._source.visualization.title,
          key: vizDocument._id.split(':').pop(),
        }));
        return response.ok({
          body: { savedVisualizations: vizResponse },
        });
      } catch (error) {
        return response.custom({
          statusCode: error.statusCode || 500,
          body: error.message,
        });
      }
    }
  );
}