Class: Sinbotra::Bot::UserRepo

Inherits:
Object
  • Object
show all
Defined in:
lib/sinbotra/bot/user_repo.rb

Class Method Summary collapse

Class Method Details

.connect(store = UserStore.new) ⇒ Object



4
5
6
# File 'lib/sinbotra/bot/user_repo.rb', line 4

def connect(store=UserStore.new)
  @users ||= store
end

.create(id) ⇒ Object



16
17
18
19
20
# File 'lib/sinbotra/bot/user_repo.rb', line 16

def create(id)
  user = Sinbotra::Bot::User.new(id)
  update(user)
  user
end

.find_or_create(id) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/sinbotra/bot/user_repo.rb', line 8

def find_or_create(id)
  user = @users[id]
  if user.nil?
    user = create(id)
  end
  user
end

.messages(id) ⇒ Object



43
44
45
46
# File 'lib/sinbotra/bot/user_repo.rb', line 43

def messages(id)
  # Get messages from message store
  $logger.debug("WIP user messages retrieval")
end

.next_step!(user) ⇒ Object



22
23
24
25
# File 'lib/sinbotra/bot/user_repo.rb', line 22

def next_step!(user)
  step = user.conversation.step + 1
  update_conversation(user, user.conversation.id, step)
end

.start_conversation(user_id, convo_id) ⇒ Object



27
28
29
30
31
# File 'lib/sinbotra/bot/user_repo.rb', line 27

def start_conversation(user_id, convo_id)
  user = find_or_create(user_id)
  user = update_conversation(user: user, convo_id: convo_id, step: 0)
  user
end

.update(user) ⇒ Object



39
40
41
# File 'lib/sinbotra/bot/user_repo.rb', line 39

def update(user)
  @users[user.id] = user
end

.update_conversation(user:, convo_id:, step:) ⇒ Object



33
34
35
36
37
# File 'lib/sinbotra/bot/user_repo.rb', line 33

def update_conversation(user:, convo_id:, step:)
  user.update_conversation(convo_id, step)
  update(user)
  user
end