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
@@ -0,0 +1,48 @@
// ignore_for_file: public_member_api_docs, sort_constructors_first
// Copyright (C) 2022 WYATT GROUP
// Please see the AUTHORS file for details.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
import 'package:wyatt_http_client/src/models/middleware_request.dart';
import 'package:wyatt_http_client/src/models/middleware_response.dart';
import 'package:wyatt_http_client/src/pipeline.dart';
class MiddlewareContext {
Pipeline pipeline;
MiddlewareRequest? originalRequest;
MiddlewareResponse? originalResponse;
MiddlewareContext({
required this.pipeline,
this.originalRequest,
this.originalResponse,
});
MiddlewareContext copyWith({
Pipeline? pipeline,
MiddlewareRequest? originalRequest,
MiddlewareResponse? originalResponse,
}) {
return MiddlewareContext(
pipeline: pipeline ?? this.pipeline,
originalRequest: originalRequest ?? this.originalRequest,
originalResponse: originalResponse ?? this.originalResponse,
);
}
@override
String toString() => 'MiddlewareContext(pipeline: $pipeline, '
'originalRequest: $originalRequest, originalResponse: $originalResponse)';
}