import 'package:flutter/material.dart'; import 'package:rasadyar_core/core.dart'; class DioErrorHandler { void handle(DioException error) { switch (error.response?.statusCode) { case 401: _handleGeneric(error); break; case 403: _handleGeneric(error); break; case 410: _handle410(); break; default: _handleGeneric(error); } } //wrong password/user name => "detail": "No active account found with the given credentials" - 401 void _handle410() { Get.showSnackbar(_errorSnackBar('نام کاربری یا رمز عبور اشتباه است')); } //wrong captcha => "detail": "Captcha code is incorrect" - 403 void _handle403() {} void _handleGeneric(DioException error) { Get.showSnackbar( _errorSnackBar( error.response?.data.keys.first == 'is_user' ? 'کاربر با این شماره تلفن وجود ندارد' : error.response?.data[error.response?.data.keys.first] ?? 'خطا در برقراری ارتباط با سرور', ), ); } GetSnackBar _errorSnackBar(String message) { return GetSnackBar( titleText: Text( 'خطا', style: AppFonts.yekan14.copyWith(color: Colors.white), ), messageText: Text( message, style: AppFonts.yekan12.copyWith(color: Colors.white), ), backgroundColor: AppColor.error, margin: EdgeInsets.symmetric(horizontal: 12, vertical: 8), borderRadius: 12, duration: Duration(milliseconds: 3500), snackPosition: SnackPosition.TOP, ); } }