login.dart 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import 'dart:convert';
  2. import 'package:app_business/generated/base.pb.dart' as pb;
  3. import 'package:app_business/service/api.dart';
  4. import 'package:get/get.dart';
  5. import 'package:track_common/view.dart';
  6. class LoginControllerImp extends LoginController {
  7. final _api = Get.find<ApiService>();
  8. @override
  9. Future<void> authSendCodeToPhone(String phone) async {
  10. return _api.authSendCodeToPhone(phone, SmsType.Login);
  11. }
  12. @override
  13. Future<Duration> getCodeLifeTime(String phone) {
  14. return _api.getSmsSendLeftTime(phone);
  15. }
  16. @override
  17. Future<void> signIn(String phone, String code) async {
  18. return _api.signIn(phone, code, '');
  19. }
  20. @override
  21. Future<(String, String)> getQrCode() async {
  22. final r = await _api.stub.toGetSignInQrCode(DefaultRequest());
  23. final json = const JsonEncoder().convert({'KeyType': 2, 'code': r.qrCode});
  24. return (json, r.qrCode);
  25. }
  26. @override
  27. Future<bool> isQrCodeOk(String codeValue) async {
  28. if (codeValue.isEmpty) {
  29. return false;
  30. }
  31. final r =
  32. await _api.stub.toQrCodeSignIn(pb.QrCodeInfo()..qrCode = qrCodeValue);
  33. final token = r.token.replaceAll("\"", "").trim();
  34. if (token.isEmpty) {
  35. return false;
  36. }
  37. _api.token = r.token;
  38. return true;
  39. }
  40. }