createProject method
- String name
override
Implementation
@override
Future<Either<Failure, Project>> createProject(String name) async {
try {
if (await isConnected()) {
final response = await remoteDataSource.createProjects(name);
await localDataSource.saveProject(response);
return Right(response.toEntity());
} else {
final tempProject = ProjectModelResponse(
id: const Uuid().v4(),
name: name,
commentCount: 0,
order: 0,
color: '',
isShared: false,
isFavorite: false,
isInboxProject: false,
isTeamInbox: false,
viewStyle: '',
url: '',
);
await localDataSource.saveProject(tempProject);
await syncQueue.addOperation(SyncOperation(
type: 'create',
id: tempProject.id,
data: tempProject.toJson(),
entityType: 'project',
));
return Right(tempProject.toEntity());
}
} catch (e) {
return Left(ServerFailure(message: e.toString()));
}
}