No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 
 
 

119 líneas
3.5 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("${config.network.baseUrl}admin/logout",
  33. options: Options(headers: headers));
  34. if (res.statusCode == 200 || res.statusCode == 201) {
  35. setting.userLocalDb.logOut();
  36. return const Result(isOk: true);
  37. }
  38. } on DioException catch (e) {
  39. // print(e);
  40. // print(e.response!.data);
  41. return Result(
  42. isOk: false,
  43. errors: e.response!.data['errors'],
  44. message: e.response!.data['message']);
  45. }
  46. return const Result(isOk: false);
  47. }
  48. // delete account
  49. Future<Result?> deleteAccountApi() async {
  50. try {
  51. Map<String, String> headers = {"Accept": "application/json"};
  52. String dataToken = setting.userLocalDb.getUser().token!;
  53. if (dataToken != '') {
  54. headers['Authorization'] = "Bearer $dataToken";
  55. }
  56. final res = await Dio().post(
  57. "${config.network.baseUrl}user/deleteaccount",
  58. options: Options(headers: headers));
  59. if (res.statusCode == 200 || res.statusCode == 201) {
  60. setting.userLocalDb.logOut();
  61. return const Result(isOk: true);
  62. }
  63. } on DioException catch (e) {
  64. // print(e);
  65. // print(e.response!.data);
  66. return Result(
  67. isOk: false,
  68. errors: e.response!.data['errors'],
  69. message: e.response!.data['message']);
  70. }
  71. return const Result(isOk: false);
  72. }
  73. // edit profile
  74. Future<Result?> editProfile({String? name, String? password}) async {
  75. try {
  76. Map<String, String> headers = {"Accept": "application/json"};
  77. String dataToken = setting.userLocalDb.getUser().token!;
  78. if (dataToken != '') {
  79. headers['Authorization'] = "Bearer $dataToken";
  80. }
  81. final res = await Dio().post("${config.network.baseUrl}edit-profile",
  82. options: Options(
  83. headers: headers,
  84. ),
  85. queryParameters: {'name': name, 'password': password});
  86. if (res.statusCode == 200 || res.statusCode == 201) {
  87. if (name != null) {
  88. setting.userLocalDb.saveUserField('name', name);
  89. }
  90. return const Result(isOk: true);
  91. }
  92. } on DioException catch (e) {
  93. // print(e);
  94. // print(e.response!.data);
  95. return Result(
  96. isOk: false,
  97. errors: e.response!.data['errors'],
  98. message: e.response!.data['message']);
  99. }
  100. return const Result(isOk: false);
  101. }
  102. }