createTask method
- TaskDataRequest taskData
override
Implementation
@override
Future<Either<Failure, TaskEntity>> createTask(
TaskDataRequest taskData) async {
try {
if (await isConnected()) {
final taskModel = await remoteDataSource.createTask(taskData);
await localDataSource.saveTask(taskModel);
return Right(taskModel.toEntity());
} else {
final tempTask = TaskModelResponse(
id: const Uuid().v4(),
projectId: taskData.projectId ?? '',
description: '',
creatorId: '',
createdAt: '',
labels: [],
url: '',
commentCount: 0,
isCompleted: false,
content: taskData.content ?? '',
order: 1,
priority: 1,
);
await localDataSource.saveTask(tempTask);
await syncQueue.addOperation(SyncOperation(
type: 'create',
id: tempTask.id,
data: taskData.toJson(),
entityType: 'task',
));
return Right(tempTask.toEntity());
}
} catch (e) {
return const Left(ServerFailure(message: 'Failed to create task'));
}
}