You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

121 rivejä
3.6 KiB

  1. import 'package:dio/dio.dart';
  2. import 'package:qadirneyriz/config/config.dart';
  3. import 'package:qadirneyriz/models/home/home_models.dart';
  4. import 'package:qadirneyriz/setting/setting.dart';
  5. import 'package:qadirneyriz/utils/result/result.dart';
  6. class HomeApi {
  7. getTodayMeetings() async {
  8. Map<String, String> headers = {
  9. 'Accept': 'application/json',
  10. };
  11. String dataToken = setting.userLocalDb.getUser().token!;
  12. if (dataToken != '') {
  13. headers['Authorization'] = "Bearer $dataToken";
  14. }
  15. final String link =
  16. "${config.network.baseUrl}today-meetings?lang=${setting.userLocalDb.getUser().language}";
  17. final response = await Dio().get(link,
  18. options: Options(
  19. headers: headers,
  20. ));
  21. TodayMeetingModel list = TodayMeetingModel.fromJson(response.data);
  22. return list;
  23. }
  24. // log out
  25. Future<Result?> logOutApi() async {
  26. try {
  27. Map<String, String> headers = {"Accept": "application/json"};
  28. String dataToken = setting.userLocalDb.getUser().token!;
  29. if (dataToken != '') {
  30. headers['Authorization'] = "Bearer $dataToken";
  31. }
  32. final res = await Dio().post(
  33. "${config.network.baseUrl}admin/logout?lang=${setting.userLocalDb.getUser().language}",
  34. options: Options(headers: headers));
  35. if (res.statusCode == 200 || res.statusCode == 201) {
  36. setting.userLocalDb.logOut();
  37. return const Result(isOk: true);
  38. }
  39. } on DioException catch (e) {
  40. // print(e);
  41. // print(e.response!.data);
  42. return Result(
  43. isOk: false,
  44. errors: e.response!.data['errors'],
  45. message: e.response!.data['message']);
  46. }
  47. return const Result(isOk: false);
  48. }
  49. // delete account
  50. Future<Result?> deleteAccountApi() async {
  51. try {
  52. Map<String, String> headers = {"Accept": "application/json"};
  53. String dataToken = setting.userLocalDb.getUser().token!;
  54. if (dataToken != '') {
  55. headers['Authorization'] = "Bearer $dataToken";
  56. }
  57. final res = await Dio().post(
  58. "${config.network.baseUrl}user/deleteaccount?lang=${setting.userLocalDb.getUser().language}",
  59. options: Options(headers: headers));
  60. if (res.statusCode == 200 || res.statusCode == 201) {
  61. setting.userLocalDb.logOut();
  62. return const Result(isOk: true);
  63. }
  64. } on DioException catch (e) {
  65. // print(e);
  66. // print(e.response!.data);
  67. return Result(
  68. isOk: false,
  69. errors: e.response!.data['errors'],
  70. message: e.response!.data['message']);
  71. }
  72. return const Result(isOk: false);
  73. }
  74. // edit profile
  75. Future<Result?> editProfile({String? name, String? password}) async {
  76. try {
  77. Map<String, String> headers = {"Accept": "application/json"};
  78. String dataToken = setting.userLocalDb.getUser().token!;
  79. if (dataToken != '') {
  80. headers['Authorization'] = "Bearer $dataToken";
  81. }
  82. final res = await Dio().post(
  83. "${config.network.baseUrl}edit-profile?lang=${setting.userLocalDb.getUser().language}",
  84. options: Options(
  85. headers: headers,
  86. ),
  87. queryParameters: {'name': name, 'password': password});
  88. if (res.statusCode == 200 || res.statusCode == 201) {
  89. if (name != null) {
  90. setting.userLocalDb.saveUserField('name', name);
  91. }
  92. return const Result(isOk: true);
  93. }
  94. } on DioException catch (e) {
  95. // print(e);
  96. // print(e.response!.data);
  97. return Result(
  98. isOk: false,
  99. errors: e.response!.data['errors'],
  100. message: e.response!.data['message']);
  101. }
  102. return const Result(isOk: false);
  103. }
  104. }