Reputation: 17
I would like to sum up the code below to make it less and more beautiful.
I have 5 models (User
, Group
, Event
, Member
, Appearance
), three shown below.
I’d like to simplify the code.
String getId(uri) {
String pathSegment;
if (uri.pathSegments.length >= 2) {
pathSegment = uri.pathSegments[1];
} else {
return null;
}
switch (resource) {
case 'users':
for (User user in models[resource]) {
if (user.id == pathSegment) {
return pathSegment;
} else {
return null;
}
}
break;
case 'groups':
for (Group group in models[resource]) {
if (group.id == pathSegment) {
return pathSegment;
} else {
return null;
}
}
break;
case 'events':
for (Event event in models[resource]) {
if (event.id == pathSegment) {
return pathSegment;
} else {
return null;
}
}
break;
default:
break;
}
return null;
}
Upvotes: 0
Views: 87
Reputation: 29783
If your User
, Group
, and Event
have a common id
, then You can simplify your code by using dynamic
type. See related documentation.
String getId(uri) {
String pathSegment;
if (uri.pathSegments.length >= 2) {
pathSegment = uri.pathSegments[1];
} else {
return null;
}
return _getIdFromItems(models[resource], pathSegment);
}
String _getIdFromItems(List<dynamic> items, String pathSegment) {
for (dynamic item in items) {
if (item.id == pathSegment) {
return pathSegment;
} else {
return null;
}
}
return null;
}
Upvotes: 1