import 'package:dio/dio.dart'; import 'package:qadirneyriz/config/config.dart'; import 'package:qadirneyriz/setting/setting.dart'; import 'package:qadirneyriz/utils/result/result.dart'; class AuthServices { Future loginApi( {required String mobile, String? password, String? otp, required String fcm_token}) async { assert(password != null || otp != null); try { Map headers = {"Accept": "application/json"}; FormData? formData; formData = password != null ? FormData.fromMap( {"mobile": mobile, "password": password, "device_id": fcm_token}) : FormData.fromMap( {"mobile": mobile, "otp": otp, "device_id": fcm_token}); print('${formData.fields} resData'); final res = await Dio().post("${config.network.baseUrl}login", data: formData, options: Options(headers: headers)); if (res.statusCode == 200 || res.statusCode == 201) { setting.userLocalDb.saveUserField('token', res.data['token']); setting.userLocalDb.saveUserField('mobile', res.data['mobile']); setting.userLocalDb.saveUserField('name', res.data['name']); setting.userLocalDb.saveUserField('role', res.data['role']); setting.userLocalDb.saveUserField('access', res.data['access']); return Result(isOk: true, message: res.data['msg']); } } on DioException catch (e) { print(e); return Result( isOk: false, errors: e.response!.data['errors'], message: e.response!.data['msg']); } return const Result(isOk: false); } Future sendOtpApi({required String mobile}) async { try { Map headers = {"Accept": "application/json"}; FormData? formData; formData = FormData.fromMap({"mobile": mobile}); final res = await Dio().post("${config.network.baseUrl}sendOtp", data: formData, options: Options(headers: headers)); if (res.statusCode == 200 || res.statusCode == 201) { return Result(isOk: true, message: res.data['msg']); } } on DioException catch (e) { return Result( isOk: false, errors: e.response!.data['errors'], message: e.response!.data['msg']); } return const Result(isOk: false); } }