Class: Team
- Inherits:
-
Object
- Object
- Team
- Includes:
- Mongoid::Document, Mongoid::Timestamps
- Defined in:
- lib/slack-ruby-bot-server/models/team.rb
Constant Summary collapse
- SORT_ORDERS =
['created_at', '-created_at', 'updated_at', '-updated_at']
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.find_or_create_from_env! ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/slack-ruby-bot-server/models/team.rb', line 46 def self.find_or_create_from_env! token = ENV['SLACK_API_TOKEN'] return unless token team = Team.where(token: token).first team ||= Team.new(token: token) info = Slack::Web::Client.new(token: token).team_info team.team_id = info['team']['id'] team.name = info['team']['name'] team.domain = info['team']['domain'] team.save! team end |
.purge! ⇒ Object
59 60 61 62 63 64 65 |
# File 'lib/slack-ruby-bot-server/models/team.rb', line 59 def self.purge! # destroy teams inactive for two weeks Team.where(active: false, :updated_at.lte => 2.weeks.ago).each do |team| Mongoid.logger.info "Destroying #{team}, inactive since #{team.updated_at}, over two weeks ago." team.destroy end end |
Instance Method Details
#activate!(token) ⇒ Object
23 24 25 |
# File 'lib/slack-ruby-bot-server/models/team.rb', line 23 def activate!(token) update_attributes!(active: true, token: token) end |
#deactivate! ⇒ Object
19 20 21 |
# File 'lib/slack-ruby-bot-server/models/team.rb', line 19 def deactivate! update_attributes!(active: false) end |
#ping! ⇒ Object
37 38 39 40 41 42 43 44 |
# File 'lib/slack-ruby-bot-server/models/team.rb', line 37 def ping! client = Slack::Web::Client.new(token: token) auth = client.auth_test { auth: auth, presence: client.users_getPresence(user: auth['user_id']) } end |
#to_s ⇒ Object
27 28 29 30 31 32 33 34 35 |
# File 'lib/slack-ruby-bot-server/models/team.rb', line 27 def to_s { name: name, domain: domain, id: team_id }.map do |k, v| "#{k}=#{v}" if v end.compact.join(', ') end |