send method

  1. @override
Future<KataCxResponse> send(
  1. KataCxRequest request
)
override

Performs request and waits for the whole body.

Implementation

@override
Future<KataCxResponse> send(KataCxRequest request) async {
  requests.add(request);
  if (responseDelay > Duration.zero) {
    await Future<void>.delayed(responseDelay);
  }

  if (request.url.endsWith('/settings')) {
    return KataCxResponse(
      statusCode: settingsStatus,
      body: settingsBody,
    );
  }
  if (request.url.endsWith('/csat')) {
    return KataCxResponse(
      statusCode: csatAccepted ? 200 : 422,
      body: '',
    );
  }
  if (request.url.endsWith('/chat')) {
    final index = _chatCalls.clamp(0, chatReplies.length - 1);
    _chatCalls++;
    return KataCxResponse(
      statusCode: chatStatus,
      body: jsonEncode(chatReplies[index]),
    );
  }
  return const KataCxResponse(statusCode: 404, body: '');
}