import 'dart:convert';

import '../../../requestCache.dart';
import 'getChat.dart';
import 'getChatParams.dart';
import 'getChatResponse.dart';

class GetChatCache extends RequestCache<GetChatResponse> {
  String chatToken;

  GetChatCache({required onUpdate, required this.chatToken}) : super(RequestCache.cacheNothing, onUpdate) {
    start('MarianumMobile', 'nc-chat-$chatToken');
  }

  @override
  Future<GetChatResponse> onLoad() => GetChat(
      chatToken,
      GetChatParams(
        lookIntoFuture: GetChatParamsSwitch.off,
        setReadMarker: GetChatParamsSwitch.on,
        limit: 200,
      )
    ).run();

  @override
  GetChatResponse onLocalData(String json) => GetChatResponse.fromJson(jsonDecode(json));

}