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() {
    return GetChat(
      chatToken,
      GetChatParams(
        lookIntoFuture: GetChatParamsSwitch.off,
        setReadMarker: GetChatParamsSwitch.on,
        limit: 200,
      )
    ).run();
  }

  @override
  GetChatResponse onLocalData(String json) {
    return GetChatResponse.fromJson(jsonDecode(json));
  }

}