Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | 1x 2x 2x 2x 2x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 2x 1x 10x 9x 1x | import { Handler } from "aws-lambda";
import * as os from "libs/opensearch-lib";
import { opensearch } from "shared-types";
 
export const handler: Handler = async (event, __, callback) => {
  const response = {
    statusCode: 200,
  };
  let errorResponse = null;
  try {
    await manageIndexResource({
      osDomain: event.osDomain,
      index: `${event.indexNamespace}main`,
      update: {
        approvedEffectiveDate: { type: "date" },
        changedDate: { type: "date" },
        finalDispositionDate: { type: "date" },
        proposedDate: { type: "date" },
        statusDate: { type: "date" },
        submissionDate: { type: "date" },
      },
    });
    await manageIndexResource({
      osDomain: event.osDomain,
      index: `${event.indexNamespace}changelog`,
    });
    await manageIndexResource({
      osDomain: event.osDomain,
      index: `${event.indexNamespace}types`,
    });
    await manageIndexResource({
      osDomain: event.osDomain,
      index: `${event.indexNamespace}subtypes`,
    });
    await manageIndexResource({
      osDomain: event.osDomain,
      index: `${event.indexNamespace}cpocs`,
    });
    await manageIndexResource({
      osDomain: event.osDomain,
      index: `${event.indexNamespace}insights`,
    });
    await manageIndexResource({
      osDomain: event.osDomain,
      index: `${event.indexNamespace}legacyinsights`,
    });
    await manageIndexResource({
      osDomain: event.osDomain,
      index: `${event.indexNamespace}users`,
    });
    await manageIndexResource({
      osDomain: event.osDomain,
      index: `${event.indexNamespace}roles`,
    });
  } catch (error: any) {
    response.statusCode = 500;
    errorResponse = error;
  } finally {
    callback(errorResponse, response);
  }
};
 
const manageIndexResource = async (resource: {
  osDomain: string;
  index: opensearch.Index;
  update?: object;
}) => {
  await os.createIndex(resource.osDomain, resource.index);
  if (!resource.update) return;
  await os.updateFieldMapping(resource.osDomain, resource.index, resource.update);
};
  |