class Qiita::Team::Services::Hooks::HipchatV1
Constants
- AVAILABLE_COLORS
Public Class Methods
@note Override {Services::Base.service_name}.
# File lib/qiita/team/services/hooks/hipchat_v1.rb, line 23 def self.service_name "HipChat" end
Public Instance Methods
@param event [Qiita::Team::Services::Events::ItemBecameCoediting] @return [void] @raise [Qiita::Team::Services::DeliveryError]
# File lib/qiita/team/services/hooks/hipchat_v1.rb, line 51 def item_became_coediting(event) send_message "#{user_link(event.user)} changed #{item_link(event.item)} to coedit mode." end
@param event [Qiita::Team::Services::Events::ItemCommentCreated] @return [void] @raise [Qiita::Team::Services::DeliveryError]
# File lib/qiita/team/services/hooks/hipchat_v1.rb, line 58 def item_comment_created(event) send_message <<-EOM.strip_heredoc #{user_link(event.user)} commented on #{item_link(event.item)}. <pre>#{event.comment.body.truncate(100)}</pre> EOM end
@param event [Qiita::Team::Services::Events::ItemCreated] @return [void] @raise [Qiita::Team::Services::DeliveryError]
# File lib/qiita/team/services/hooks/hipchat_v1.rb, line 37 def item_created(event) send_message "#{user_link(event.user)} created #{item_link(event.item)}." end
@param event [Qiita::Team::Services::Events::ItemUpdated] @return [void] @raise [Qiita::Team::Services::DeliveryError]
# File lib/qiita/team/services/hooks/hipchat_v1.rb, line 44 def item_updated(event) send_message "#{user_link(event.user)} updated #{item_link(event.item)}." end
@return [void]
# File lib/qiita/team/services/hooks/hipchat_v1.rb, line 28 def ping send_message "Test message sent from Qiita:Team" rescue DeliveryError nil end
@param event [Qiita::Team::Services::Events::ProjectActivated] @return [void] @raise [Qiita::Team::Services::DeliveryError]
# File lib/qiita/team/services/hooks/hipchat_v1.rb, line 99 def project_activated(event) send_message("#{user_link(event.user)} activated #{project_link(event.project)} project.") end
@param event [Qiita::Team::Services::Events::ProjectArchived] @return [void] @raise [Qiita::Team::Services::DeliveryError]
# File lib/qiita/team/services/hooks/hipchat_v1.rb, line 106 def project_archived(event) send_message("#{user_link(event.user)} archived #{event.project.name} project.") end
@param event [Qiita::Team::Services::Events::ProjectCommentCreated] @return [void] @raise [Qiita::Team::Services::DeliveryError]
# File lib/qiita/team/services/hooks/hipchat_v1.rb, line 68 def project_comment_created(event) send_message <<-EOM.strip_heredoc #{user_link(event.user)} commented on #{project_link(event.project)}. <pre>#{event.comment.body.truncate(100)}</pre> EOM end
@param event [Qiita::Team::Services::Events::ProjectCreated] @return [void] @raise [Qiita::Team::Services::DeliveryError]
# File lib/qiita/team/services/hooks/hipchat_v1.rb, line 85 def project_created(event) send_message("#{user_link(event.user)} created #{project_link(event.project)} project.") end
@param event [Qiita::Team::Services::Events::ProjectUpdated] @return [void] @raise [Qiita::Team::Services::DeliveryError]
# File lib/qiita/team/services/hooks/hipchat_v1.rb, line 92 def project_updated(event) send_message("#{user_link(event.user)} updated #{project_link(event.project)} project.") end
@param event [Qiita::Team::Services::Events::MemberAdded] @return [void] @raise [Qiita::Team::Services::DeliveryError]
# File lib/qiita/team/services/hooks/hipchat_v1.rb, line 78 def team_member_added(event) send_message("#{user_link(event.member)} was added to #{event.team.name} team.") end
Private Instance Methods
@return [HipChat::Client] configured with API v1.
# File lib/qiita/team/services/hooks/hipchat_v1.rb, line 120 def client @client ||= HipChat::Client.new(token)[room] end
@param item [Qiita::Team::Services::Resources::Item] @return [String]
# File lib/qiita/team/services/hooks/hipchat_v1.rb, line 132 def item_link(item) "<a href='#{item.url}'>#{item.title}</a>" end
@param project [Qiita::Team::Services::Resources::Project] @return [String]
# File lib/qiita/team/services/hooks/hipchat_v1.rb, line 138 def project_link(project) "<a href='#{project.url}'>#{project.name}</a>" end
@param message [String]
# File lib/qiita/team/services/hooks/hipchat_v1.rb, line 113 def send_message(message) client.send(from, message, color: color, notify: with_notification) rescue HipChat::UnknownRoom, HipChat::Unauthorized, HipChat::UnknownResponseCode raise DeliveryError end
@param user [Qiita::Team::Services::Resources::User] @return [String]
# File lib/qiita/team/services/hooks/hipchat_v1.rb, line 126 def user_link(user) "<a href='#{user.url}'>#{user.name}</a>" end