fromChain static method

Danger<FailureResponse, CitrusResponseExceptionA> fromChain(
  1. Chain chain
)
override

Implementation

static Danger<FailureResponse, CitrusResponseExceptionA> fromChain(Chain chain) {

    final log = Log(classLocation: FailureResponse, functionLocation: 'fromChain');

    final incidentResult = chain.getOptionAsSingleString(JSON_KEY_INCIDENT);
    log.add(incidentResult);
    if (incidentResult is! Success<String, ChainExceptionIJK>) return Failure(CitrusResponseExceptionA(), log);

    final descriptionResult = chain.getOptionAsMultipleString(JSON_KEY_DESCRIPTION);
    log.add(descriptionResult);
    if (descriptionResult is! Success<List<String>, ChainExceptionI>) return Failure(CitrusResponseExceptionA(), log);

    final logResult = chain.getOptionAsSingleString(JSON_KEY_LOG);
    log.add(logResult);
    if (logResult is! Success<String, ChainExceptionIJK>) return Failure(CitrusResponseExceptionA(), log);

    final result = FailureResponse(
        incidentResult.wrapped,
        descriptionResult.wrapped,
        logResult.wrapped,
    );

    return Success(result, log);

}