import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:fluttertoast/fluttertoast.dart'; import 'package:http/http.dart'; import 'package:test_sa/controllers/api_routes/api_manager.dart'; import 'package:test_sa/controllers/api_routes/urls.dart'; import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/models/lookup.dart'; import 'package:test_sa/models/new_models/task_request/task_request_model.dart'; import 'package:test_sa/models/new_models/task_request/task_type_model.dart'; import 'package:test_sa/models/service_request/pending_service_request_model.dart'; import 'package:test_sa/models/service_request/service_report.dart'; import 'package:test_sa/models/service_request/service_request.dart'; import 'package:test_sa/models/service_request/service_request_search.dart'; import 'package:test_sa/models/service_request/spare_parts.dart'; import 'package:test_sa/models/service_request/supp_engineer_work_orders.dart'; import 'package:test_sa/models/service_request/supplier_engineer_model.dart'; import 'package:test_sa/models/timer_model.dart'; import '../../models/service_request/search_work_order.dart'; import '../../models/service_request/wo_call_request.dart'; import '../../models/user.dart'; import '../../new_views/common_widgets/app_lazy_loading.dart'; class TaskRequestProvider extends ChangeNotifier { // number of items call in each request final pageItemNumber = 10; // state code of current request to defied error message // like 400 customer request failed // 500 service not available int? stateCode; bool isLoading = false; Future addTask({ required BuildContext context, required AddTaskModel task, }) async { showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading()); Response response; try { response = await ApiManager.instance.post(URLs.addTaskUrl, body: task.toJson()); stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) { notifyListeners(); Fluttertoast.showToast(msg: context.translation.successfulRequestMessage); Navigator.pop(context); } else { Fluttertoast.showToast(msg: "${context.translation.failedRequestMessage} :${json.decode(response.body)['message']}"); } Navigator.pop(context); } catch (error) { print(error); Navigator.pop(context); } } }