Module: Qiita::Team::Services::Hooks::Concerns::Slack
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/qiita/team/services/hooks/concerns/slack.rb
Overview
Send richly-formatted messages to Slack. Override HttpClient#url to implement HttpClient.
Constant Summary collapse
- DEFAULT_ICON_URL =
"https://cdn.qiita.com/media/qiita-team-slack-icon.png".freeze
- ICON_EMOJI_FORMAT =
/\A:[^:]+:\z/- TEXT_BYTESIZE_MAX =
7500
Instance Method Summary collapse
- #item_became_coediting(event) ⇒ void
- #item_comment_created(event) ⇒ void
- #item_comment_destroyed(event) ⇒ void
- #item_comment_updated(event) ⇒ void
- #item_created(event) ⇒ void
- #item_destroyed(event) ⇒ void
- #item_updated(event) ⇒ void
- #ping ⇒ void
- #project_activated(event) ⇒ void
- #project_archived(event) ⇒ void
- #project_comment_created(event) ⇒ void
- #project_comment_destroyed(event) ⇒ void
- #project_comment_updated(event) ⇒ void
- #project_created(event) ⇒ void
- #project_destroyed(event) ⇒ void
- #project_updated(event) ⇒ void
- #team_member_added(event) ⇒ void
- #team_member_removed(event) ⇒ void
Instance Method Details
#item_became_coediting(event) ⇒ void
This method returns an undefined value.
76 77 78 79 80 |
# File 'lib/qiita/team/services/hooks/concerns/slack.rb', line 76 def item_became_coediting(event) ( text: "#{user_link(event.user)} changed #{item_link(event.item)} to coedit mode", ) end |
#item_comment_created(event) ⇒ void
This method returns an undefined value.
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/qiita/team/services/hooks/concerns/slack.rb', line 94 def item_comment_created(event) fallback = if event.item.coediting? "New #{comment_link(event.comment)} on #{item_link(event.item)}" else "New #{comment_link(event.comment)} on #{user_link(event.item.user)}'s " \ "#{item_link(event.item)}" end ( attachments: [ fallback: fallback, pretext: fallback, author_name: "@#{event.user.url_name}", author_link: event.user.url, author_icon: event.user.profile_image_url, text: truncate(Slacken.translate(event.comment.rendered_body), event.comment.url), mrkdwn_in: ["text"], ], ) end |
#item_comment_destroyed(event) ⇒ void
This method returns an undefined value.
127 128 129 130 131 |
# File 'lib/qiita/team/services/hooks/concerns/slack.rb', line 127 def item_comment_destroyed(event) ( text: "#{user_link(event.user)} deleted a comment on #{item_link(event.item)}", ) end |
#item_comment_updated(event) ⇒ void
This method returns an undefined value.
118 119 120 121 122 |
# File 'lib/qiita/team/services/hooks/concerns/slack.rb', line 118 def item_comment_updated(event) text = "#{user_link(event.user)} updated a #{comment_link(event.comment)}" text << " on #{item_link(event.item)}" (text: text) end |
#item_created(event) ⇒ void
This method returns an undefined value.
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/qiita/team/services/hooks/concerns/slack.rb', line 47 def item_created(event) fallback = "#{user_link(event.user)} created a new post" ( attachments: [ fallback: fallback, pretext: fallback, author_name: "@#{event.user.url_name}", author_link: event.user.url, author_icon: event.user.profile_image_url, title: event.item.title, title_link: event.item.url, text: truncate(Slacken.translate(event.item.rendered_body), event.item.url), mrkdwn_in: ["text"], ], ) end |
#item_destroyed(event) ⇒ void
This method returns an undefined value.
85 86 87 88 89 |
# File 'lib/qiita/team/services/hooks/concerns/slack.rb', line 85 def item_destroyed(event) ( text: "#{user_link(event.user)} deleted #{event.item.title}", ) end |
#item_updated(event) ⇒ void
This method returns an undefined value.
67 68 69 70 71 |
# File 'lib/qiita/team/services/hooks/concerns/slack.rb', line 67 def item_updated(event) ( text: "#{user_link(event.user)} updated #{item_link(event.item)}", ) end |
#ping ⇒ void
This method returns an undefined value.
38 39 40 41 42 |
# File 'lib/qiita/team/services/hooks/concerns/slack.rb', line 38 def ping (text: "Test message sent from Qiita:Team") rescue DeliveryError nil end |
#project_activated(event) ⇒ void
This method returns an undefined value.
226 227 228 229 230 |
# File 'lib/qiita/team/services/hooks/concerns/slack.rb', line 226 def project_activated(event) ( text: "#{user_link(event.user)} activated #{project_link(event.project)} project", ) end |
#project_archived(event) ⇒ void
This method returns an undefined value.
217 218 219 220 221 |
# File 'lib/qiita/team/services/hooks/concerns/slack.rb', line 217 def project_archived(event) ( text: "#{user_link(event.user)} archived #{project_link(event.project)} project", ) end |
#project_comment_created(event) ⇒ void
This method returns an undefined value.
136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
# File 'lib/qiita/team/services/hooks/concerns/slack.rb', line 136 def project_comment_created(event) fallback = "New #{comment_link(event.comment)} on #{project_link(event.project)}" ( attachments: [ fallback: fallback, pretext: fallback, author_name: "@#{event.user.url_name}", author_link: event.user.url, author_icon: event.user.profile_image_url, text: truncate(Slacken.translate(event.comment.rendered_body), event.comment.url), mrkdwn_in: ["text"], ], ) end |
#project_comment_destroyed(event) ⇒ void
This method returns an undefined value.
163 164 165 166 167 |
# File 'lib/qiita/team/services/hooks/concerns/slack.rb', line 163 def project_comment_destroyed(event) ( text: "#{user_link(event.user)} deleted a comemnt on #{project_link(event.project)}", ) end |
#project_comment_updated(event) ⇒ void
This method returns an undefined value.
154 155 156 157 158 |
# File 'lib/qiita/team/services/hooks/concerns/slack.rb', line 154 def project_comment_updated(event) text = "#{user_link(event.user)} updated a #{comment_link(event.comment)}" text << " on #{project_link(event.project)}" (text: text) end |
#project_created(event) ⇒ void
This method returns an undefined value.
190 191 192 193 194 |
# File 'lib/qiita/team/services/hooks/concerns/slack.rb', line 190 def project_created(event) ( text: "#{user_link(event.user)} created #{project_link(event.project)} project", ) end |
#project_destroyed(event) ⇒ void
This method returns an undefined value.
208 209 210 211 212 |
# File 'lib/qiita/team/services/hooks/concerns/slack.rb', line 208 def project_destroyed(event) ( text: "#{user_link(event.user)} deleted #{project_link(event.project)} project", ) end |
#project_updated(event) ⇒ void
This method returns an undefined value.
199 200 201 202 203 |
# File 'lib/qiita/team/services/hooks/concerns/slack.rb', line 199 def project_updated(event) ( text: "#{user_link(event.user)} updated #{project_link(event.project)} project", ) end |
#team_member_added(event) ⇒ void
This method returns an undefined value.
172 173 174 175 176 |
# File 'lib/qiita/team/services/hooks/concerns/slack.rb', line 172 def team_member_added(event) ( text: "#{user_link(event.member)} was added to the #{team_link(event.team)} team", ) end |
#team_member_removed(event) ⇒ void
This method returns an undefined value.
181 182 183 184 185 |
# File 'lib/qiita/team/services/hooks/concerns/slack.rb', line 181 def team_member_removed(event) ( text: "#{event.member.name} was removed from the #{team_link(event.team)} team", ) end |