You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
5.2 KiB
Dart
138 lines
5.2 KiB
Dart
import 'dart:convert';
|
|
|
|
import 'package:doctor_app_flutter/client/base_app_client.dart';
|
|
import 'package:doctor_app_flutter/config/config.dart';
|
|
import 'package:doctor_app_flutter/models/livecare/end_call_req.dart';
|
|
import 'package:doctor_app_flutter/models/livecare/get_panding_req_list.dart';
|
|
import 'package:doctor_app_flutter/models/livecare/get_pending_res_list.dart';
|
|
import 'package:doctor_app_flutter/models/livecare/start_call_req.dart';
|
|
import 'package:doctor_app_flutter/models/livecare/start_call_res.dart';
|
|
import 'package:doctor_app_flutter/models/livecare/transfer_to_admin.dart';
|
|
import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart';
|
|
import 'package:doctor_app_flutter/util/helpers.dart';
|
|
import 'package:flutter/cupertino.dart';
|
|
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
|
|
|
|
class LiveCareProvider with ChangeNotifier {
|
|
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
|
|
|
|
List<LiveCarePendingListResponse> liveCarePendingList = [];
|
|
StartCallRes inCallResponse;
|
|
var transferToAdmin = {};
|
|
var endCallResponse = {};
|
|
bool isFinished = true;
|
|
bool hasError = false;
|
|
String errorMsg = '';
|
|
BaseAppClient baseAppClient = BaseAppClient();
|
|
|
|
LiveCarePendingListRequest _pendingRequestModel =
|
|
LiveCarePendingListRequest();
|
|
|
|
Future<List> getpendingList() async {
|
|
var profile = await sharedPref.getObj(DOCTOR_PROFILE);
|
|
_pendingRequestModel.projectID = await sharedPref.getInt(PROJECT_ID);
|
|
_pendingRequestModel.doctorID = profile['DoctorID'];
|
|
_pendingRequestModel.sErServiceID = "1,3,7";
|
|
_pendingRequestModel.sourceID = 1;
|
|
_pendingRequestModel.patientData = PatientData(isOutKSA: false);
|
|
resetDefaultValues();
|
|
// dynamic localRes;
|
|
await baseAppClient.post(GET_LIVECARE_PENDINGLIST,
|
|
onSuccess: (response, statusCode) async {
|
|
isFinished = true;
|
|
liveCarePendingList = [];
|
|
response['List_PendingPatientList'].forEach((v) {
|
|
liveCarePendingList.add(new LiveCarePendingListResponse.fromJson(v));
|
|
});
|
|
}, onFailure: (String error, int statusCode) {
|
|
isFinished = true;
|
|
throw error;
|
|
}, body: _pendingRequestModel.toJson());
|
|
return Future.value(liveCarePendingList);
|
|
}
|
|
|
|
Future<StartCallRes> startCall(request, bool isReCall) async {
|
|
var profile = await sharedPref.getObj(DOCTOR_PROFILE);
|
|
resetDefaultValues();
|
|
/* the request model is not same hence added manually */
|
|
var newRequest = new StartCallReq();
|
|
newRequest.clinicId = profile["ClinicID"];
|
|
newRequest.vCID = request.vCID; //["VC_ID"];
|
|
newRequest.isrecall = isReCall;
|
|
newRequest.doctorId = profile["DoctorID"];
|
|
newRequest.isOutKsa = request.isOutKSA; //["IsOutKSA"];
|
|
newRequest.projectName = profile["ProjectName"];
|
|
newRequest.docotrName = profile["DoctorName"];
|
|
newRequest.clincName = profile["ClinicDescription"];
|
|
newRequest.docSpec = profile["DoctorTitleForProfile"];
|
|
newRequest.generalid = 'Cs2020@2016\$2958';
|
|
isFinished = false;
|
|
await baseAppClient.post(START_LIVECARE_CALL,
|
|
onSuccess: (response, statusCode) async {
|
|
isFinished = true;
|
|
inCallResponse = StartCallRes.fromJson(response);
|
|
}, onFailure: (String error, int statusCode) {
|
|
isFinished = true;
|
|
throw error;
|
|
}, body: newRequest.toJson());
|
|
return Future.value(inCallResponse);
|
|
}
|
|
|
|
transfterToAdmin(request, notes) async {
|
|
var profile = await sharedPref.getObj(DOCTOR_PROFILE);
|
|
var newRequest = new TransferToAdminReq();
|
|
newRequest.doctorId = profile["DoctorID"];
|
|
newRequest.isOutKsa = request.isOutKSA;
|
|
newRequest.generalid = 'Cs2020@2016\$2958';
|
|
newRequest.vCID = request.vCID; //["VC_ID"];
|
|
newRequest.notes = await baseAppClient.post(TRANSFERT_TO_ADMIN,
|
|
onSuccess: (response, statusCode) async {
|
|
isFinished = true;
|
|
transferToAdmin = response;
|
|
}, onFailure: (String error, int statusCode) {
|
|
isFinished = true;
|
|
throw error;
|
|
}, body: newRequest.toJson());
|
|
return Future.value(inCallResponse);
|
|
}
|
|
|
|
endCall(request, isPaitent, doctorID) async {
|
|
var newRequest = new EndCallReq();
|
|
newRequest.doctorId = doctorID; //profile["DoctorID"];
|
|
newRequest.generalid = 'Cs2020@2016\$2958';
|
|
newRequest.vCID = request.vCID; //["VC_ID"];
|
|
newRequest.isDestroy = isPaitent;
|
|
await baseAppClient.post(END_CALL, onSuccess: (response, statusCode) async {
|
|
isFinished = true;
|
|
endCallResponse = response;
|
|
}, onFailure: (String error, int statusCode) {
|
|
isFinished = true;
|
|
throw error;
|
|
}, body: newRequest.toJson());
|
|
return Future.value(inCallResponse);
|
|
}
|
|
|
|
endCallWithCharge(vcID, doctorID) async {
|
|
var newRequest = new EndCallReq();
|
|
newRequest.vCID = vcID;
|
|
newRequest.doctorId = doctorID;
|
|
newRequest.generalid = 'Cs2020@2016\$2958';
|
|
await baseAppClient.post(END_CALL_WITH_CHARGE,
|
|
onSuccess: (response, statusCode) async {
|
|
isFinished = true;
|
|
endCallResponse = response;
|
|
}, onFailure: (String error, int statusCode) {
|
|
isFinished = true;
|
|
throw error;
|
|
}, body: newRequest.toJson());
|
|
return Future.value(inCallResponse);
|
|
}
|
|
|
|
resetDefaultValues() {
|
|
isFinished = false;
|
|
hasError = false;
|
|
errorMsg = '';
|
|
notifyListeners();
|
|
}
|
|
}
|