applyRequestBreakpointEdit method

void applyRequestBreakpointEdit({
  1. required int requestId,
  2. required InfospectBreakpointEdit edit,
})

Applies a request breakpoint edit: keeps original + edited, updates live request.

Implementation

void applyRequestBreakpointEdit({
  required int requestId,
  required InfospectBreakpointEdit edit,
}) {
  final int index = _selectCall(requestId);
  if (index == -1) return;

  final selected = _infospect.networkCallsSubject.value[index];
  final edited = edit.edited;
  final request = selected.request?.copyWith(
        headers: edited.headers,
        queryParameters: edited.queryParameters,
        body: edited.body,
        size: utf8.encode(edited.body).length,
      ) ??
      InfospectNetworkRequest(
        headers: edited.headers,
        queryParameters: edited.queryParameters,
        body: edited.body,
        size: utf8.encode(edited.body).length,
      );

  _infospect.networkCallsSubject.value[index] = selected.copyWith(
    request: request,
    method: edited.method.isNotEmpty ? edited.method : selected.method,
    endpoint:
        edited.endpoint.isNotEmpty ? edited.endpoint : selected.endpoint,
    uri: edited.uri.isNotEmpty ? edited.uri : selected.uri,
    hadRequestBreakpoint: true,
    requestEditedAtBreakpoint: edit.hasChanges,
    requestBreakpointEdit: edit,
  );
  _infospect.networkCallsSubject
      .add([..._infospect.networkCallsSubject.value]);
}