Files
Traders_Circuit/lib/data/network/network_api_services.dart
rajshinde046 c0ad2d6b91 bloc
2024-05-02 16:56:33 +05:30

164 lines
4.9 KiB
Dart

import 'dart:convert';
import 'dart:developer';
import 'package:flutter/foundation.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:dio/dio.dart';
import 'package:traderscircuit/Utils/utils.dart';
import '../../Utils/base_manager.dart';
import 'base_api_services.dart';
class NetworkApiServices {
Dio dio = Dio();
String basicAuth = 'Basic ' +
base64.encode(
utf8.encode('traderCircuitUser:71%@L%es^bUX94`J9XT*@bh,._WWM{'));
@override
Future<ResponseData> getApi(String url, {bool isAuth = false}) async {
if (kDebugMode) {
print("api url is >>> $url");
}
Response response;
SharedPreferences prefs = await SharedPreferences.getInstance();
String? token = prefs.getString('accessToken').toString();
log(token);
try {
response = await dio.get(url,
options: (token == null || token == "")
? Options(
headers: {
"Authorization": basicAuth,
},
)
: Options(headers: {
"Authorization": basicAuth,
'access-token': token,
}));
if (response.statusCode == 200) {
return ResponseData<dynamic>(
"success",
data: response.data,
ResponseStatus.SUCCESS,
);
} else {
try {
return ResponseData<dynamic>(
response.data['message'].toString(), ResponseStatus.FAILED);
} catch (_) {
return ResponseData<dynamic>(
response.statusMessage!, ResponseStatus.FAILED);
}
}
} on Exception catch (e) {
if (e is DioException) {
if (e.response == null) {
// Get.to(() => const ErrorScreen());
} else {}
}
return ResponseData<dynamic>(
'Oops something Went Wrong', ResponseStatus.FAILED);
}
}
@override
Future<ResponseData> postApi(
data,
String url,
) async {
if (kDebugMode) {
print("data >>> $data");
print("api url is >>> $url");
}
Response response;
SharedPreferences prefs = await SharedPreferences.getInstance();
String? token = prefs.getString('accessToken');
try {
response = await dio.post(url,
data: data,
options: (token == null || token == "")
? Options(
headers: {
"Authorization": basicAuth,
},
)
: Options(headers: {
"Authorization": basicAuth,
'access-token': token,
}));
} on Exception catch (e) {
if (e is DioException) {
log(e.response.toString());
if (e.response == null) {
// Get.to(() => const ErrorScreen());
}
}
return ResponseData<dynamic>(
'Oops something Went Wrong', ResponseStatus.FAILED);
}
if (response.statusCode == 200) {
return ResponseData<dynamic>("success", ResponseStatus.SUCCESS,
data: response.data);
} else if (response.statusCode == 203) {
print(response.data);
return ResponseData<dynamic>("validation", ResponseStatus.PRIVATE,
data: response.data);
} else if (response.statusCode == 202) {
print(response.data);
return ResponseData<dynamic>("success", ResponseStatus.PRIVATE,
data: response.data);
} else {
try {
return ResponseData<dynamic>(
response.data['message'].toString(), ResponseStatus.FAILED);
} catch (_) {
return ResponseData<dynamic>(
response.statusMessage!, ResponseStatus.FAILED);
}
}
}
@override
Future<ResponseData> deleteApi(String url, data) async {
if (kDebugMode) {
print("api url is >>> $url");
}
Response response;
SharedPreferences prefs = await SharedPreferences.getInstance();
String? token = prefs.getString('accessToken').toString();
log(token);
try {
response = await dio.delete(url,
data: data,
options: Options(headers: {
'authorization': "Bearer $token",
// "device-id": deviceId
}));
} on Exception catch (_) {
return ResponseData<dynamic>(
'Oops something Went Wrong', ResponseStatus.FAILED);
}
if (response.statusCode == 200) {
return ResponseData<dynamic>(
"success",
data: response.data,
ResponseStatus.SUCCESS,
);
} else if (response.statusCode == 203) {
Utils.showToast(response.data["message"]);
return ResponseData<dynamic>("validation", ResponseStatus.PRIVATE,
data: response.data);
} else {
try {
return ResponseData<dynamic>(
response.data['message'].toString(), ResponseStatus.FAILED);
} catch (_) {
return ResponseData<dynamic>(
response.statusMessage!, ResponseStatus.FAILED);
}
}
}
}