Feature/Fix-Invalid-TimeProgress-Name (#3)
Throw Exception when creating time progress with empty or null name. Handle Exception when user creates new time progress or changes name. Signed-off-by Andreas Fahrecker <AndreasFahrecker@gmail.com>
This commit is contained in:
committed by
GitHub
parent
f43edc1ea7
commit
7cbd2eff40
7
lib/models/app_exceptions.dart
Normal file
7
lib/models/app_exceptions.dart
Normal file
@ -0,0 +1,7 @@
|
||||
class TimeProgressInvalidNameException implements Exception {
|
||||
final invalidName;
|
||||
|
||||
TimeProgressInvalidNameException(this.invalidName);
|
||||
|
||||
String errMsg() => "The name of a TimeProgress can't be: $invalidName";
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
import 'package:meta/meta.dart';
|
||||
import 'package:time_progress_tracker/models/app_exceptions.dart';
|
||||
import 'package:time_progress_tracker/persistence/time_progress_entity.dart';
|
||||
import 'package:time_progress_tracker/uuid.dart';
|
||||
|
||||
@ -10,11 +11,15 @@ class TimeProgress {
|
||||
final DateTime endTime;
|
||||
|
||||
TimeProgress(this.name, this.startTime, this.endTime, {String id})
|
||||
: id = id ?? Uuid().generateV4();
|
||||
: id = id ?? Uuid().generateV4() {
|
||||
if (this.name == null || this.name == "") {
|
||||
throw new TimeProgressInvalidNameException(this.name);
|
||||
}
|
||||
}
|
||||
|
||||
factory TimeProgress.initialDefault() {
|
||||
int thisYear = DateTime.now().year;
|
||||
return TimeProgress("", DateTime(thisYear - 1), DateTime(thisYear + 1));
|
||||
return TimeProgress("Initial Name", DateTime(thisYear - 1), DateTime(thisYear + 1));
|
||||
}
|
||||
|
||||
TimeProgress copyWith(
|
||||
|
Reference in New Issue
Block a user