Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 
 
 

64 righe
2.3 KiB

  1. import 'package:dio/dio.dart';
  2. import 'package:qadirneyriz/config/config.dart';
  3. import 'package:qadirneyriz/setting/setting.dart';
  4. import 'package:qadirneyriz/utils/result/result.dart';
  5. class AuthServices {
  6. Future<Result?> loginApi(
  7. {required String mobile,
  8. String? password,
  9. String? otp,
  10. required String fcm_token}) async {
  11. assert(password != null || otp != null);
  12. try {
  13. Map<String, String> headers = {"Accept": "application/json"};
  14. FormData? formData;
  15. formData = password != null
  16. ? FormData.fromMap(
  17. {"mobile": mobile, "password": password, "device_id": fcm_token})
  18. : FormData.fromMap(
  19. {"mobile": mobile, "otp": otp, "device_id": fcm_token});
  20. print('${formData.fields} resData');
  21. final res = await Dio().post("${config.network.baseUrl}login",
  22. data: formData, options: Options(headers: headers));
  23. if (res.statusCode == 200 || res.statusCode == 201) {
  24. setting.userLocalDb.saveUserField('token', res.data['token']);
  25. setting.userLocalDb.saveUserField('mobile', res.data['mobile']);
  26. setting.userLocalDb.saveUserField('name', res.data['name']);
  27. setting.userLocalDb.saveUserField('role', res.data['role']);
  28. setting.userLocalDb.saveUserField('access', res.data['access']);
  29. return Result(isOk: true, message: res.data['msg']);
  30. }
  31. } on DioException catch (e) {
  32. print(e);
  33. return Result(
  34. isOk: false,
  35. errors: e.response!.data['errors'],
  36. message: e.response!.data['msg']);
  37. }
  38. return const Result(isOk: false);
  39. }
  40. Future<Result?> sendOtpApi({required String mobile}) async {
  41. try {
  42. Map<String, String> headers = {"Accept": "application/json"};
  43. FormData? formData;
  44. formData = FormData.fromMap({"mobile": mobile});
  45. final res = await Dio().post("${config.network.baseUrl}sendOtp",
  46. data: formData, options: Options(headers: headers));
  47. if (res.statusCode == 200 || res.statusCode == 201) {
  48. return Result(isOk: true, message: res.data['msg']);
  49. }
  50. } on DioException catch (e) {
  51. return Result(
  52. isOk: false,
  53. errors: e.response!.data['errors'],
  54. message: e.response!.data['msg']);
  55. }
  56. return const Result(isOk: false);
  57. }
  58. }