Module: Teems::Services::SyncStateMutation

Included in:
SyncStore
Defined in:
lib/teems/services/sync_store.rb

Overview

Chat state mutation operations for SyncStore

Instance Method Summary collapse

Instance Method Details

#mark_unavailable(state, chat_id, **opts) ⇒ Object



61
62
63
64
65
66
67
# File 'lib/teems/services/sync_store.rb', line 61

def mark_unavailable(state, chat_id, **opts)
  entry = (state['chats'] ||= {})[chat_id] ||= {}
  apply_unavailable(entry)
  apply_chat_type(entry, opts[:chat_type])
  apply_display_info(entry, chat_id, opts[:display_name])
  state
end

#update_chat_state(state, chat_id, attrs:) ⇒ Object



51
52
53
54
55
56
57
58
59
# File 'lib/teems/services/sync_store.rb', line 51

def update_chat_state(state, chat_id, attrs:)
  display_name, synced_at, count, chat_type =
    attrs.values_at(:display_name, :last_synced_at, :message_count, :chat_type)
  entry = (state['chats'] ||= {})[chat_id] ||= {}
  entry.merge!('last_synced_at' => synced_at.iso8601, 'message_count' => count,
               'display_name' => display_name, 'chat_type' => chat_type,
               'dir_name' => build_dir_name(chat_id, display_name))
  state
end