login
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
|
||||
import '../../domain/auth/auth.dart';
|
||||
|
||||
part 'auth_dtos.freezed.dart';
|
||||
part 'auth_dtos.g.dart';
|
||||
|
||||
part 'dto/login_dto.dart';
|
||||
part 'dto/user_dto.dart';
|
||||
@@ -0,0 +1,700 @@
|
||||
// coverage:ignore-file
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
// 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 'auth_dtos.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// FreezedGenerator
|
||||
// **************************************************************************
|
||||
|
||||
T _$identity<T>(T value) => value;
|
||||
|
||||
final _privateConstructorUsedError = UnsupportedError(
|
||||
'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models',
|
||||
);
|
||||
|
||||
LoginDto _$LoginDtoFromJson(Map<String, dynamic> json) {
|
||||
return _LoginDto.fromJson(json);
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
mixin _$LoginDto {
|
||||
@JsonKey(name: "token")
|
||||
String? get token => throw _privateConstructorUsedError;
|
||||
@JsonKey(name: "refresh_token")
|
||||
String? get refreshToken => throw _privateConstructorUsedError;
|
||||
@JsonKey(name: "expires_at")
|
||||
String? get expiresAt => throw _privateConstructorUsedError;
|
||||
@JsonKey(name: "refresh_expires_at")
|
||||
String? get refreshExpiresAt => throw _privateConstructorUsedError;
|
||||
@JsonKey(name: "user")
|
||||
UserDto? get user => throw _privateConstructorUsedError;
|
||||
|
||||
/// Serializes this LoginDto to a JSON map.
|
||||
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
||||
|
||||
/// Create a copy of LoginDto
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
$LoginDtoCopyWith<LoginDto> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class $LoginDtoCopyWith<$Res> {
|
||||
factory $LoginDtoCopyWith(LoginDto value, $Res Function(LoginDto) then) =
|
||||
_$LoginDtoCopyWithImpl<$Res, LoginDto>;
|
||||
@useResult
|
||||
$Res call({
|
||||
@JsonKey(name: "token") String? token,
|
||||
@JsonKey(name: "refresh_token") String? refreshToken,
|
||||
@JsonKey(name: "expires_at") String? expiresAt,
|
||||
@JsonKey(name: "refresh_expires_at") String? refreshExpiresAt,
|
||||
@JsonKey(name: "user") UserDto? user,
|
||||
});
|
||||
|
||||
$UserDtoCopyWith<$Res>? get user;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class _$LoginDtoCopyWithImpl<$Res, $Val extends LoginDto>
|
||||
implements $LoginDtoCopyWith<$Res> {
|
||||
_$LoginDtoCopyWithImpl(this._value, this._then);
|
||||
|
||||
// ignore: unused_field
|
||||
final $Val _value;
|
||||
// ignore: unused_field
|
||||
final $Res Function($Val) _then;
|
||||
|
||||
/// Create a copy of LoginDto
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
$Res call({
|
||||
Object? token = freezed,
|
||||
Object? refreshToken = freezed,
|
||||
Object? expiresAt = freezed,
|
||||
Object? refreshExpiresAt = freezed,
|
||||
Object? user = freezed,
|
||||
}) {
|
||||
return _then(
|
||||
_value.copyWith(
|
||||
token: freezed == token
|
||||
? _value.token
|
||||
: token // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
refreshToken: freezed == refreshToken
|
||||
? _value.refreshToken
|
||||
: refreshToken // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
expiresAt: freezed == expiresAt
|
||||
? _value.expiresAt
|
||||
: expiresAt // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
refreshExpiresAt: freezed == refreshExpiresAt
|
||||
? _value.refreshExpiresAt
|
||||
: refreshExpiresAt // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
user: freezed == user
|
||||
? _value.user
|
||||
: user // ignore: cast_nullable_to_non_nullable
|
||||
as UserDto?,
|
||||
)
|
||||
as $Val,
|
||||
);
|
||||
}
|
||||
|
||||
/// Create a copy of LoginDto
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
$UserDtoCopyWith<$Res>? get user {
|
||||
if (_value.user == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $UserDtoCopyWith<$Res>(_value.user!, (value) {
|
||||
return _then(_value.copyWith(user: value) as $Val);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class _$$LoginDtoImplCopyWith<$Res>
|
||||
implements $LoginDtoCopyWith<$Res> {
|
||||
factory _$$LoginDtoImplCopyWith(
|
||||
_$LoginDtoImpl value,
|
||||
$Res Function(_$LoginDtoImpl) then,
|
||||
) = __$$LoginDtoImplCopyWithImpl<$Res>;
|
||||
@override
|
||||
@useResult
|
||||
$Res call({
|
||||
@JsonKey(name: "token") String? token,
|
||||
@JsonKey(name: "refresh_token") String? refreshToken,
|
||||
@JsonKey(name: "expires_at") String? expiresAt,
|
||||
@JsonKey(name: "refresh_expires_at") String? refreshExpiresAt,
|
||||
@JsonKey(name: "user") UserDto? user,
|
||||
});
|
||||
|
||||
@override
|
||||
$UserDtoCopyWith<$Res>? get user;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class __$$LoginDtoImplCopyWithImpl<$Res>
|
||||
extends _$LoginDtoCopyWithImpl<$Res, _$LoginDtoImpl>
|
||||
implements _$$LoginDtoImplCopyWith<$Res> {
|
||||
__$$LoginDtoImplCopyWithImpl(
|
||||
_$LoginDtoImpl _value,
|
||||
$Res Function(_$LoginDtoImpl) _then,
|
||||
) : super(_value, _then);
|
||||
|
||||
/// Create a copy of LoginDto
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
$Res call({
|
||||
Object? token = freezed,
|
||||
Object? refreshToken = freezed,
|
||||
Object? expiresAt = freezed,
|
||||
Object? refreshExpiresAt = freezed,
|
||||
Object? user = freezed,
|
||||
}) {
|
||||
return _then(
|
||||
_$LoginDtoImpl(
|
||||
token: freezed == token
|
||||
? _value.token
|
||||
: token // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
refreshToken: freezed == refreshToken
|
||||
? _value.refreshToken
|
||||
: refreshToken // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
expiresAt: freezed == expiresAt
|
||||
? _value.expiresAt
|
||||
: expiresAt // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
refreshExpiresAt: freezed == refreshExpiresAt
|
||||
? _value.refreshExpiresAt
|
||||
: refreshExpiresAt // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
user: freezed == user
|
||||
? _value.user
|
||||
: user // ignore: cast_nullable_to_non_nullable
|
||||
as UserDto?,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
@JsonSerializable()
|
||||
class _$LoginDtoImpl extends _LoginDto {
|
||||
const _$LoginDtoImpl({
|
||||
@JsonKey(name: "token") this.token,
|
||||
@JsonKey(name: "refresh_token") this.refreshToken,
|
||||
@JsonKey(name: "expires_at") this.expiresAt,
|
||||
@JsonKey(name: "refresh_expires_at") this.refreshExpiresAt,
|
||||
@JsonKey(name: "user") this.user,
|
||||
}) : super._();
|
||||
|
||||
factory _$LoginDtoImpl.fromJson(Map<String, dynamic> json) =>
|
||||
_$$LoginDtoImplFromJson(json);
|
||||
|
||||
@override
|
||||
@JsonKey(name: "token")
|
||||
final String? token;
|
||||
@override
|
||||
@JsonKey(name: "refresh_token")
|
||||
final String? refreshToken;
|
||||
@override
|
||||
@JsonKey(name: "expires_at")
|
||||
final String? expiresAt;
|
||||
@override
|
||||
@JsonKey(name: "refresh_expires_at")
|
||||
final String? refreshExpiresAt;
|
||||
@override
|
||||
@JsonKey(name: "user")
|
||||
final UserDto? user;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'LoginDto(token: $token, refreshToken: $refreshToken, expiresAt: $expiresAt, refreshExpiresAt: $refreshExpiresAt, user: $user)';
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) ||
|
||||
(other.runtimeType == runtimeType &&
|
||||
other is _$LoginDtoImpl &&
|
||||
(identical(other.token, token) || other.token == token) &&
|
||||
(identical(other.refreshToken, refreshToken) ||
|
||||
other.refreshToken == refreshToken) &&
|
||||
(identical(other.expiresAt, expiresAt) ||
|
||||
other.expiresAt == expiresAt) &&
|
||||
(identical(other.refreshExpiresAt, refreshExpiresAt) ||
|
||||
other.refreshExpiresAt == refreshExpiresAt) &&
|
||||
(identical(other.user, user) || other.user == user));
|
||||
}
|
||||
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@override
|
||||
int get hashCode => Object.hash(
|
||||
runtimeType,
|
||||
token,
|
||||
refreshToken,
|
||||
expiresAt,
|
||||
refreshExpiresAt,
|
||||
user,
|
||||
);
|
||||
|
||||
/// Create a copy of LoginDto
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
_$$LoginDtoImplCopyWith<_$LoginDtoImpl> get copyWith =>
|
||||
__$$LoginDtoImplCopyWithImpl<_$LoginDtoImpl>(this, _$identity);
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toJson() {
|
||||
return _$$LoginDtoImplToJson(this);
|
||||
}
|
||||
}
|
||||
|
||||
abstract class _LoginDto extends LoginDto {
|
||||
const factory _LoginDto({
|
||||
@JsonKey(name: "token") final String? token,
|
||||
@JsonKey(name: "refresh_token") final String? refreshToken,
|
||||
@JsonKey(name: "expires_at") final String? expiresAt,
|
||||
@JsonKey(name: "refresh_expires_at") final String? refreshExpiresAt,
|
||||
@JsonKey(name: "user") final UserDto? user,
|
||||
}) = _$LoginDtoImpl;
|
||||
const _LoginDto._() : super._();
|
||||
|
||||
factory _LoginDto.fromJson(Map<String, dynamic> json) =
|
||||
_$LoginDtoImpl.fromJson;
|
||||
|
||||
@override
|
||||
@JsonKey(name: "token")
|
||||
String? get token;
|
||||
@override
|
||||
@JsonKey(name: "refresh_token")
|
||||
String? get refreshToken;
|
||||
@override
|
||||
@JsonKey(name: "expires_at")
|
||||
String? get expiresAt;
|
||||
@override
|
||||
@JsonKey(name: "refresh_expires_at")
|
||||
String? get refreshExpiresAt;
|
||||
@override
|
||||
@JsonKey(name: "user")
|
||||
UserDto? get user;
|
||||
|
||||
/// Create a copy of LoginDto
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@override
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
_$$LoginDtoImplCopyWith<_$LoginDtoImpl> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
UserDto _$UserDtoFromJson(Map<String, dynamic> json) {
|
||||
return _UserDto.fromJson(json);
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
mixin _$UserDto {
|
||||
@JsonKey(name: "id")
|
||||
String? get id => throw _privateConstructorUsedError;
|
||||
@JsonKey(name: "organization_id")
|
||||
String? get organizationId => throw _privateConstructorUsedError;
|
||||
@JsonKey(name: "outlet_id")
|
||||
String? get outletId => throw _privateConstructorUsedError;
|
||||
@JsonKey(name: "name")
|
||||
String? get name => throw _privateConstructorUsedError;
|
||||
@JsonKey(name: "email")
|
||||
String? get email => throw _privateConstructorUsedError;
|
||||
@JsonKey(name: "role")
|
||||
String? get role => throw _privateConstructorUsedError;
|
||||
@JsonKey(name: "permissions")
|
||||
Map<String, dynamic>? get permissions => throw _privateConstructorUsedError;
|
||||
@JsonKey(name: "is_active")
|
||||
bool? get isActive => throw _privateConstructorUsedError;
|
||||
@JsonKey(name: "created_at")
|
||||
String? get createdAt => throw _privateConstructorUsedError;
|
||||
@JsonKey(name: "updated_at")
|
||||
String? get updatedAt => throw _privateConstructorUsedError;
|
||||
|
||||
/// Serializes this UserDto to a JSON map.
|
||||
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
||||
|
||||
/// Create a copy of UserDto
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
$UserDtoCopyWith<UserDto> get copyWith => throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class $UserDtoCopyWith<$Res> {
|
||||
factory $UserDtoCopyWith(UserDto value, $Res Function(UserDto) then) =
|
||||
_$UserDtoCopyWithImpl<$Res, UserDto>;
|
||||
@useResult
|
||||
$Res call({
|
||||
@JsonKey(name: "id") String? id,
|
||||
@JsonKey(name: "organization_id") String? organizationId,
|
||||
@JsonKey(name: "outlet_id") String? outletId,
|
||||
@JsonKey(name: "name") String? name,
|
||||
@JsonKey(name: "email") String? email,
|
||||
@JsonKey(name: "role") String? role,
|
||||
@JsonKey(name: "permissions") Map<String, dynamic>? permissions,
|
||||
@JsonKey(name: "is_active") bool? isActive,
|
||||
@JsonKey(name: "created_at") String? createdAt,
|
||||
@JsonKey(name: "updated_at") String? updatedAt,
|
||||
});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class _$UserDtoCopyWithImpl<$Res, $Val extends UserDto>
|
||||
implements $UserDtoCopyWith<$Res> {
|
||||
_$UserDtoCopyWithImpl(this._value, this._then);
|
||||
|
||||
// ignore: unused_field
|
||||
final $Val _value;
|
||||
// ignore: unused_field
|
||||
final $Res Function($Val) _then;
|
||||
|
||||
/// Create a copy of UserDto
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
$Res call({
|
||||
Object? id = freezed,
|
||||
Object? organizationId = freezed,
|
||||
Object? outletId = freezed,
|
||||
Object? name = freezed,
|
||||
Object? email = freezed,
|
||||
Object? role = freezed,
|
||||
Object? permissions = freezed,
|
||||
Object? isActive = freezed,
|
||||
Object? createdAt = freezed,
|
||||
Object? updatedAt = freezed,
|
||||
}) {
|
||||
return _then(
|
||||
_value.copyWith(
|
||||
id: freezed == id
|
||||
? _value.id
|
||||
: id // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
organizationId: freezed == organizationId
|
||||
? _value.organizationId
|
||||
: organizationId // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
outletId: freezed == outletId
|
||||
? _value.outletId
|
||||
: outletId // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
name: freezed == name
|
||||
? _value.name
|
||||
: name // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
email: freezed == email
|
||||
? _value.email
|
||||
: email // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
role: freezed == role
|
||||
? _value.role
|
||||
: role // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
permissions: freezed == permissions
|
||||
? _value.permissions
|
||||
: permissions // ignore: cast_nullable_to_non_nullable
|
||||
as Map<String, dynamic>?,
|
||||
isActive: freezed == isActive
|
||||
? _value.isActive
|
||||
: isActive // ignore: cast_nullable_to_non_nullable
|
||||
as bool?,
|
||||
createdAt: freezed == createdAt
|
||||
? _value.createdAt
|
||||
: createdAt // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
updatedAt: freezed == updatedAt
|
||||
? _value.updatedAt
|
||||
: updatedAt // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
)
|
||||
as $Val,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class _$$UserDtoImplCopyWith<$Res> implements $UserDtoCopyWith<$Res> {
|
||||
factory _$$UserDtoImplCopyWith(
|
||||
_$UserDtoImpl value,
|
||||
$Res Function(_$UserDtoImpl) then,
|
||||
) = __$$UserDtoImplCopyWithImpl<$Res>;
|
||||
@override
|
||||
@useResult
|
||||
$Res call({
|
||||
@JsonKey(name: "id") String? id,
|
||||
@JsonKey(name: "organization_id") String? organizationId,
|
||||
@JsonKey(name: "outlet_id") String? outletId,
|
||||
@JsonKey(name: "name") String? name,
|
||||
@JsonKey(name: "email") String? email,
|
||||
@JsonKey(name: "role") String? role,
|
||||
@JsonKey(name: "permissions") Map<String, dynamic>? permissions,
|
||||
@JsonKey(name: "is_active") bool? isActive,
|
||||
@JsonKey(name: "created_at") String? createdAt,
|
||||
@JsonKey(name: "updated_at") String? updatedAt,
|
||||
});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class __$$UserDtoImplCopyWithImpl<$Res>
|
||||
extends _$UserDtoCopyWithImpl<$Res, _$UserDtoImpl>
|
||||
implements _$$UserDtoImplCopyWith<$Res> {
|
||||
__$$UserDtoImplCopyWithImpl(
|
||||
_$UserDtoImpl _value,
|
||||
$Res Function(_$UserDtoImpl) _then,
|
||||
) : super(_value, _then);
|
||||
|
||||
/// Create a copy of UserDto
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
$Res call({
|
||||
Object? id = freezed,
|
||||
Object? organizationId = freezed,
|
||||
Object? outletId = freezed,
|
||||
Object? name = freezed,
|
||||
Object? email = freezed,
|
||||
Object? role = freezed,
|
||||
Object? permissions = freezed,
|
||||
Object? isActive = freezed,
|
||||
Object? createdAt = freezed,
|
||||
Object? updatedAt = freezed,
|
||||
}) {
|
||||
return _then(
|
||||
_$UserDtoImpl(
|
||||
id: freezed == id
|
||||
? _value.id
|
||||
: id // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
organizationId: freezed == organizationId
|
||||
? _value.organizationId
|
||||
: organizationId // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
outletId: freezed == outletId
|
||||
? _value.outletId
|
||||
: outletId // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
name: freezed == name
|
||||
? _value.name
|
||||
: name // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
email: freezed == email
|
||||
? _value.email
|
||||
: email // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
role: freezed == role
|
||||
? _value.role
|
||||
: role // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
permissions: freezed == permissions
|
||||
? _value._permissions
|
||||
: permissions // ignore: cast_nullable_to_non_nullable
|
||||
as Map<String, dynamic>?,
|
||||
isActive: freezed == isActive
|
||||
? _value.isActive
|
||||
: isActive // ignore: cast_nullable_to_non_nullable
|
||||
as bool?,
|
||||
createdAt: freezed == createdAt
|
||||
? _value.createdAt
|
||||
: createdAt // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
updatedAt: freezed == updatedAt
|
||||
? _value.updatedAt
|
||||
: updatedAt // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
@JsonSerializable()
|
||||
class _$UserDtoImpl extends _UserDto {
|
||||
const _$UserDtoImpl({
|
||||
@JsonKey(name: "id") this.id,
|
||||
@JsonKey(name: "organization_id") this.organizationId,
|
||||
@JsonKey(name: "outlet_id") this.outletId,
|
||||
@JsonKey(name: "name") this.name,
|
||||
@JsonKey(name: "email") this.email,
|
||||
@JsonKey(name: "role") this.role,
|
||||
@JsonKey(name: "permissions") final Map<String, dynamic>? permissions,
|
||||
@JsonKey(name: "is_active") this.isActive,
|
||||
@JsonKey(name: "created_at") this.createdAt,
|
||||
@JsonKey(name: "updated_at") this.updatedAt,
|
||||
}) : _permissions = permissions,
|
||||
super._();
|
||||
|
||||
factory _$UserDtoImpl.fromJson(Map<String, dynamic> json) =>
|
||||
_$$UserDtoImplFromJson(json);
|
||||
|
||||
@override
|
||||
@JsonKey(name: "id")
|
||||
final String? id;
|
||||
@override
|
||||
@JsonKey(name: "organization_id")
|
||||
final String? organizationId;
|
||||
@override
|
||||
@JsonKey(name: "outlet_id")
|
||||
final String? outletId;
|
||||
@override
|
||||
@JsonKey(name: "name")
|
||||
final String? name;
|
||||
@override
|
||||
@JsonKey(name: "email")
|
||||
final String? email;
|
||||
@override
|
||||
@JsonKey(name: "role")
|
||||
final String? role;
|
||||
final Map<String, dynamic>? _permissions;
|
||||
@override
|
||||
@JsonKey(name: "permissions")
|
||||
Map<String, dynamic>? get permissions {
|
||||
final value = _permissions;
|
||||
if (value == null) return null;
|
||||
if (_permissions is EqualUnmodifiableMapView) return _permissions;
|
||||
// ignore: implicit_dynamic_type
|
||||
return EqualUnmodifiableMapView(value);
|
||||
}
|
||||
|
||||
@override
|
||||
@JsonKey(name: "is_active")
|
||||
final bool? isActive;
|
||||
@override
|
||||
@JsonKey(name: "created_at")
|
||||
final String? createdAt;
|
||||
@override
|
||||
@JsonKey(name: "updated_at")
|
||||
final String? updatedAt;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'UserDto(id: $id, organizationId: $organizationId, outletId: $outletId, name: $name, email: $email, role: $role, permissions: $permissions, isActive: $isActive, createdAt: $createdAt, updatedAt: $updatedAt)';
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) ||
|
||||
(other.runtimeType == runtimeType &&
|
||||
other is _$UserDtoImpl &&
|
||||
(identical(other.id, id) || other.id == id) &&
|
||||
(identical(other.organizationId, organizationId) ||
|
||||
other.organizationId == organizationId) &&
|
||||
(identical(other.outletId, outletId) ||
|
||||
other.outletId == outletId) &&
|
||||
(identical(other.name, name) || other.name == name) &&
|
||||
(identical(other.email, email) || other.email == email) &&
|
||||
(identical(other.role, role) || other.role == role) &&
|
||||
const DeepCollectionEquality().equals(
|
||||
other._permissions,
|
||||
_permissions,
|
||||
) &&
|
||||
(identical(other.isActive, isActive) ||
|
||||
other.isActive == isActive) &&
|
||||
(identical(other.createdAt, createdAt) ||
|
||||
other.createdAt == createdAt) &&
|
||||
(identical(other.updatedAt, updatedAt) ||
|
||||
other.updatedAt == updatedAt));
|
||||
}
|
||||
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@override
|
||||
int get hashCode => Object.hash(
|
||||
runtimeType,
|
||||
id,
|
||||
organizationId,
|
||||
outletId,
|
||||
name,
|
||||
email,
|
||||
role,
|
||||
const DeepCollectionEquality().hash(_permissions),
|
||||
isActive,
|
||||
createdAt,
|
||||
updatedAt,
|
||||
);
|
||||
|
||||
/// Create a copy of UserDto
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
_$$UserDtoImplCopyWith<_$UserDtoImpl> get copyWith =>
|
||||
__$$UserDtoImplCopyWithImpl<_$UserDtoImpl>(this, _$identity);
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toJson() {
|
||||
return _$$UserDtoImplToJson(this);
|
||||
}
|
||||
}
|
||||
|
||||
abstract class _UserDto extends UserDto {
|
||||
const factory _UserDto({
|
||||
@JsonKey(name: "id") final String? id,
|
||||
@JsonKey(name: "organization_id") final String? organizationId,
|
||||
@JsonKey(name: "outlet_id") final String? outletId,
|
||||
@JsonKey(name: "name") final String? name,
|
||||
@JsonKey(name: "email") final String? email,
|
||||
@JsonKey(name: "role") final String? role,
|
||||
@JsonKey(name: "permissions") final Map<String, dynamic>? permissions,
|
||||
@JsonKey(name: "is_active") final bool? isActive,
|
||||
@JsonKey(name: "created_at") final String? createdAt,
|
||||
@JsonKey(name: "updated_at") final String? updatedAt,
|
||||
}) = _$UserDtoImpl;
|
||||
const _UserDto._() : super._();
|
||||
|
||||
factory _UserDto.fromJson(Map<String, dynamic> json) = _$UserDtoImpl.fromJson;
|
||||
|
||||
@override
|
||||
@JsonKey(name: "id")
|
||||
String? get id;
|
||||
@override
|
||||
@JsonKey(name: "organization_id")
|
||||
String? get organizationId;
|
||||
@override
|
||||
@JsonKey(name: "outlet_id")
|
||||
String? get outletId;
|
||||
@override
|
||||
@JsonKey(name: "name")
|
||||
String? get name;
|
||||
@override
|
||||
@JsonKey(name: "email")
|
||||
String? get email;
|
||||
@override
|
||||
@JsonKey(name: "role")
|
||||
String? get role;
|
||||
@override
|
||||
@JsonKey(name: "permissions")
|
||||
Map<String, dynamic>? get permissions;
|
||||
@override
|
||||
@JsonKey(name: "is_active")
|
||||
bool? get isActive;
|
||||
@override
|
||||
@JsonKey(name: "created_at")
|
||||
String? get createdAt;
|
||||
@override
|
||||
@JsonKey(name: "updated_at")
|
||||
String? get updatedAt;
|
||||
|
||||
/// Create a copy of UserDto
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@override
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
_$$UserDtoImplCopyWith<_$UserDtoImpl> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'auth_dtos.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
_$LoginDtoImpl _$$LoginDtoImplFromJson(Map<String, dynamic> json) =>
|
||||
_$LoginDtoImpl(
|
||||
token: json['token'] as String?,
|
||||
refreshToken: json['refresh_token'] as String?,
|
||||
expiresAt: json['expires_at'] as String?,
|
||||
refreshExpiresAt: json['refresh_expires_at'] as String?,
|
||||
user: json['user'] == null
|
||||
? null
|
||||
: UserDto.fromJson(json['user'] as Map<String, dynamic>),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$LoginDtoImplToJson(_$LoginDtoImpl instance) =>
|
||||
<String, dynamic>{
|
||||
'token': instance.token,
|
||||
'refresh_token': instance.refreshToken,
|
||||
'expires_at': instance.expiresAt,
|
||||
'refresh_expires_at': instance.refreshExpiresAt,
|
||||
'user': instance.user,
|
||||
};
|
||||
|
||||
_$UserDtoImpl _$$UserDtoImplFromJson(Map<String, dynamic> json) =>
|
||||
_$UserDtoImpl(
|
||||
id: json['id'] as String?,
|
||||
organizationId: json['organization_id'] as String?,
|
||||
outletId: json['outlet_id'] as String?,
|
||||
name: json['name'] as String?,
|
||||
email: json['email'] as String?,
|
||||
role: json['role'] as String?,
|
||||
permissions: json['permissions'] as Map<String, dynamic>?,
|
||||
isActive: json['is_active'] as bool?,
|
||||
createdAt: json['created_at'] as String?,
|
||||
updatedAt: json['updated_at'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$UserDtoImplToJson(_$UserDtoImpl instance) =>
|
||||
<String, dynamic>{
|
||||
'id': instance.id,
|
||||
'organization_id': instance.organizationId,
|
||||
'outlet_id': instance.outletId,
|
||||
'name': instance.name,
|
||||
'email': instance.email,
|
||||
'role': instance.role,
|
||||
'permissions': instance.permissions,
|
||||
'is_active': instance.isActive,
|
||||
'created_at': instance.createdAt,
|
||||
'updated_at': instance.updatedAt,
|
||||
};
|
||||
@@ -0,0 +1,60 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:injectable/injectable.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import '../../../common/constant/local_storage_key.dart';
|
||||
import '../../../domain/auth/auth.dart';
|
||||
import '../auth_dtos.dart';
|
||||
|
||||
@injectable
|
||||
class AuthLocalDataProvider {
|
||||
final SharedPreferences _sharedPreferences;
|
||||
final String _logName = 'AuthLocalDataProvider';
|
||||
|
||||
AuthLocalDataProvider(this._sharedPreferences);
|
||||
|
||||
Future<void> saveToken(String token) async {
|
||||
await _sharedPreferences.setString(LocalStorageKey.token, token);
|
||||
}
|
||||
|
||||
Future<String?> getToken() async {
|
||||
return _sharedPreferences.getString(LocalStorageKey.token);
|
||||
}
|
||||
|
||||
Future<void> deleteToken() async {
|
||||
await _sharedPreferences.remove(LocalStorageKey.token);
|
||||
}
|
||||
|
||||
Future<bool> hasToken() async {
|
||||
return _sharedPreferences.containsKey(LocalStorageKey.token);
|
||||
}
|
||||
|
||||
Future<void> saveCurrentUser(UserDto user) async {
|
||||
final userJsonString = jsonEncode(user.toJson());
|
||||
await _sharedPreferences.setString(LocalStorageKey.user, userJsonString);
|
||||
}
|
||||
|
||||
Future<User> currentUser() async {
|
||||
final userString = _sharedPreferences.getString(LocalStorageKey.user);
|
||||
if (userString == null) return User.empty();
|
||||
|
||||
final Map<String, dynamic> userMap = jsonDecode(userString);
|
||||
final userDto = UserDto.fromJson(userMap);
|
||||
return userDto.toDomain();
|
||||
}
|
||||
|
||||
Future<void> deleteCurrentUser() async {
|
||||
await _sharedPreferences.remove(LocalStorageKey.user);
|
||||
}
|
||||
|
||||
Future<void> deleteAllAuth() async {
|
||||
try {
|
||||
await _sharedPreferences.remove(LocalStorageKey.token);
|
||||
await _sharedPreferences.remove(LocalStorageKey.user);
|
||||
} catch (e) {
|
||||
log('deleteAllAuthError', name: _logName, error: e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:data_channel/data_channel.dart';
|
||||
import 'package:injectable/injectable.dart';
|
||||
|
||||
import '../../../common/api/api_client.dart';
|
||||
import '../../../common/api/api_failure.dart';
|
||||
import '../../../common/url/api_path.dart';
|
||||
import '../../../domain/auth/auth.dart';
|
||||
import '../auth_dtos.dart';
|
||||
|
||||
@injectable
|
||||
class AuthRemoteDataProvider {
|
||||
final ApiClient _apiClient;
|
||||
final String _logName = 'AuthRemoteDataProvider';
|
||||
|
||||
AuthRemoteDataProvider(this._apiClient);
|
||||
|
||||
Future<DC<AuthFailure, LoginDto>> login({
|
||||
required String email,
|
||||
required String password,
|
||||
}) async {
|
||||
try {
|
||||
final response = await _apiClient.post(
|
||||
ApiPath.login,
|
||||
data: {'email': email, 'password': password},
|
||||
);
|
||||
|
||||
if (response.data['code'] == 401) {
|
||||
return DC.error(
|
||||
AuthFailure.serverError(
|
||||
ApiFailure.unauthorized('Incorrect email or password'),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
final dto = LoginDto.fromJson(response.data['data']);
|
||||
return DC.data(dto);
|
||||
} on ApiFailure catch (e, s) {
|
||||
log('login', name: _logName, error: e, stackTrace: s);
|
||||
return DC.error(AuthFailure.serverError(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
part of '../auth_dtos.dart';
|
||||
|
||||
@freezed
|
||||
class LoginDto with _$LoginDto {
|
||||
const LoginDto._();
|
||||
|
||||
const factory LoginDto({
|
||||
@JsonKey(name: "token") String? token,
|
||||
@JsonKey(name: "refresh_token") String? refreshToken,
|
||||
@JsonKey(name: "expires_at") String? expiresAt,
|
||||
@JsonKey(name: "refresh_expires_at") String? refreshExpiresAt,
|
||||
@JsonKey(name: "user") UserDto? user,
|
||||
}) = _LoginDto;
|
||||
|
||||
factory LoginDto.fromJson(Map<String, dynamic> json) =>
|
||||
_$LoginDtoFromJson(json);
|
||||
|
||||
/// mapping ke domain
|
||||
Login toDomain() => Login(
|
||||
token: token ?? '',
|
||||
refreshToken: refreshToken ?? '',
|
||||
expiresAt: expiresAt ?? '',
|
||||
refreshExpiresAt: refreshExpiresAt ?? '',
|
||||
user:
|
||||
user?.toDomain() ??
|
||||
User(
|
||||
id: '',
|
||||
organizationId: '',
|
||||
outletId: '',
|
||||
name: '',
|
||||
email: '',
|
||||
role: '',
|
||||
permissions: {},
|
||||
isActive: false,
|
||||
createdAt: '',
|
||||
updatedAt: '',
|
||||
),
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
part of '../auth_dtos.dart';
|
||||
|
||||
@freezed
|
||||
class UserDto with _$UserDto {
|
||||
const UserDto._();
|
||||
|
||||
const factory UserDto({
|
||||
@JsonKey(name: "id") String? id,
|
||||
@JsonKey(name: "organization_id") String? organizationId,
|
||||
@JsonKey(name: "outlet_id") String? outletId,
|
||||
@JsonKey(name: "name") String? name,
|
||||
@JsonKey(name: "email") String? email,
|
||||
@JsonKey(name: "role") String? role,
|
||||
@JsonKey(name: "permissions") Map<String, dynamic>? permissions,
|
||||
@JsonKey(name: "is_active") bool? isActive,
|
||||
@JsonKey(name: "created_at") String? createdAt,
|
||||
@JsonKey(name: "updated_at") String? updatedAt,
|
||||
}) = _UserDto;
|
||||
|
||||
factory UserDto.fromJson(Map<String, dynamic> json) =>
|
||||
_$UserDtoFromJson(json);
|
||||
|
||||
User toDomain() => User(
|
||||
id: id ?? '',
|
||||
organizationId: organizationId ?? '',
|
||||
outletId: outletId ?? '',
|
||||
name: name ?? '',
|
||||
email: email ?? '',
|
||||
role: role ?? '',
|
||||
permissions: permissions ?? {},
|
||||
isActive: isActive ?? false,
|
||||
createdAt: createdAt ?? '',
|
||||
updatedAt: updatedAt ?? '',
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:injectable/injectable.dart';
|
||||
|
||||
import '../../../domain/auth/auth.dart';
|
||||
import '../datasources/local_data_provider.dart';
|
||||
import '../datasources/remote_data_provider.dart';
|
||||
|
||||
@Injectable(as: IAuthRepository)
|
||||
class AuthRepository implements IAuthRepository {
|
||||
final AuthRemoteDataProvider _dataProvider;
|
||||
final AuthLocalDataProvider _localDataProvider;
|
||||
final String _logName = 'AuthRepository';
|
||||
|
||||
AuthRepository(this._dataProvider, this._localDataProvider);
|
||||
|
||||
@override
|
||||
Future<Either<AuthFailure, Login>> login({
|
||||
required String email,
|
||||
required String password,
|
||||
}) async {
|
||||
try {
|
||||
final result = await _dataProvider.login(
|
||||
email: email,
|
||||
password: password,
|
||||
);
|
||||
|
||||
if (result.hasError) {
|
||||
return left(result.error!);
|
||||
}
|
||||
|
||||
final auth = result.data!.toDomain();
|
||||
|
||||
await _localDataProvider.saveToken(auth.token);
|
||||
await _localDataProvider.saveCurrentUser(result.data!.user!);
|
||||
|
||||
return right(auth);
|
||||
} catch (e, s) {
|
||||
log('loginError', name: _logName, error: e, stackTrace: s);
|
||||
return left(const AuthFailure.unexpectedError());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user