57 lines
1.4 KiB
Dart
57 lines
1.4 KiB
Dart
import 'dart:collection';
|
|
|
|
import 'package:fpdart/fpdart.dart';
|
|
import '../../data/models/device_add_path_point_model.dart';
|
|
import '../../domain/repositories/route_planning_repository.dart';
|
|
|
|
class RoutePlanningUseCase {
|
|
final RoutePlanningRepository repository;
|
|
|
|
RoutePlanningUseCase(this.repository);
|
|
|
|
Future<Either<RoutePlanningFailure, Unit>> startRoutePlanning(
|
|
Queue<DeviceAddPathPointModel> locationQueue,
|
|
) async {
|
|
try {
|
|
await repository.startRoutePlanning(locationQueue);
|
|
return right(unit);
|
|
} catch (e) {
|
|
return left(RoutePlanningFailure(message: e.toString()));
|
|
}
|
|
}
|
|
|
|
Future<Either<RoutePlanningFailure, Unit>> pauseRPWork() async {
|
|
try {
|
|
await repository.pauseRPWork();
|
|
return right(unit);
|
|
} catch (e) {
|
|
return left(RoutePlanningFailure(message: e.toString()));
|
|
}
|
|
}
|
|
|
|
Future<Either<RoutePlanningFailure, Unit>> resumeRPWork() async {
|
|
try {
|
|
await repository.resumeRPWork();
|
|
return right(unit);
|
|
} catch (e) {
|
|
return left(RoutePlanningFailure(message: e.toString()));
|
|
}
|
|
}
|
|
|
|
Future<Either<RoutePlanningFailure, Unit>> stopRoutePlanning() async {
|
|
try {
|
|
await repository.stopRoutePlanning();
|
|
return right(unit);
|
|
} catch (e) {
|
|
return left(RoutePlanningFailure(message: e.toString()));
|
|
}
|
|
}
|
|
}
|
|
|
|
// Failure 类型
|
|
class RoutePlanningFailure {
|
|
final String? message;
|
|
|
|
RoutePlanningFailure({this.message});
|
|
}
|