apiCallback method

  1. @override
dynamic apiCallback(
  1. String apiName,
  2. dynamic arguments
)
override

Implementation

@override
dynamic apiCallback(String apiName, dynamic arguments) {
  AffiseApiMethod? api = apiMethodFrom(apiName);
  if (api == null) return null;
  Map<Object?, Object?>? map = tryCast<Map<Object?, Object?>>(arguments);
  String? uuid = map?[_UUID]?.toString();
  String? tag = map?[_TAG]?.toString();
  dynamic data = map?[apiName];

  dynamic result;

  if (uuid == null || uuid.isEmpty) {
    dynamic callback = _callbacks[api];
    result = handleCallback(api, callback, data, null);
  } else if (tag != null && tag.isNotEmpty) {
    dynamic callback = _callbacksGroup[uuid]?[tag];
    result = handleCallback(api, callback, data, tag);
    _callbacksGroup.remove(uuid);
  } else {
    dynamic callback = _callbacksOnce[uuid];
    result = handleCallback(api, callback, data, null);
    _callbacksOnce.remove(uuid);
  }

  return result;
}