import 'dart:convert'; import 'dart:developer'; import 'package:dio/dio.dart'; import 'package:flutter/foundation.dart'; import 'package:get/get.dart' hide Response; import 'package:regroup/Global.dart'; import 'package:regroup/Common/base_manager.dart'; import 'package:regroup/Utils/dialogs.dart'; import 'package:regroup/resources/routes/route_name.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:http/http.dart' as http; import '../../entry_point_controller.dart'; class NetworkApiServices { Dio dio = Dio(); final controllerEntryPoint = Get.put(EntryPointController()); String basicAuth = 'Basic ${base64.encode(utf8.encode('RegroupUserName:71%@L%es^bUX94`J9XT*@bh,._WWM{\$%^^&&'))}'; Future getApi(String url, {bool optionalpar = false}) async { if (kDebugMode) { print("api url is >>> $url"); } Response response; SharedPreferences prefs = await SharedPreferences.getInstance(); token = prefs.getString('access-token'); log(token.toString()); try { response = await dio.get( url, options: // Options(headers: { // "authorization": "Bearer $token", // 'content-Type': 'application/json', // }) optionalpar ? Options( headers: { "authorization": basicAuth, }, ) : Options( headers: { 'authorization': basicAuth, 'access-token': token }, ), ); } on Exception catch (e) { // log(e.toString()); if (e is DioException) { log(e.response.toString()); if (e.response == null) { return ResponseData( 'Oops something Went Wrong, Please try again!', ResponseStatus.FAILED, ); } if (e.response!.statusCode == 401) { if (e.response!.data['message'] == 'Invalid token') { // prefs.remove('access-token'); // await prefs.clear(); // Get.offNamed(RouteName.loginScreen); utils.showToast('Please login again'); } else { return ResponseData( 'Oops something Went Wrong, Please try again!', ResponseStatus.FAILED, ); } } if (e.response!.statusCode == 403) { if (e.response!.data['message'] is List) { return ResponseData( e.response!.data['message'][0]!, ResponseStatus.FAILED, data: e.response!.data); } else { return ResponseData( e.response!.data['message'], ResponseStatus.FAILED, data: e.response!.data); } } } return ResponseData( 'Oops something Went Wrong', ResponseStatus.FAILED); } // on Exception catch (e) { // if (e is DioException) { // if (e.response!.statusCode == 403) { // return ResponseData( // e.response!.data['message'][0]!, ResponseStatus.FAILED, // data: e.response!.data); // } // } // return ResponseData( // 'Oops something Went Wrong', // ResponseStatus.FAILED, // ); // } if (response.statusCode == 200) { return ResponseData("success", ResponseStatus.SUCCESS, data: response.data); } else if (response.statusCode == 201) { return ResponseData("success", ResponseStatus.SUCCESS, data: response.data); } else if (response.statusCode == 404) { return ResponseData("error", ResponseStatus.ERROR, data: response.data); } else { try { return ResponseData( response.data['message'].toString(), ResponseStatus.FAILED); } catch (_) { return ResponseData( response.statusMessage!, ResponseStatus.FAILED); } } } // Future postApi( // data, // String url, // {bool optionalpar = false} // ) async { // if (kDebugMode) { // print("data >>> $data"); // print("api url is >>> $url"); // } // Response response; // SharedPreferences prefs = await SharedPreferences.getInstance(); // // ignore: unused_local_variable // String? token = prefs.getString('token').toString(); // print("token is $token"); // log(token.toString()); // try { // response = await dio.post(url, // data: data, // options: optionalpar // ? // Options( // headers: { // "authorization": basicAuth, // }, // ) // : // Options( // headers: {'authorization': basicAuth, 'access-token': token}, // ), // ); // log(response.toString()); // } on Exception catch (e) { // if (e is DioException) { // log(e.response.toString()); // } // return ResponseData( // 'Opps something went wrong', ResponseStatus.FAILED); // } // // if (kDebugMode) { // // print(response); // // } // // print("response in post $response"); // if (response.statusCode == 200) { // // print(response.data); // return ResponseData("success", ResponseStatus.SUCCESS, // data: response.data); // } else { // try { // return ResponseData( // response.data['message'].toString(), ResponseStatus.FAILED); // } catch (_) { // return ResponseData( // response.statusMessage!, ResponseStatus.FAILED); // } // } // } //New post api @override Future postApi(data, String url, {bool optionalpar = false}) async { if (kDebugMode) { print("data >>> $data"); print("api url is >>> $url"); } Response response; SharedPreferences prefs = await SharedPreferences.getInstance(); String? token = prefs.getString('access-token'); try { response = await dio.post( url, data: data, options: optionalpar // (token != null) ? Options( headers: { "authorization": basicAuth, }, ) : Options( headers: {'authorization': basicAuth, 'access-token': token}, ), ); log(response.toString()); } on Exception catch (e) { if (e is DioException) { log(e.response.toString()); if (e.response == null) { return ResponseData( 'Oops something Went Wrong, Please try again!', ResponseStatus.FAILED, ); } if (e.response!.statusCode == 401) { if (e.response!.data['message'] == 'Invalid token') { prefs.remove('access-token'); await prefs.clear(); Get.offNamed(RouteName.loginScreen); utils.showToast('Please login again'); } else { return ResponseData( 'Oops something Went Wrong, Please try again!', ResponseStatus.FAILED, ); } // Get.toNamed(RouteName.login); // return ResponseData( // 'Oops something Went Wrong, Please try again!', // ResponseStatus.FAILED, // ); } if (e.response!.statusCode == 403) { if (e.response!.data['message'] is List) { return ResponseData( e.response!.data['message'][0]!, ResponseStatus.FAILED, data: e.response!.data); } else if (e.response!.data['message']['name'] is List) { return ResponseData( e.response!.data['message']['name'][0]!, ResponseStatus.FAILED, data: e.response!.data); } else { return ResponseData( e.response!.data['message'], ResponseStatus.FAILED, data: e.response!.data); } } } return ResponseData( 'Oops something Went Wrong', ResponseStatus.FAILED, ); } if (response.statusCode == 200 || response.statusCode == 201) { return ResponseData("success", ResponseStatus.SUCCESS, data: response.data); } else if (response.statusCode == 203) { print(response.data); return ResponseData("success", ResponseStatus.PRIVATE, data: response.data); } else { try { return ResponseData( response.data['message'].toString(), ResponseStatus.FAILED); } catch (_) { return ResponseData( response.statusMessage!, ResponseStatus.FAILED); } } } Future postFileUploadApi({data, required String url}) async { if (kDebugMode) { print("data >>> $data"); print("api url is >>> $url"); } Response response; SharedPreferences prefs = await SharedPreferences.getInstance(); // ignore: unused_local_variable String? token = prefs.getString('access-token').toString(); try { response = await dio.post(url, data: data, options: Options(headers: {"authorization": "Bearer $token"})); } on Exception catch (_) { return ResponseData( 'Opps something went wrong', ResponseStatus.FAILED); } if (kDebugMode) { print(response); } print("response in post $response"); if (response.statusCode == 200) { // print(response.data); return ResponseData("success", ResponseStatus.SUCCESS, data: response.data); } else { try { return ResponseData( response.data['message'].toString(), ResponseStatus.FAILED); } catch (_) { return ResponseData( response.statusMessage!, ResponseStatus.FAILED); } } } Future> postApiHttp( String token, String url, Map body) async { // var headers = { // 'Authorization': 'Bearer 1867|aBb92qswYsEzQa8LJayiuQw6B3Wofuj6iluUumLx', // 'Authorization': 'Bearer 189|yeRLynwInflhfnVObT7dd7R0Ywv91AIlxIKXoiAv', // 'Cookie': 'laravel_session=eyJpdiI6ImcwS2NYNlJYam4wcU1YUXJsYWZsb2c9PSIsInZhbHVlIjoiK0hvT3c5NmZFQ0NDajYxTUFaaVluWkpYbUkwYk1JbldyTVJwZitMN05zWnliaVdBNWZjTXpyVG5UODM1MTBaMzQwUCtNc3lGak5MQWRZamh2dWIvdzIxQnNVVWQrQi9NUi9YTS9PQWgxMlZHTENUNU0zY0VVazluNEplTFFvbGgiLCJtYWMiOiJkNjA0NjA4YWJhZDkxODA0YmQ2MTViNzc1MTg4OWRiODMzMjI5OGE0ZDI3MDRhMTAzM2E1MGY4ODQyMjI1NGIxIiwidGFnIjoiIn0%3D' // }; // controllerEntryPoint.logedIn! // ? // headers = {"authorization": "Bearer $token"}; // : headers = { // "authorization": // "Bearer 189|yeRLynwInflhfnVObT7dd7R0Ywv91AIlxIKXoiAv" // }; var headers = { 'Accept': 'application/json', 'Authorization': token, // 'Cookie': 'jerichoalternatives_session=eyJpdiI6Ik5KTWVUUnM2elR0b0Z0SWZneWY2Nmc9PSIsInZhbHVlIjoiY0s5WjV5UmJyZ3J2UUY1enY4KzZEblg5RmxWUm1KdXpmVWxQVTRKNUgyMThqRlJPK1lrcVhXMzJLMkhjSW5BdFJhNEgyTWFZQmM3Sll0aG52d1F4RGpSM0l4TlFWWlVPaUhpVFVsQ3lnaW8rSXJSY2Y2aG8ydFhqck8xTmlDaUMiLCJtYWMiOiI2MmNhZWZjYmZkMzBlYzhhZjcxNzRhMmM1OGJhYmRjM2JkOGMzM2Y3ZGFmMWViNWIyOTYyODY5ZDk3MmZmNGI3IiwidGFnIjoiIn0%3D' }; var request = http.MultipartRequest('POST', Uri.parse(url)); request.fields.addAll(body); request.headers.addAll(headers); http.StreamedResponse response = await request.send(); print(response.statusCode); if (response.statusCode == 200) { var resp = await response.stream.bytesToString(); var jsonResp = jsonDecode(resp); print(jsonResp); return ResponseData("success", ResponseStatus.SUCCESS, data: jsonResp); // return await response.stream.bytesToString(); } else if (response.statusCode == 201) { var resp = await response.stream.bytesToString(); var jsonResp = jsonDecode(resp); print(jsonResp); return ResponseData(jsonResp["message"], ResponseStatus.PRIVATE, data: jsonResp); } else if (response.statusCode == 400) { var resp = await response.stream.bytesToString(); var jsonResp = jsonDecode(resp); print(jsonResp); return ResponseData( jsonResp["message"], ResponseStatus.FAILED, ); } else if (response.statusCode == 422) { var resp = await response.stream.bytesToString(); var jsonResp = jsonDecode(resp); print(jsonResp); var errorMessage = jsonResp["errors"]["email2"].join(", ") + "\n" + jsonResp["errors"]["contact_number2"].join(", "); // return ResponseData( // jsonResp["errors"][0]["email2"] + // jsonResp["errors"][0]["contact_number2"], // ResponseStatus.PRIVATE, // ); return ResponseData( errorMessage, ResponseStatus.PRIVATE, ); } else if (response.statusCode == 500) { var resp = await response.stream.bytesToString(); var jsonResp = jsonDecode(resp); print(jsonResp); return ResponseData( jsonResp["message"], ResponseStatus.FAILED, ); } else { return ResponseData( response.reasonPhrase!, ResponseStatus.FAILED, ); } } Future postslugApi(String url) async { if (kDebugMode) { print("api url is >>> $url"); } Response response; SharedPreferences prefs = await SharedPreferences.getInstance(); // String? token = prefs.getString('token'); String? token = prefs.getString('access-token').toString(); print("token is $token"); try { response = await dio.post(url, options: Options(headers: {"authorization": "Bearer $token"})); } on Exception catch (_) { return ResponseData( 'Oops something Went Wrong', ResponseStatus.FAILED); } if (response.statusCode == 200) { return ResponseData("success", ResponseStatus.SUCCESS, data: response.data); } else { try { return ResponseData( response.data['message'].toString(), ResponseStatus.FAILED); } catch (_) { return ResponseData( response.statusMessage!, ResponseStatus.FAILED); } } } }