feat(http): implements doublelinked list for middlewares

This commit is contained in:
2022-06-24 10:47:28 +02:00
parent 58d3b70bee
commit 14cb3485e4
16 changed files with 720 additions and 267 deletions
@@ -16,25 +16,33 @@
// along with this program. If not, see <https://www.gnu.org/licenses/>.
import 'package:http/http.dart';
import 'package:wyatt_http_client/src/models/middleware_context.dart';
import 'package:wyatt_http_client/src/models/unfreezed_request.dart';
import 'package:wyatt_http_client/src/utils/utils.dart';
class MiddlewareRequest {
UnfreezedRequest unfreezedRequest;
Request httpRequest;
MiddlewareContext context;
MiddlewareRequest({
required this.unfreezedRequest,
required this.httpRequest,
});
required this.context,
}) {
context = context.copyWith(originalRequest: this);
}
MiddlewareRequest copyWith({
UnfreezedRequest? unfreezedRequest,
Request? httpRequest,
MiddlewareContext? context,
}) {
return MiddlewareRequest(
unfreezedRequest: unfreezedRequest ?? this.unfreezedRequest,
httpRequest: httpRequest ?? this.httpRequest,
context: context ?? this.context,
);
}
@@ -85,5 +93,5 @@ class MiddlewareRequest {
@override
String toString() => 'MiddlewareRequest(unfreezedRequest: '
'$unfreezedRequest, httpRequest: $httpRequest)';
'$unfreezedRequest, httpRequest: $httpRequest, context: $context)';
}