add cross login from other regional
This commit is contained in:
59
lib/provider/aliases_provider.dart
Normal file
59
lib/provider/aliases_provider.dart
Normal file
@@ -0,0 +1,59 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'dio_provider.dart';
|
||||
import '../repository/aliases_repository.dart';
|
||||
import '../repository/base_repository.dart';
|
||||
import '../model/aliases_model.dart';
|
||||
|
||||
|
||||
abstract class AliasesState extends Equatable {
|
||||
final DateTime date;
|
||||
const AliasesState(this.date);
|
||||
@override
|
||||
List<Object?> get props => [date];
|
||||
}
|
||||
|
||||
class AliasesStateInit extends AliasesState {
|
||||
AliasesStateInit() : super(DateTime.now());
|
||||
}
|
||||
|
||||
class AliasesStateLoading extends AliasesState {
|
||||
AliasesStateLoading() : super(DateTime.now());
|
||||
}
|
||||
|
||||
class AliasesStateError extends AliasesState {
|
||||
final String? message;
|
||||
AliasesStateError({
|
||||
required this.message,
|
||||
}) : super(DateTime.now());
|
||||
}
|
||||
|
||||
class AliasesStateDone extends AliasesState {
|
||||
final List<AliasesModel> model;
|
||||
AliasesStateDone({
|
||||
required this.model,
|
||||
}) : super(DateTime.now());
|
||||
}
|
||||
|
||||
class AliasesNotifier extends StateNotifier<AliasesState> {
|
||||
final Ref ref;
|
||||
AliasesNotifier({
|
||||
required this.ref,
|
||||
}) : super(AliasesStateInit());
|
||||
|
||||
void getAliases({required String token}) async {
|
||||
try {
|
||||
state = AliasesStateLoading();
|
||||
final resp = await AliasesRepository(dio: ref.read(dioProvider)).getAliases(token: token);
|
||||
state = AliasesStateDone(model: resp);
|
||||
} catch (e) {
|
||||
if (e is BaseRepositoryException) {
|
||||
state = AliasesStateError(message: e.message ?? "");
|
||||
} else {
|
||||
state = AliasesStateError(message: e.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final aliasesDataProvider = StateNotifierProvider<AliasesNotifier, AliasesState>((ref) => AliasesNotifier(ref: ref));
|
||||
62
lib/provider/pindah_branch_provider.dart
Normal file
62
lib/provider/pindah_branch_provider.dart
Normal file
@@ -0,0 +1,62 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'dio_provider.dart';
|
||||
import '../repository/aliases_repository.dart';
|
||||
import '../repository/base_repository.dart';
|
||||
|
||||
abstract class ReqCabangState extends Equatable {
|
||||
final DateTime date;
|
||||
const ReqCabangState(this.date);
|
||||
@override
|
||||
List<Object?> get props => [date];
|
||||
}
|
||||
|
||||
class ReqCabangStateInit extends ReqCabangState {
|
||||
ReqCabangStateInit() : super(DateTime.now());
|
||||
}
|
||||
|
||||
class ReqCabangStateLoading extends ReqCabangState {
|
||||
ReqCabangStateLoading() : super(DateTime.now());
|
||||
}
|
||||
|
||||
class ReqCabangStateError extends ReqCabangState {
|
||||
final String? message;
|
||||
ReqCabangStateError({
|
||||
required this.message,
|
||||
}) : super(DateTime.now());
|
||||
}
|
||||
|
||||
class ReqCabangStateDone extends ReqCabangState {
|
||||
final String model;
|
||||
ReqCabangStateDone({
|
||||
required this.model,
|
||||
}) : super(DateTime.now());
|
||||
}
|
||||
|
||||
class ReqCabangNotifier extends StateNotifier<ReqCabangState> {
|
||||
final Ref ref;
|
||||
ReqCabangNotifier({
|
||||
required this.ref,
|
||||
}) : super(ReqCabangStateInit());
|
||||
|
||||
void requestTokenCabang({
|
||||
required String token,
|
||||
required String userID,
|
||||
required String username,
|
||||
required String targetUrl
|
||||
}) async {
|
||||
try {
|
||||
state = ReqCabangStateLoading();
|
||||
final resp = await AliasesRepository(dio: ref.read(dioProvider)).requestToken(token: token, userID: userID, username: username, targetUrl: targetUrl);
|
||||
state = ReqCabangStateDone(model: resp);
|
||||
} catch (e) {
|
||||
if (e is BaseRepositoryException) {
|
||||
state = ReqCabangStateError(message: e.message ?? "");
|
||||
} else {
|
||||
state = ReqCabangStateError(message: e.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final reqCabangTokenProvider = StateNotifierProvider<ReqCabangNotifier, ReqCabangState>((ref) => ReqCabangNotifier(ref: ref));
|
||||
Reference in New Issue
Block a user