Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
 

192 строки
5.7 KiB

  1. import 'package:dio/dio.dart';
  2. import 'package:qadirneyriz/config/config.dart';
  3. import 'package:qadirneyriz/models/meetings/meetings_location_model.dart';
  4. import 'package:qadirneyriz/models/meetings/meetings_managers_model.dart';
  5. import 'package:qadirneyriz/models/meetings/meetings_subjects_model.dart';
  6. import 'package:qadirneyriz/models/meetings/meetings_users_model.dart';
  7. import 'package:qadirneyriz/setting/setting.dart';
  8. import 'package:qadirneyriz/utils/result/result.dart';
  9. class GlobalServices {
  10. // location
  11. Future<List<LocationsModel>> getLocation() async {
  12. Map<String, String> headers = {
  13. 'Accept': 'application/json',
  14. };
  15. final String link =
  16. "${config.network.baseUrl}admin/locations?lang=${setting.userLocalDb.getUser().language}";
  17. final response = await Dio().get(link,
  18. options: Options(
  19. headers: headers,
  20. ));
  21. final list = response.data
  22. .map<LocationsModel>((e) => LocationsModel.fromJson(e))
  23. .toList();
  24. return list;
  25. }
  26. // subjects
  27. Future<List<SubjectsModel>> getSubjects() async {
  28. Map<String, String> headers = {
  29. 'Accept': 'application/json',
  30. };
  31. final String link =
  32. "${config.network.baseUrl}admin/subjects?lang=${setting.userLocalDb.getUser().language}";
  33. final response = await Dio().get(link,
  34. options: Options(
  35. headers: headers,
  36. ));
  37. final list = response.data
  38. .map<SubjectsModel>((e) => SubjectsModel.fromJson(e))
  39. .toList();
  40. return list;
  41. }
  42. // managers
  43. Future<List<MeetingsMangersModel>> getManagers() async {
  44. Map<String, String> headers = {
  45. 'Accept': 'application/json',
  46. };
  47. String dataToken = setting.userLocalDb.getUser().token!;
  48. if (dataToken != '') {
  49. headers['Authorization'] = "Bearer $dataToken";
  50. }
  51. final String link =
  52. "${config.network.baseUrl}meeting-manager?lang=${setting.userLocalDb.getUser().language}";
  53. final response = await Dio().get(link,
  54. options: Options(
  55. headers: headers,
  56. ));
  57. final list = response.data
  58. .map<MeetingsMangersModel>((e) => MeetingsMangersModel.fromJson(e))
  59. .toList();
  60. return list;
  61. }
  62. // users
  63. Future<List<UsersModel>> getUsers() async {
  64. Map<String, String> headers = {
  65. 'Accept': 'application/json',
  66. };
  67. String dataToken = setting.userLocalDb.getUser().token!;
  68. if (dataToken != '') {
  69. headers['Authorization'] = "Bearer $dataToken";
  70. }
  71. final String link =
  72. "${config.network.baseUrl}admin/users?lang=${setting.userLocalDb.getUser().language}";
  73. final response = await Dio().get(link,
  74. options: Options(
  75. headers: headers,
  76. ));
  77. final list =
  78. response.data.map<UsersModel>((e) => UsersModel.fromJson(e)).toList();
  79. return list;
  80. }
  81. // add new subject
  82. Future<Result> addNewSubject({
  83. required String subject,
  84. required String enSubject,
  85. }) async {
  86. try {
  87. Map<String, String> headers = {"Accept": "application/json"};
  88. FormData? formData;
  89. String dataToken = setting.userLocalDb.getUser().token!;
  90. if (dataToken != '') {
  91. headers['Authorization'] = "Bearer $dataToken";
  92. }
  93. formData =
  94. FormData.fromMap({"subject": subject, "subject_en": enSubject});
  95. final res = await Dio().post("${config.network.baseUrl}admin/add-subject",
  96. data: formData, options: Options(headers: headers));
  97. if (res.statusCode == 200 || res.statusCode == 201) {
  98. return Result(isOk: true, message: res.data['msg']);
  99. }
  100. } on DioException catch (e) {
  101. return Result(
  102. isOk: false,
  103. errors: e.response!.data['errors'],
  104. message: e.response!.data['msg']);
  105. }
  106. return const Result(isOk: false);
  107. }
  108. // add new user
  109. Future<Result> addNewUser({
  110. required String mobile,
  111. required String name,
  112. required String password,
  113. required int role,
  114. }) async {
  115. try {
  116. Map<String, String> headers = {"Accept": "application/json"};
  117. FormData? formData;
  118. String dataToken = setting.userLocalDb.getUser().token!;
  119. if (dataToken != '') {
  120. headers['Authorization'] = "Bearer $dataToken";
  121. }
  122. formData = FormData.fromMap(
  123. {"mobile": mobile, "name": name, "password": password, "role": role});
  124. final res = await Dio().post("${config.network.baseUrl}admin/add-user",
  125. data: formData, options: Options(headers: headers));
  126. if (res.statusCode == 200 || res.statusCode == 201) {
  127. return Result(isOk: true, message: res.data['msg']);
  128. }
  129. } on DioException catch (e) {
  130. return Result(
  131. isOk: false,
  132. errors: e.response!.data['errors'],
  133. message: e.response!.data['msg']);
  134. }
  135. return const Result(isOk: false);
  136. }
  137. // add new location
  138. Future<Result> addNewLocation({
  139. required String address,
  140. required String addressEn,
  141. }) async {
  142. try {
  143. Map<String, String> headers = {"Accept": "application/json"};
  144. FormData? formData;
  145. String dataToken = setting.userLocalDb.getUser().token!;
  146. if (dataToken != '') {
  147. headers['Authorization'] = "Bearer $dataToken";
  148. }
  149. formData =
  150. FormData.fromMap({"address": address, "address_en": addressEn});
  151. final res = await Dio().post(
  152. "${config.network.baseUrl}admin/add-location",
  153. data: formData,
  154. options: Options(headers: headers));
  155. if (res.statusCode == 200 || res.statusCode == 201) {
  156. return Result(isOk: true, message: res.data['msg']);
  157. }
  158. } on DioException catch (e) {
  159. return Result(
  160. isOk: false,
  161. errors: e.response!.data['errors'],
  162. message: e.response!.data['msg']);
  163. }
  164. return const Result(isOk: false);
  165. }
  166. }