callHandler static method

Future callHandler({
  1. required MethodCall call,
  2. required IStoneHandler iStoneHandler,
  3. IStoneTechHandler? stoneTechHandler,
  4. required dynamic onTransaction(
    1. StoneTransactionModel
    ),
})

Implementation

static Future<dynamic> callHandler({required MethodCall call, required IStoneHandler iStoneHandler, IStoneTechHandler? stoneTechHandler, required Function(StoneTransactionModel) onTransaction}) async {
  switch (call.method.handler) {
    case PaymentTypeHandler.onTransactionSuccess:
      {
        iStoneHandler.onTransactionSuccess();
        _stSmartHandler(message: call.arguments, iStoneTechHandler: stoneTechHandler);
      }
      break;
    case PaymentTypeHandler.onError:
      {
        iStoneHandler.onError(call.arguments);
        _stSmartHandler(message: call.arguments, iStoneTechHandler: stoneTechHandler);
      }
      break;
    case PaymentTypeHandler.onMessage:
      {
        iStoneHandler.onMessage(call.arguments);
        _stSmartHandler(message: call.arguments, iStoneTechHandler: stoneTechHandler);
      }
      break;
    case PaymentTypeHandler.onFinishedResponse:
      {
        iStoneHandler.onFinishedResponse(call.arguments);
        final model = _getTransactionModel(call.arguments);
        if (model != null) {
          onTransaction(model);
        }
        _stSmartHandler(message: call.arguments, iStoneTechHandler: stoneTechHandler);
      }
      break;
    case PaymentTypeHandler.onChanged:
      {
        iStoneHandler.onChanged(call.arguments);
        _stSmartHandler(message: call.arguments, iStoneTechHandler: stoneTechHandler);
      }
      break;
    case PaymentTypeHandler.onLoading:
      {
        iStoneHandler.onLoading(call.arguments);
        _stSmartHandler(message: call.arguments, iStoneTechHandler: stoneTechHandler);
      }
      break;
    case PaymentTypeHandler.onAuthProgress:
      {
        iStoneHandler.onAuthProgress(call.arguments);
        _stSmartHandler(message: call.arguments, iStoneTechHandler: stoneTechHandler);
      }
      break;
    default:
      throw "METHOD NOT IMPLEMENTED";
  }
  return true;
}