apiservices.dart 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. // ignore_for_file: unnecessary_question_mark, non_constant_identifier_names, unused_local_variable, prefer_interpolation_to_compose_strings, use_build_context_synchronously
  2. import 'dart:io';
  3. import 'dart:convert';
  4. import 'package:gozap_package/models/common.dart';
  5. import 'package:provider/provider.dart';
  6. import 'package:toast/toast.dart';
  7. import 'package:flutter/material.dart';
  8. import 'package:http/http.dart' as http;
  9. import 'package:connectivity_plus/connectivity_plus.dart';
  10. class APIService {
  11. BuildContext context;
  12. APIService(this.context);
  13. Future<bool> GetConnect() async {
  14. var connectivityResult = await (Connectivity().checkConnectivity());
  15. bool isInternetOn = false;
  16. if (connectivityResult == ConnectivityResult.none) {
  17. isInternetOn = false;
  18. } else if (connectivityResult == ConnectivityResult.mobile) {
  19. isInternetOn = true;
  20. } else if (connectivityResult == ConnectivityResult.wifi) {
  21. isInternetOn = true;
  22. }
  23. return isInternetOn;
  24. }
  25. Future<String?> getData(dynamic? url, bool? token,
  26. {bool loader = true}) async {
  27. try {
  28. Future<bool> internetActive = GetConnect();
  29. if (await internetActive) {
  30. var durl = url;
  31. var header = <String, String>{
  32. 'Content-Type': 'application/json; charset=UTF-8',
  33. };
  34. final response = await http.get(Uri.parse(durl), headers: header);
  35. if (response.statusCode == 200 || response.statusCode == 201) {
  36. dynamic res = json.decode(response.body);
  37. if (res["Message"] != null) {
  38. if (res["Message"].toString().isNotEmpty) {
  39. Toast.show(res["Message"],
  40. duration: Toast.lengthLong, gravity: Toast.bottom);
  41. }
  42. }
  43. return response.body;
  44. } else {
  45. dynamic res = json.decode(response.body);
  46. if (res["Error"] != null) {
  47. Toast.show(res["Error"],
  48. duration: Toast.lengthLong, gravity: Toast.bottom);
  49. }
  50. }
  51. }
  52. } on SocketException catch (_) {
  53. Toast.show("Please check your internet",
  54. duration: Toast.lengthLong, gravity: Toast.bottom);
  55. }
  56. return null;
  57. }
  58. Future<dynamic?> postData(
  59. String? url, Map<String, dynamic> data, bool? token,
  60. {bool loader = true}) async {
  61. try {
  62. bool internetActive = await GetConnect();
  63. if (internetActive) {
  64. String mainURL= Provider.of<commonChangeNotifier>(context, listen: false).mainURL;
  65. var durl = mainURL+url!;
  66. print(durl);
  67. var header = <String, String>{
  68. 'content-type': 'application/json',
  69. };
  70. var body = data;
  71. final response = await http.post(Uri.parse(durl),
  72. // headers: header,
  73. body: body);
  74. if (response.statusCode == 200 || response.statusCode == 201) {
  75. dynamic res = json.decode(response.body);
  76. if (res["Message"] != null) {
  77. if (res["Message"].toString().isNotEmpty) {
  78. Toast.show(res["Message"],
  79. duration: Toast.lengthLong, gravity: Toast.bottom);
  80. }
  81. }
  82. return res;
  83. } else {
  84. dynamic res = json.decode(response.body);
  85. if (res["Message"] != null) {
  86. Toast.show(res["Message"],
  87. duration: Toast.lengthLong, gravity: Toast.bottom);
  88. }
  89. }
  90. }
  91. } on SocketException catch (_) {
  92. Toast.show("Please check your internet",
  93. duration: Toast.lengthLong, gravity: Toast.bottom);
  94. }
  95. }
  96. }