Created
March 8, 2022 11:34
-
-
Save locskot/a73ab7bca5819795537f40ab71f61bfb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:driver3/di/locator.dart'; | |
import 'package:driver3/extensions/string_ext.dart'; | |
import 'package:driver3/interactors/abs_interactor.dart'; | |
import 'package:driver3/models/common_response.dart'; | |
import 'package:driver3/network/iway_api.dart'; | |
import 'package:driver3/utils/constants.dart'; | |
import 'package:driver3/utils/manager/device_manager.dart'; | |
import 'package:shared_preferences/shared_preferences.dart'; | |
abstract class LoginInteractor extends AbsInteractor { | |
LoginInteractor(); | |
factory LoginInteractor.api() => LoginInteractorApi(); | |
Future<CommonResult> resetPassword({String? login}); | |
Future<CommonResult> auth({Map<String, dynamic>? map}); | |
Future<CommonResult> fetchDriver(); | |
Future<CommonResult> postFcmToken({required String fcmToken}); | |
} | |
class LoginInteractorApi extends LoginInteractor { | |
final iwayApi = locator<IwayApi>(); | |
final sharedPreferences = locator<SharedPreferences>(); | |
@override | |
Future<CommonResult> resetPassword({String? login}) async { | |
final future = iwayApi.resetPassword({'login': login}); | |
final result = await super.send(future: future, requestUrl: RequestUrl.ResetPassword); | |
return result; | |
} | |
@override | |
Future<CommonResult> auth({Map<String, dynamic>? map}) async { | |
final future = iwayApi.authorize(map); | |
final result = await super.send(future: future, requestUrl: RequestUrl.Auth); | |
return result; | |
} | |
@override | |
Future<CommonResult> fetchDriver() async { | |
final future = iwayApi.fetchDriver(); | |
final result = await super.send(future: future, requestUrl: RequestUrl.Driver); | |
return result; | |
} | |
@override | |
Future<CommonResult> postFcmToken({required String fcmToken}) async { | |
final di = await getDeviceInfo(); | |
await sharedPreferences.setString(PUSH_TOKEN, fcmToken); | |
final pushMapRequest = { | |
'os': di.os, | |
'app_version': di.packageInfo.version, | |
'hardware_id': di.hardwareId, | |
'push_token': fcmToken, | |
'lang': currentLocale, | |
}; | |
final future = iwayApi.postFcmToken(pushMapRequest); | |
final result = await super.send(future: future, requestUrl: RequestUrl.FcmToken); | |
return result; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment