network manager and di added

This commit is contained in:
amirrezaghabeli
2025-08-05 09:45:24 +03:30
parent c363e104a7
commit 09e21a1cc7
11 changed files with 409 additions and 84 deletions
+39
View File
@@ -0,0 +1,39 @@
import 'package:provider/provider.dart';
import 'package:provider/single_child_widget.dart';
import '../../data/repositories/auth_repository.dart';
import '../../data/services/auth_service.dart';
import '../../data/services/network_manager.dart';
import '../../view_models/auth_view_model.dart';
List<SingleChildWidget> get providersRemote {
return [...cores, ...apiClients, ...repositories, ...viewModels, ...others];
}
List<SingleChildWidget> get cores {
return [Provider(create: (context) => NetworkManager())];
}
List<SingleChildWidget> get apiClients {
return [
Provider(create: (context) => AuthService(networkManager: context.read())),
];
}
List<SingleChildWidget> get repositories {
return [
Provider(create: (context) => AuthRepository(authService: context.read())),
];
}
List<SingleChildWidget> get viewModels {
return [
Provider(
create: (context) => AuthViewModel(authRepository: context.read()),
),
];
}
List<SingleChildWidget> get others {
return [];
}
-70
View File
@@ -1,70 +0,0 @@
typedef OnError<E> = void Function(E error);
abstract class Either<E, S> {
const Either();
E? getError();
S? getSuccess();
bool isError();
bool isSuccess();
void when({
required OnError<E> error,
required void Function(S success) success,
});
}
class Success<E, S> extends Either<E, S> {
final S _success;
const Success(this._success);
@override
E? getError() => null;
@override
S? getSuccess() => _success;
@override
bool isError() => false;
@override
bool isSuccess() => true;
@override
void when({
required OnError<E> error,
required void Function(S success) success,
}) {
success(_success);
}
}
class Error<E, S> extends Either<E, S> {
final E _error;
const Error(this._error);
@override
E? getError() => _error;
@override
S? getSuccess() => null;
@override
bool isError() => true;
@override
bool isSuccess() => false;
@override
void when({
required OnError<E> error,
required void Function(S success) success,
}) {
error(_error);
}
}