Files
Traders_Circuit/lib/data/network/network_api_services.dart
2024-04-08 15:05:50 +05:30

147 lines
4.3 KiB
Dart

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 extends BaseApiServices {
Dio dio = Dio();
@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('token').toString();
log(token);
try {
response = await dio.get(url,
options: Options(headers: {
isAuth ? 'authorization' : "Bearer $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, {bool isAuth = false}) async {
if (kDebugMode) {
print("data >>> $data");
print("api url is >>> $url");
}
Response response;
SharedPreferences prefs = await SharedPreferences.getInstance();
String? token = prefs.getString('token');
try {
response = await dio.post(url,
data: data,
options: Options(headers: {
isAuth ? 'authorization' : "Bearer $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('token').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);
}
}
}
}