class Lita::Handlers::SlackStatus
Public Instance Methods
clear(response)
click to toggle source
# File lib/lita/handlers/slack_status.rb, line 79 def clear(response) response.reply set_profile(response.user.id, emoji: nil, text: nil) end
delete(response)
click to toggle source
# File lib/lita/handlers/slack_status.rb, line 50 def delete(response) name = response.matches.flatten.first if redis.hdel("users/#{response.user.id}/statuses", name) == 1 response.reply 'ok' else response.reply "not found: #{name}" end end
list(response)
click to toggle source
# File lib/lita/handlers/slack_status.rb, line 37 def list(response) statuses = redis.hgetall("users/#{response.user.id}/statuses") return response.reply '(empty)' if statuses.empty? message = statuses.map do |name, status_json| status = JSON.parse(status_json) status_str = [status['emoji'], status['text']].compact.join(' ') "#{name} => #{status_str} (`#{name} #{status_str}`)" end.join("\n") response.reply message end
rename(response)
click to toggle source
# File lib/lita/handlers/slack_status.rb, line 59 def rename(response) from_name, to_name = response.matches.flatten status_json = redis.hget("users/#{response.user.id}/statuses", from_name) return response.reply "not found: #{name}" unless status_json redis.hset("users/#{response.user.id}/statuses", to_name, status_json) redis.hdel("users/#{response.user.id}/statuses", from_name) response.reply 'ok' end
save(response)
click to toggle source
# File lib/lita/handlers/slack_status.rb, line 24 def save(response) name, emoji, text = response.matches.flatten redis.hset("users/#{response.user.id}/statuses", name, {emoji: emoji, text: text}.to_json) response.reply 'ok' end
save_and_set(response)
click to toggle source
# File lib/lita/handlers/slack_status.rb, line 30 def save_and_set(response) name, emoji, text = response.matches.flatten redis.hset("users/#{response.user.id}/statuses", name, {emoji: emoji, text: text}.to_json) response.reply set_profile(response.user.id, emoji: emoji, text: text) end
set(response)
click to toggle source
# File lib/lita/handlers/slack_status.rb, line 69 def set(response) name, text = response.matches.flatten status_json = redis.hget("users/#{response.user.id}/statuses", name) return response.reply "not found: #{name}" unless status_json status = JSON.parse(status_json) response.reply set_profile(response.user.id, emoji: status['emoji'], text: text || status['text']) end
Private Instance Methods
set_profile(user_id, emoji: , text:)
click to toggle source
# File lib/lita/handlers/slack_status.rb, line 85 def set_profile(user_id, emoji: , text:) resp = slack_client.users_profile_set( user: user_id, profile: { status_emoji: emoji.to_s, status_text: text.to_s }.to_json ) resp['ok'] ? 'ok' : "error: #{resp['error']}" end
slack_client()
click to toggle source
# File lib/lita/handlers/slack_status.rb, line 96 def slack_client @slack_client ||= Slack::Web::Client.new(token: config.admin_slack_token) end