claude refactorings, flutter best practices, platform dependent changes, general cleanup

This commit is contained in:
2026-05-06 11:58:50 +02:00
parent 4b1d4379a0
commit 4e1272aba9
281 changed files with 1948 additions and 1041 deletions
@@ -0,0 +1,24 @@
import '../../../infrastructure/utility_widgets/loadable_hydrated_bloc/loadable_hydrated_bloc.dart';
import '../../../infrastructure/utility_widgets/loadable_hydrated_bloc/loadable_hydrated_bloc_event.dart';
import '../repository/marianum_message_repository.dart';
import 'marianum_message_event.dart';
import 'marianum_message_state.dart';
class MarianumMessageBloc extends LoadableHydratedBloc<MarianumMessageEvent, MarianumMessageState, MarianumMessageRepository> {
@override
Future<void> gatherData() async {
var messages = await repo.getMessages();
add(DataGathered((state) => state.copyWith(messageList: messages)));
}
@override
MarianumMessageRepository repository() => MarianumMessageRepository();
@override
MarianumMessageState fromNothing() => const MarianumMessageState(messageList: MarianumMessageList(base: '', messages: []));
@override
MarianumMessageState fromStorage(Map<String, dynamic> json) => MarianumMessageState.fromJson(json);
@override
Map<String, dynamic>? toStorage(MarianumMessageState state) => state.toJson();
}
@@ -0,0 +1,5 @@
import '../../../infrastructure/utility_widgets/loadable_hydrated_bloc/loadable_hydrated_bloc_event.dart';
import 'marianum_message_state.dart';
sealed class MarianumMessageEvent extends LoadableHydratedBlocEvent<MarianumMessageState> {}
class MessageEvent extends MarianumMessageEvent {}
@@ -0,0 +1,41 @@
import 'package:freezed_annotation/freezed_annotation.dart';
part 'marianum_message_state.freezed.dart';
part 'marianum_message_state.g.dart';
@freezed
abstract class MarianumMessageState with _$MarianumMessageState {
const factory MarianumMessageState({
required MarianumMessageList messageList,
}) = _MarianumMessageState;
factory MarianumMessageState.fromJson(Map<String, dynamic> json) => _$MarianumMessageStateFromJson(json);
}
@freezed
abstract class MarianumMessageList with _$MarianumMessageList {
const factory MarianumMessageList({
required String base,
required List<MarianumMessage> messages,
}) = _MarianumMessageList;
factory MarianumMessageList.fromJson(Map<String, dynamic> json) => _$MarianumMessageListFromJson(json);
}
@freezed
abstract class MarianumMessage with _$MarianumMessage {
const factory MarianumMessage({
required String name,
required String date,
required String url,
}) = _MarianumMessage;
factory MarianumMessage.fromJson(Map<String, dynamic> json) => _$MarianumMessageFromJson(json);
}
enum GradeAveragesGradingSystem {
highSchool,
middleSchool,
}
@@ -0,0 +1,836 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
// coverage:ignore-file
// ignore_for_file: type=lint
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark
part of 'marianum_message_state.dart';
// **************************************************************************
// FreezedGenerator
// **************************************************************************
// dart format off
T _$identity<T>(T value) => value;
/// @nodoc
mixin _$MarianumMessageState {
MarianumMessageList get messageList;
/// Create a copy of MarianumMessageState
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$MarianumMessageStateCopyWith<MarianumMessageState> get copyWith => _$MarianumMessageStateCopyWithImpl<MarianumMessageState>(this as MarianumMessageState, _$identity);
/// Serializes this MarianumMessageState to a JSON map.
Map<String, dynamic> toJson();
@override
bool operator ==(Object other) {
return identical(this, other) || (other.runtimeType == runtimeType&&other is MarianumMessageState&&(identical(other.messageList, messageList) || other.messageList == messageList));
}
@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType,messageList);
@override
String toString() {
return 'MarianumMessageState(messageList: $messageList)';
}
}
/// @nodoc
abstract mixin class $MarianumMessageStateCopyWith<$Res> {
factory $MarianumMessageStateCopyWith(MarianumMessageState value, $Res Function(MarianumMessageState) _then) = _$MarianumMessageStateCopyWithImpl;
@useResult
$Res call({
MarianumMessageList messageList
});
$MarianumMessageListCopyWith<$Res> get messageList;
}
/// @nodoc
class _$MarianumMessageStateCopyWithImpl<$Res>
implements $MarianumMessageStateCopyWith<$Res> {
_$MarianumMessageStateCopyWithImpl(this._self, this._then);
final MarianumMessageState _self;
final $Res Function(MarianumMessageState) _then;
/// Create a copy of MarianumMessageState
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @override $Res call({Object? messageList = null,}) {
return _then(_self.copyWith(
messageList: null == messageList ? _self.messageList : messageList // ignore: cast_nullable_to_non_nullable
as MarianumMessageList,
));
}
/// Create a copy of MarianumMessageState
/// with the given fields replaced by the non-null parameter values.
@override
@pragma('vm:prefer-inline')
$MarianumMessageListCopyWith<$Res> get messageList {
return $MarianumMessageListCopyWith<$Res>(_self.messageList, (value) {
return _then(_self.copyWith(messageList: value));
});
}
}
/// Adds pattern-matching-related methods to [MarianumMessageState].
extension MarianumMessageStatePatterns on MarianumMessageState {
/// A variant of `map` that fallback to returning `orElse`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
/// case final Subclass value:
/// return ...;
/// case _:
/// return orElse();
/// }
/// ```
@optionalTypeArgs TResult maybeMap<TResult extends Object?>(TResult Function( _MarianumMessageState value)? $default,{required TResult orElse(),}){
final _that = this;
switch (_that) {
case _MarianumMessageState() when $default != null:
return $default(_that);case _:
return orElse();
}
}
/// A `switch`-like method, using callbacks.
///
/// Callbacks receives the raw object, upcasted.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
/// case final Subclass value:
/// return ...;
/// case final Subclass2 value:
/// return ...;
/// }
/// ```
@optionalTypeArgs TResult map<TResult extends Object?>(TResult Function( _MarianumMessageState value) $default,){
final _that = this;
switch (_that) {
case _MarianumMessageState():
return $default(_that);case _:
throw StateError('Unexpected subclass');
}
}
/// A variant of `map` that fallback to returning `null`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
/// case final Subclass value:
/// return ...;
/// case _:
/// return null;
/// }
/// ```
@optionalTypeArgs TResult? mapOrNull<TResult extends Object?>(TResult? Function( _MarianumMessageState value)? $default,){
final _that = this;
switch (_that) {
case _MarianumMessageState() when $default != null:
return $default(_that);case _:
return null;
}
}
/// A variant of `when` that fallback to an `orElse` callback.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
/// case Subclass(:final field):
/// return ...;
/// case _:
/// return orElse();
/// }
/// ```
@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( MarianumMessageList messageList)? $default,{required TResult orElse(),}) {final _that = this;
switch (_that) {
case _MarianumMessageState() when $default != null:
return $default(_that.messageList);case _:
return orElse();
}
}
/// A `switch`-like method, using callbacks.
///
/// As opposed to `map`, this offers destructuring.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
/// case Subclass(:final field):
/// return ...;
/// case Subclass2(:final field2):
/// return ...;
/// }
/// ```
@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( MarianumMessageList messageList) $default,) {final _that = this;
switch (_that) {
case _MarianumMessageState():
return $default(_that.messageList);case _:
throw StateError('Unexpected subclass');
}
}
/// A variant of `when` that fallback to returning `null`
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
/// case Subclass(:final field):
/// return ...;
/// case _:
/// return null;
/// }
/// ```
@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( MarianumMessageList messageList)? $default,) {final _that = this;
switch (_that) {
case _MarianumMessageState() when $default != null:
return $default(_that.messageList);case _:
return null;
}
}
}
/// @nodoc
@JsonSerializable()
class _MarianumMessageState implements MarianumMessageState {
const _MarianumMessageState({required this.messageList});
factory _MarianumMessageState.fromJson(Map<String, dynamic> json) => _$MarianumMessageStateFromJson(json);
@override final MarianumMessageList messageList;
/// Create a copy of MarianumMessageState
/// with the given fields replaced by the non-null parameter values.
@override @JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
_$MarianumMessageStateCopyWith<_MarianumMessageState> get copyWith => __$MarianumMessageStateCopyWithImpl<_MarianumMessageState>(this, _$identity);
@override
Map<String, dynamic> toJson() {
return _$MarianumMessageStateToJson(this, );
}
@override
bool operator ==(Object other) {
return identical(this, other) || (other.runtimeType == runtimeType&&other is _MarianumMessageState&&(identical(other.messageList, messageList) || other.messageList == messageList));
}
@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType,messageList);
@override
String toString() {
return 'MarianumMessageState(messageList: $messageList)';
}
}
/// @nodoc
abstract mixin class _$MarianumMessageStateCopyWith<$Res> implements $MarianumMessageStateCopyWith<$Res> {
factory _$MarianumMessageStateCopyWith(_MarianumMessageState value, $Res Function(_MarianumMessageState) _then) = __$MarianumMessageStateCopyWithImpl;
@override @useResult
$Res call({
MarianumMessageList messageList
});
@override $MarianumMessageListCopyWith<$Res> get messageList;
}
/// @nodoc
class __$MarianumMessageStateCopyWithImpl<$Res>
implements _$MarianumMessageStateCopyWith<$Res> {
__$MarianumMessageStateCopyWithImpl(this._self, this._then);
final _MarianumMessageState _self;
final $Res Function(_MarianumMessageState) _then;
/// Create a copy of MarianumMessageState
/// with the given fields replaced by the non-null parameter values.
@override @pragma('vm:prefer-inline') $Res call({Object? messageList = null,}) {
return _then(_MarianumMessageState(
messageList: null == messageList ? _self.messageList : messageList // ignore: cast_nullable_to_non_nullable
as MarianumMessageList,
));
}
/// Create a copy of MarianumMessageState
/// with the given fields replaced by the non-null parameter values.
@override
@pragma('vm:prefer-inline')
$MarianumMessageListCopyWith<$Res> get messageList {
return $MarianumMessageListCopyWith<$Res>(_self.messageList, (value) {
return _then(_self.copyWith(messageList: value));
});
}
}
/// @nodoc
mixin _$MarianumMessageList {
String get base; List<MarianumMessage> get messages;
/// Create a copy of MarianumMessageList
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$MarianumMessageListCopyWith<MarianumMessageList> get copyWith => _$MarianumMessageListCopyWithImpl<MarianumMessageList>(this as MarianumMessageList, _$identity);
/// Serializes this MarianumMessageList to a JSON map.
Map<String, dynamic> toJson();
@override
bool operator ==(Object other) {
return identical(this, other) || (other.runtimeType == runtimeType&&other is MarianumMessageList&&(identical(other.base, base) || other.base == base)&&const DeepCollectionEquality().equals(other.messages, messages));
}
@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType,base,const DeepCollectionEquality().hash(messages));
@override
String toString() {
return 'MarianumMessageList(base: $base, messages: $messages)';
}
}
/// @nodoc
abstract mixin class $MarianumMessageListCopyWith<$Res> {
factory $MarianumMessageListCopyWith(MarianumMessageList value, $Res Function(MarianumMessageList) _then) = _$MarianumMessageListCopyWithImpl;
@useResult
$Res call({
String base, List<MarianumMessage> messages
});
}
/// @nodoc
class _$MarianumMessageListCopyWithImpl<$Res>
implements $MarianumMessageListCopyWith<$Res> {
_$MarianumMessageListCopyWithImpl(this._self, this._then);
final MarianumMessageList _self;
final $Res Function(MarianumMessageList) _then;
/// Create a copy of MarianumMessageList
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @override $Res call({Object? base = null,Object? messages = null,}) {
return _then(_self.copyWith(
base: null == base ? _self.base : base // ignore: cast_nullable_to_non_nullable
as String,messages: null == messages ? _self.messages : messages // ignore: cast_nullable_to_non_nullable
as List<MarianumMessage>,
));
}
}
/// Adds pattern-matching-related methods to [MarianumMessageList].
extension MarianumMessageListPatterns on MarianumMessageList {
/// A variant of `map` that fallback to returning `orElse`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
/// case final Subclass value:
/// return ...;
/// case _:
/// return orElse();
/// }
/// ```
@optionalTypeArgs TResult maybeMap<TResult extends Object?>(TResult Function( _MarianumMessageList value)? $default,{required TResult orElse(),}){
final _that = this;
switch (_that) {
case _MarianumMessageList() when $default != null:
return $default(_that);case _:
return orElse();
}
}
/// A `switch`-like method, using callbacks.
///
/// Callbacks receives the raw object, upcasted.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
/// case final Subclass value:
/// return ...;
/// case final Subclass2 value:
/// return ...;
/// }
/// ```
@optionalTypeArgs TResult map<TResult extends Object?>(TResult Function( _MarianumMessageList value) $default,){
final _that = this;
switch (_that) {
case _MarianumMessageList():
return $default(_that);case _:
throw StateError('Unexpected subclass');
}
}
/// A variant of `map` that fallback to returning `null`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
/// case final Subclass value:
/// return ...;
/// case _:
/// return null;
/// }
/// ```
@optionalTypeArgs TResult? mapOrNull<TResult extends Object?>(TResult? Function( _MarianumMessageList value)? $default,){
final _that = this;
switch (_that) {
case _MarianumMessageList() when $default != null:
return $default(_that);case _:
return null;
}
}
/// A variant of `when` that fallback to an `orElse` callback.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
/// case Subclass(:final field):
/// return ...;
/// case _:
/// return orElse();
/// }
/// ```
@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( String base, List<MarianumMessage> messages)? $default,{required TResult orElse(),}) {final _that = this;
switch (_that) {
case _MarianumMessageList() when $default != null:
return $default(_that.base,_that.messages);case _:
return orElse();
}
}
/// A `switch`-like method, using callbacks.
///
/// As opposed to `map`, this offers destructuring.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
/// case Subclass(:final field):
/// return ...;
/// case Subclass2(:final field2):
/// return ...;
/// }
/// ```
@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( String base, List<MarianumMessage> messages) $default,) {final _that = this;
switch (_that) {
case _MarianumMessageList():
return $default(_that.base,_that.messages);case _:
throw StateError('Unexpected subclass');
}
}
/// A variant of `when` that fallback to returning `null`
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
/// case Subclass(:final field):
/// return ...;
/// case _:
/// return null;
/// }
/// ```
@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( String base, List<MarianumMessage> messages)? $default,) {final _that = this;
switch (_that) {
case _MarianumMessageList() when $default != null:
return $default(_that.base,_that.messages);case _:
return null;
}
}
}
/// @nodoc
@JsonSerializable()
class _MarianumMessageList implements MarianumMessageList {
const _MarianumMessageList({required this.base, required final List<MarianumMessage> messages}): _messages = messages;
factory _MarianumMessageList.fromJson(Map<String, dynamic> json) => _$MarianumMessageListFromJson(json);
@override final String base;
final List<MarianumMessage> _messages;
@override List<MarianumMessage> get messages {
if (_messages is EqualUnmodifiableListView) return _messages;
// ignore: implicit_dynamic_type
return EqualUnmodifiableListView(_messages);
}
/// Create a copy of MarianumMessageList
/// with the given fields replaced by the non-null parameter values.
@override @JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
_$MarianumMessageListCopyWith<_MarianumMessageList> get copyWith => __$MarianumMessageListCopyWithImpl<_MarianumMessageList>(this, _$identity);
@override
Map<String, dynamic> toJson() {
return _$MarianumMessageListToJson(this, );
}
@override
bool operator ==(Object other) {
return identical(this, other) || (other.runtimeType == runtimeType&&other is _MarianumMessageList&&(identical(other.base, base) || other.base == base)&&const DeepCollectionEquality().equals(other._messages, _messages));
}
@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType,base,const DeepCollectionEquality().hash(_messages));
@override
String toString() {
return 'MarianumMessageList(base: $base, messages: $messages)';
}
}
/// @nodoc
abstract mixin class _$MarianumMessageListCopyWith<$Res> implements $MarianumMessageListCopyWith<$Res> {
factory _$MarianumMessageListCopyWith(_MarianumMessageList value, $Res Function(_MarianumMessageList) _then) = __$MarianumMessageListCopyWithImpl;
@override @useResult
$Res call({
String base, List<MarianumMessage> messages
});
}
/// @nodoc
class __$MarianumMessageListCopyWithImpl<$Res>
implements _$MarianumMessageListCopyWith<$Res> {
__$MarianumMessageListCopyWithImpl(this._self, this._then);
final _MarianumMessageList _self;
final $Res Function(_MarianumMessageList) _then;
/// Create a copy of MarianumMessageList
/// with the given fields replaced by the non-null parameter values.
@override @pragma('vm:prefer-inline') $Res call({Object? base = null,Object? messages = null,}) {
return _then(_MarianumMessageList(
base: null == base ? _self.base : base // ignore: cast_nullable_to_non_nullable
as String,messages: null == messages ? _self._messages : messages // ignore: cast_nullable_to_non_nullable
as List<MarianumMessage>,
));
}
}
/// @nodoc
mixin _$MarianumMessage {
String get name; String get date; String get url;
/// Create a copy of MarianumMessage
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$MarianumMessageCopyWith<MarianumMessage> get copyWith => _$MarianumMessageCopyWithImpl<MarianumMessage>(this as MarianumMessage, _$identity);
/// Serializes this MarianumMessage to a JSON map.
Map<String, dynamic> toJson();
@override
bool operator ==(Object other) {
return identical(this, other) || (other.runtimeType == runtimeType&&other is MarianumMessage&&(identical(other.name, name) || other.name == name)&&(identical(other.date, date) || other.date == date)&&(identical(other.url, url) || other.url == url));
}
@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType,name,date,url);
@override
String toString() {
return 'MarianumMessage(name: $name, date: $date, url: $url)';
}
}
/// @nodoc
abstract mixin class $MarianumMessageCopyWith<$Res> {
factory $MarianumMessageCopyWith(MarianumMessage value, $Res Function(MarianumMessage) _then) = _$MarianumMessageCopyWithImpl;
@useResult
$Res call({
String name, String date, String url
});
}
/// @nodoc
class _$MarianumMessageCopyWithImpl<$Res>
implements $MarianumMessageCopyWith<$Res> {
_$MarianumMessageCopyWithImpl(this._self, this._then);
final MarianumMessage _self;
final $Res Function(MarianumMessage) _then;
/// Create a copy of MarianumMessage
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @override $Res call({Object? name = null,Object? date = null,Object? url = null,}) {
return _then(_self.copyWith(
name: null == name ? _self.name : name // ignore: cast_nullable_to_non_nullable
as String,date: null == date ? _self.date : date // ignore: cast_nullable_to_non_nullable
as String,url: null == url ? _self.url : url // ignore: cast_nullable_to_non_nullable
as String,
));
}
}
/// Adds pattern-matching-related methods to [MarianumMessage].
extension MarianumMessagePatterns on MarianumMessage {
/// A variant of `map` that fallback to returning `orElse`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
/// case final Subclass value:
/// return ...;
/// case _:
/// return orElse();
/// }
/// ```
@optionalTypeArgs TResult maybeMap<TResult extends Object?>(TResult Function( _MarianumMessage value)? $default,{required TResult orElse(),}){
final _that = this;
switch (_that) {
case _MarianumMessage() when $default != null:
return $default(_that);case _:
return orElse();
}
}
/// A `switch`-like method, using callbacks.
///
/// Callbacks receives the raw object, upcasted.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
/// case final Subclass value:
/// return ...;
/// case final Subclass2 value:
/// return ...;
/// }
/// ```
@optionalTypeArgs TResult map<TResult extends Object?>(TResult Function( _MarianumMessage value) $default,){
final _that = this;
switch (_that) {
case _MarianumMessage():
return $default(_that);case _:
throw StateError('Unexpected subclass');
}
}
/// A variant of `map` that fallback to returning `null`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
/// case final Subclass value:
/// return ...;
/// case _:
/// return null;
/// }
/// ```
@optionalTypeArgs TResult? mapOrNull<TResult extends Object?>(TResult? Function( _MarianumMessage value)? $default,){
final _that = this;
switch (_that) {
case _MarianumMessage() when $default != null:
return $default(_that);case _:
return null;
}
}
/// A variant of `when` that fallback to an `orElse` callback.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
/// case Subclass(:final field):
/// return ...;
/// case _:
/// return orElse();
/// }
/// ```
@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( String name, String date, String url)? $default,{required TResult orElse(),}) {final _that = this;
switch (_that) {
case _MarianumMessage() when $default != null:
return $default(_that.name,_that.date,_that.url);case _:
return orElse();
}
}
/// A `switch`-like method, using callbacks.
///
/// As opposed to `map`, this offers destructuring.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
/// case Subclass(:final field):
/// return ...;
/// case Subclass2(:final field2):
/// return ...;
/// }
/// ```
@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( String name, String date, String url) $default,) {final _that = this;
switch (_that) {
case _MarianumMessage():
return $default(_that.name,_that.date,_that.url);case _:
throw StateError('Unexpected subclass');
}
}
/// A variant of `when` that fallback to returning `null`
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
/// case Subclass(:final field):
/// return ...;
/// case _:
/// return null;
/// }
/// ```
@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( String name, String date, String url)? $default,) {final _that = this;
switch (_that) {
case _MarianumMessage() when $default != null:
return $default(_that.name,_that.date,_that.url);case _:
return null;
}
}
}
/// @nodoc
@JsonSerializable()
class _MarianumMessage implements MarianumMessage {
const _MarianumMessage({required this.name, required this.date, required this.url});
factory _MarianumMessage.fromJson(Map<String, dynamic> json) => _$MarianumMessageFromJson(json);
@override final String name;
@override final String date;
@override final String url;
/// Create a copy of MarianumMessage
/// with the given fields replaced by the non-null parameter values.
@override @JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
_$MarianumMessageCopyWith<_MarianumMessage> get copyWith => __$MarianumMessageCopyWithImpl<_MarianumMessage>(this, _$identity);
@override
Map<String, dynamic> toJson() {
return _$MarianumMessageToJson(this, );
}
@override
bool operator ==(Object other) {
return identical(this, other) || (other.runtimeType == runtimeType&&other is _MarianumMessage&&(identical(other.name, name) || other.name == name)&&(identical(other.date, date) || other.date == date)&&(identical(other.url, url) || other.url == url));
}
@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType,name,date,url);
@override
String toString() {
return 'MarianumMessage(name: $name, date: $date, url: $url)';
}
}
/// @nodoc
abstract mixin class _$MarianumMessageCopyWith<$Res> implements $MarianumMessageCopyWith<$Res> {
factory _$MarianumMessageCopyWith(_MarianumMessage value, $Res Function(_MarianumMessage) _then) = __$MarianumMessageCopyWithImpl;
@override @useResult
$Res call({
String name, String date, String url
});
}
/// @nodoc
class __$MarianumMessageCopyWithImpl<$Res>
implements _$MarianumMessageCopyWith<$Res> {
__$MarianumMessageCopyWithImpl(this._self, this._then);
final _MarianumMessage _self;
final $Res Function(_MarianumMessage) _then;
/// Create a copy of MarianumMessage
/// with the given fields replaced by the non-null parameter values.
@override @pragma('vm:prefer-inline') $Res call({Object? name = null,Object? date = null,Object? url = null,}) {
return _then(_MarianumMessage(
name: null == name ? _self.name : name // ignore: cast_nullable_to_non_nullable
as String,date: null == date ? _self.date : date // ignore: cast_nullable_to_non_nullable
as String,url: null == url ? _self.url : url // ignore: cast_nullable_to_non_nullable
as String,
));
}
}
// dart format on
@@ -0,0 +1,45 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'marianum_message_state.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
_MarianumMessageState _$MarianumMessageStateFromJson(
Map<String, dynamic> json,
) => _MarianumMessageState(
messageList: MarianumMessageList.fromJson(
json['messageList'] as Map<String, dynamic>,
),
);
Map<String, dynamic> _$MarianumMessageStateToJson(
_MarianumMessageState instance,
) => <String, dynamic>{'messageList': instance.messageList};
_MarianumMessageList _$MarianumMessageListFromJson(Map<String, dynamic> json) =>
_MarianumMessageList(
base: json['base'] as String,
messages: (json['messages'] as List<dynamic>)
.map((e) => MarianumMessage.fromJson(e as Map<String, dynamic>))
.toList(),
);
Map<String, dynamic> _$MarianumMessageListToJson(
_MarianumMessageList instance,
) => <String, dynamic>{'base': instance.base, 'messages': instance.messages};
_MarianumMessage _$MarianumMessageFromJson(Map<String, dynamic> json) =>
_MarianumMessage(
name: json['name'] as String,
date: json['date'] as String,
url: json['url'] as String,
);
Map<String, dynamic> _$MarianumMessageToJson(_MarianumMessage instance) =>
<String, dynamic>{
'name': instance.name,
'date': instance.date,
'url': instance.url,
};
@@ -0,0 +1,12 @@
import 'package:dio/dio.dart';
import '../../../basis/dataloader/mhsl_data_loader.dart';
import '../../../infrastructure/data_loader/data_loader.dart';
import '../bloc/marianum_message_state.dart';
class MarianumMessageGetMessages extends MhslDataLoader<MarianumMessageList> {
@override
Future<Response<String>> fetch() async => dio.get('/message/messages.json');
@override
MarianumMessageList assemble(DataLoaderResult data) => MarianumMessageList.fromJson(data.asMap());
}
@@ -0,0 +1,7 @@
import '../../../infrastructure/repository/repository.dart';
import '../bloc/marianum_message_state.dart';
import '../data_provider/marianum_message_get_messages.dart';
class MarianumMessageRepository extends Repository<MarianumMessageState> {
Future<MarianumMessageList> getMessages() => MarianumMessageGetMessages().run();
}