import 'dart:async'; import 'dart:convert'; import 'package:flutter/cupertino.dart'; import 'package:flutter/foundation.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/string_extensions.dart'; import 'questionnaire_model.dart'; class SurveyProvider with ChangeNotifier { bool loading = false; void reset() { loading = false; // questionnaire = null; // ChatApiClient().chatLoginResponse = null; } getQuestionnaire(int surveySubmissionId, Function(String message, Questionnaire? questionnaire) onResponse) async { String responseMsg = ""; Questionnaire? q; try { final response = await ApiManager.instance.get("${URLs.getQuestionnaire.toString().replaceFirst("/mobile/", "/api/")}?surveySubmissionId=$surveySubmissionId", enableToastMessage: false); if (response.statusCode >= 200 && response.statusCode < 300) { if (jsonDecode(response.body)["message"] != null && jsonDecode(response.body)["message"].toString().isNotEmpty) { responseMsg = jsonDecode(response.body)["message"]; } else { q = Questionnaire.fromJson(jsonDecode(response.body)["data"]); } } } catch (ex) { "Failed, Retry.".showToast; } onResponse(responseMsg, q); // return null; } Future submitQuestionare(Map payload) async { try { final response = await ApiManager.instance.post(URLs.submitSurvey.toString().replaceFirst("/mobile/", "/api/"), body: payload); if (response.statusCode >= 200 && response.statusCode < 300) { return true; } } catch (ex) { "Failed, Retry.".showToast; } return false; } }