CafResponse.fromEvent constructor

CafResponse.fromEvent(
  1. Map event
)

Implementation

factory CafResponse.fromEvent(Map<dynamic, dynamic> event) {
  final name = event['eventName'] as String;
  final response = event['response'];

  switch (name) {
    case CafSdkEventName.cancelled:
      return const CafResponse(cancelled: true);

    case CafSdkEventName.loading:
      return const CafResponse(loading: true);

    case CafSdkEventName.loaded:
      return const CafResponse(loaded: true);

    case CafSdkEventName.error:
      final r = response as Map;
      return CafResponse(
        error: CafErrorResponse(
          type: CafErrorType.fromString(r['type'] as String),
          description: r['description'] as String?,
        ),
      );

    case CafSdkEventName.success:
      final r = response as Map;
      return CafResponse(
        success: CafSuccessResponse(
          moduleName: CafModuleType.fromModuleName(r['moduleName'] as String?),
          signedResponse: r['signedResponse'] as String?,
        ),
      );

    case CafSdkEventName.failure:
      final r = response as Map;
      return CafResponse(
        failure: CafFailureResponse(
          response: r['response'] as String?,
          type: CafFailureType.fromString(r['type'] as String),
          description: r['description'] as String?,
        ),
      );

    case CafSdkEventName.log:
      final r = response as Map;
      return CafResponse(
        log: CafLog(
          level: CafLogLevel.fromString(r['level'] as String),
          message: r['message'] as String,
        ),
      );

    default:
      return const CafResponse();
  }
}