sleep method

  1. @override
Future<PiholeStatus> sleep(
  1. Duration duration,
  2. CancelToken cancelToken
)
override

Disables the Pi-hole for a specified duration.

Implementation

@override
Future<PiholeStatus> sleep(Duration duration, CancelToken cancelToken) async {
  try {
    final data =
        await _getSecure({'disable': '${duration.inSeconds}'}, cancelToken);

    final status = PiholeStatusModel.fromJson(data);
    return status.entity.maybeWhen(
      disabled: () => PiholeStatus.sleeping(duration, clock.now()),
      orElse: () => status.entity,
    );
  } on DioError catch (e) {
    throw _onDioError(e);
  }
}