Untitled

 avatar
unknown
dart
a year ago
2.8 kB
7
Indexable
import 'package:dio/dio.dart';
import 'package:flutter/foundation.dart';
import '../data/repositories/local/sharedpreferences/sharepreferences_class.dart';
import '../utils/conts/api.dart';

class ApiService {
  static Dio? _dio;

  static Dio? getDio() {
    if (_dio == null) {
        
        ///amar eikhane ei data gula sharedprefernce theke nite hobe....but sekhetre "static Future<Dio?> getDio() async{}" eit korte hobe..r eita kora jacce na
        
        var token = await SharedPreferencesClass.getValue(SharedPreferencesClass.tokenKey);
        var cookieName = await SharedPreferencesClass.getValue(SharedPreferencesClass.cookieKey);
        var tenant = await SharedPreferencesClass.getValue(SharedPreferencesClass.tenantKey);
        
      BaseOptions options = BaseOptions(
          baseUrl: Api.baseUrl,
          headers: {
            'Tenant': 'acme.saifulshuvo.xyz',
            'Content-Type': 'application/json',
            'Authorization': "${Api.bearerToken}",
            'X-Requested-With': 'XMLHttpRequest',
            'Accept-Language': 'en',
          });

      _dio = Dio(options);

      _dio!.interceptors
          .add(InterceptorsWrapper(onRequest: (options, handler) async {
        if (kDebugMode) {
          print('Base Url : ${options.baseUrl}');
          print('End Point : ${options.path}');
          print('Method : ${options.method}');
          print('Data : ${options.data}');
        }

        // var token = await SharedPreferencesClass.getValue(SharedPreferencesClass.tokenKey);
        // var cookieName = await SharedPreferencesClass.getValue(SharedPreferencesClass.cookieKey);
        // var tenant = await SharedPreferencesClass.getValue(SharedPreferencesClass.tenantKey);

        if (token != null) {
          if (kDebugMode) {
            print(("token :: $token"));
          }
          options.headers = {
            'Tenant': 'acme.saifulshuvo.xyz',
            'Content-Type': 'application/json',
            'Authorization': "${Api.bearerToken}",
            'X-Requested-With': 'XMLHttpRequest',
            'Accept-Language': 'en',
            'cookie': cookieName,
          };
        }
        return handler.next(options);
      }, onResponse: (response, handler) {
        if (kDebugMode) {
          print('response data : ${response.data}');
        }
        return handler.next(response);
      }, onError: (DioException e, handler) {
        if (kDebugMode) {
          print('Error Response : ${e.response}');
          print('Error message : ${e.message}');
          print('Error type : ${e.type.name}');
        }
        return handler.next(e);
      }));
    }
    return _dio;
  }
}
Editor is loading...
Leave a Comment