72 lines
1.9 KiB
Dart
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();
|
|
}
|
|
}
|