Hello, first of all I would like to thank your work for this incredible library, but I have a question.
How a model variable can be accessed outside of the controller as from a view, that is, in a normal class.
@freezed
class UserClient extends BaseClientGenerator with _$UserClient {
const UserClient._() : super();
factory UserClient.login(UserModel user) = _Login;
factory UserClient.get() = _Get;
@override
String get baseURL => "http://192.168.0.11:7000/api/v1/user/";
@override
Map<String, dynamic> get header {
final SessionModel theme = new SessionModel(); // here
Map<String, dynamic> headers = {"Content-Type": "application/json"};
maybeWhen<Map<String, dynamic>>(
login: (_) => headers,
orElse: () => headers,
);
return headers;
}
I need to get current JWT value from my session model...
enum SessionAction {
none,
success,
error,
}
class SessionEvent {
final SessionAction action;
final String? message;
SessionEvent({
required this.action,
this.message,
});
}
class SessionModel extends MomentumModel<SessionController>
with EquatableMixin {
SessionModel(
SessionController controller, {
required this.token,
required this.name,
required this.lastName,
required this.password,
required this.email,
}) : super(controller);
final String token;
final String name;
final String lastName;
final String password;
final String? email;
@override
void update({
String? token,
String? name,
String? lastName,
String? password,
String? email,
}) {
SessionModel(controller,
token: token ?? this.token,
name: name ?? this.name,
lastName: lastName ?? this.lastName,
password: password ?? this.password,
email: email ?? this.email)
.updateMomentum();
}
@override
Map<String, dynamic> toJson() {
return {
'token': token,
'name': name,
'lastName': lastName,
'password': password,
'email': email,
};
}
@override
SessionModel? fromJson(Map<String, dynamic>? json) {
if (json == null) return null;
return SessionModel(
controller,
token: json['token'],
name: json['name'],
lastName: json['lastName'],
password: json['password'],
email: json['email'],
);
}
@override
List<Object?> get props => [token, name, lastName, password, email];
}