How to use the @phenyl/utils.switchByRequestMethod function in @phenyl/utils

To help you get started, we’ve selected a few @phenyl/utils examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github phenyl / phenyl / modules / standards / src / foreign-query-wrapper.ts View on Github external
async wrapExecution(
    reqData: GeneralUserEntityRequestData,
    session: Session,
    execution: RestApiExecution
  ): Promise {
    const resData = await execution(reqData, session);

    return await switchByRequestMethod(reqData, {
      find: async (query: ForeignWhereQuery) => {
        if (resData.type !== "find" || query.foreign == null) return resData;
        const foreignEntitiesById = await this.getForeignEntities(
          resData.payload.entities,
          query.foreign
        );
        const { $set, $docPath } = $bind();
        return update(
          resData,
          // @ts-ignore: has no foreign key
          $set($docPath("payload", "foreign", "entities"), foreignEntitiesById)
        );
      },

      findOne: async (query: ForeignWhereQuery) => {
        if (resData.type !== "findOne" || query.foreign == null) return resData;
github phenyl / phenyl / modules / standards / src / foreign-query-wrapper.ts View on Github external
async validation(
    reqData: GeneralRequestData,
  ): Promise {
    // eslint-disable-line no-unused-vars
    return switchByRequestMethod(reqData, {
      async find(query: ForeignWhereQuery) {
        assertValidForeignQuery(query.foreign, "ForeignWhereQuery");
      },
      async findOne(query: ForeignWhereQuery) {
        assertValidForeignQuery(query.foreign, "ForeignWhereQuery");
      },
      async get(query: ForeignIdQuery) {
        assertValidForeignQuery(query.foreign, "ForeignIdQuery");
      },
      async getByIds(query: ForeignIdsQuery) {
        assertValidForeignQuery(query.foreign, "ForeignIdsQuery");
      },
      async handleDefault() {
        // eslint-disable-line no-unused-vars
        return;
      }