didvan-app/lib/views/notification_time/notification_time_state.dart

62 lines
1.5 KiB
Dart

import 'package:didvan/models/enums.dart';
import 'package:didvan/providers/core.dart';
import 'package:flutter/cupertino.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
import '../../models/day_time.dart';
import '../../routes/routes.dart';
import '../../services/network/request.dart';
import '../../services/network/request_helper.dart';
import '../../utils/date_time.dart';
import '../profile/general_settings/settings_state.dart';
class NotificationTimeState extends CoreProvier {
late DayTime selectedTime;
late void Function( ) onTimeChanged;
Future<void> getTime() async {
appState = AppState.busy;
final service = RequestService(
RequestHelper.notificationTime(),
);
await service.httpGet();
if (service.isSuccess) {
final time = service.data('time');
selectedTime = DateTimeUtils.handleDayTime(time);
appState = AppState.idle;
} else {
appState = AppState.failed;
}
update();
}
Future<void> putTime(BuildContext context) async {
appState = AppState.busy;
final favoritesRequest = {
"time": DateTimeUtils.handleDayTimeReverse(selectedTime)
};
final service = RequestService(
RequestHelper.notificationTime(),
body: favoritesRequest,
);
await service.put();
if (service.isSuccess) {
onTimeChanged();
// Navigator.of(context).pushNamed(
// Routes.notificationStatusStep,
// );
appState = AppState.idle;
return;
}
appState = AppState.failed;
}
}