import 'dart:convert';

import '../requestCache.dart';
import 'getHolidays.dart';
import 'getHolidaysResponse.dart';

class GetHolidaysCache extends RequestCache<GetHolidaysResponse> {
  GetHolidaysCache({onUpdate, renew}) : super(RequestCache.cacheDay, onUpdate, renew: renew) {
    start('state-holidays');
  }

  @override
  GetHolidaysResponse onLocalData(String json) {
    List<dynamic> parsedListJson = jsonDecode(json)['data'];
    return GetHolidaysResponse(
      List<GetHolidaysResponseObject>.from(
        parsedListJson.map<GetHolidaysResponseObject>(
          (i) => GetHolidaysResponseObject.fromJson(i as Map<String, dynamic>)
        )
      )
    );
  }

  @override
  Future<GetHolidaysResponse> onLoad() => GetHolidays().query();
}