handler method

  1. @override
FutureOr<Response> handler()
override

Must be implemented

Implementation

@override
FutureOr<Response> handler() => checkApiSecret(request).fold(
      (errorResponse) => errorResponse,
      (_) async {
        final action =
            HasuraAction.fromJson(jsonDecode(await request.readAsString()));

        final orderUmbrella = OrderUmbrella.fromJson(action.input);

        if (endpoint == 'order_recalc') {
          final failureOrResult = await repository.recalcOrder(orderUmbrella);

          return failureOrResult.fold(
            (failure) {
              print('OrderUmbrellaController (order_recalc) error: $failure');
              return Response.internalServerError(
                body: jsonEncode({'message': '$failure'}),
              );
            },
            (result) {
              return Response.ok(
                jsonEncode(result),
                headers: {'Content-Type': 'application/json'},
              );
            },
          );
        } else if (endpoint == 'order_edit') {
          final failureOrResult = await repository
              .editOrderAndRewritePositionHasura(orderUmbrella);

          return failureOrResult.fold(
            (failure) {
              print('OrderUmbrellaController (order_edit) error: $failure');
              return Response.internalServerError(
                body: jsonEncode({'message': '$failure'}),
              );
            },
            (result) {
              return Response.ok(
                jsonEncode(result),
                headers: {'Content-Type': 'application/json'},
              );
            },
          );
        } else {
          return Response.notFound('Not found endpoint in Proxy Controller');
        }
      },
    );