This repository has been archived on 2024-10-18. You can view files and clone it, but cannot push or open issues or pull requests.
ftc_patient_app/lib/controllers/clients/appointment_screen_controll...

72 lines
1.9 KiB
Dart

import 'package:flutter/material.dart';
import 'package:ftc_mobile_app/utilities/extensions/custom_extensions.dart';
import 'package:get/get.dart';
import 'package:pull_to_refresh_flutter3/pull_to_refresh_flutter3.dart';
import '../../ftc_mobile_app.dart';
import '../../models/appointmentsListResponse/AppointmentsListResponse.dart';
class AppointmentScreenController extends GetxController {
final GlobalKey<ScaffoldState> screenKey = GlobalKey<ScaffoldState>();
final appointments = <AppointmentsListResponseData>[].obs;
final _listRC = RefreshController(initialRefresh: false);
RefreshController get listRC => _listRC;
final _listSC = ScrollController();
ScrollController get listSC => _listSC;
String serviceUserId = "";
@override
void onReady() {
super.onReady();
getAppointmentsList();
}
void removeFocus() {
FocusScope.of(screenKey.currentContext!).unfocus();
}
void onRefresh() async {
await getAppointmentsList();
_listRC.refreshCompleted();
}
Future<void> getAppointmentsList() async {
try {
if (serviceUserId.isEmpty) {
throw Exception("serviceUserId is not assigned");
}
final response = await ClientService()
.getAppointmentsList(
serviceId: serviceUserId,
startDate: DateTime.now().subtract(28.days).millisecondsSinceEpoch,
endDate: DateTime.now().add(28.days).millisecondsSinceEpoch,
)
.showLoader();
if (response.success == true) {
appointments.value = response.data ?? [];
} else {
if (response.message.isNotNullOrEmpty()) {
FrequentFunctions.showToast(message: response.message!);
}
}
} catch (e) {
debugPrint("getAppointmentsList error");
debugPrint(e.toString());
}
}
@override
void dispose() {
_listSC.dispose();
Get.delete<AppointmentScreenController>();
super.dispose();
}
}