fluffychat/lib/pangea/activity_suggestions/activity_search_enum.dart
Kelrap 7ca87a9179
Use status codes to decide activity search behavior (#3718)
* Add status codes to activity search

* Fix strange request error handling

* Make search react appropriately to 400+ status codes

* Small readability fixes

* Use enum for activity search status

* Fix switched logic in hideCards
2025-08-14 12:28:02 -04:00

52 lines
1.2 KiB
Dart

import 'package:fluffychat/l10n/l10n.dart';
/// 200: All activities successfully retrieved
/// 202: Waiting for activities to load
/// 504: Timeout
/// Other: Error
enum ActivitySearchEnum {
complete,
waiting,
timeout,
error,
}
extension ActivitySearchExtension on ActivitySearchEnum {
ActivitySearchEnum fromCode(int statusCode) {
switch (statusCode) {
case 200:
return ActivitySearchEnum.complete;
case 202:
return ActivitySearchEnum.waiting;
case 504:
return ActivitySearchEnum.timeout;
default:
return ActivitySearchEnum.error;
}
}
bool get hideCards {
switch (this) {
case ActivitySearchEnum.complete:
case ActivitySearchEnum.waiting:
return false;
case ActivitySearchEnum.timeout:
case ActivitySearchEnum.error:
return true;
}
}
String message(L10n l10n) {
switch (this) {
case ActivitySearchEnum.waiting:
l10n.activitySuggestionTimeoutMessage;
case ActivitySearchEnum.timeout:
return l10n.generatingNewActivities;
case ActivitySearchEnum.error:
return l10n.errorFetchingActivitiesMessage;
default:
return '';
}
return '';
}
}