class ErrandBoy::Gateway::Slack
Public Class Methods
new(request)
click to toggle source
# File lib/errand_boy/gateway/slack.rb, line 7 def initialize(request) @request = request end
Public Instance Methods
call()
click to toggle source
# File lib/errand_boy/gateway/slack.rb, line 11 def call send(@request.action) rescue NoMethodError raise NoActionError, "#{@request.action}: action not found." end
invite()
click to toggle source
# File lib/errand_boy/gateway/slack.rb, line 17 def invite response = connect.post 'api/users.admin.invite', params result = JSON.parse response.body unless result['ok'] @processed = true if result['error'] == 'already_invited' raise SlackInviteMissingError, result['error'] unless processed? end end
processed?()
click to toggle source
# File lib/errand_boy/gateway/slack.rb, line 34 def processed? @processed end
team()
click to toggle source
# File lib/errand_boy/gateway/slack.rb, line 26 def team @request.destination['team'] end
url()
click to toggle source
# File lib/errand_boy/gateway/slack.rb, line 30 def url "https://#{team}.slack.com/" end
Private Instance Methods
connect()
click to toggle source
# File lib/errand_boy/gateway/slack.rb, line 40 def connect Faraday.new(url: url) do |faraday| faraday.request :url_encoded # faraday.response :logger faraday.adapter Faraday.default_adapter end end
params()
click to toggle source
# File lib/errand_boy/gateway/slack.rb, line 48 def params { email: @request.register['email'], token: ErrandBoy.slack_access_token, set_active: true } end