class Qiita::Team::Services::Hooks::Webhook
Public Class Methods
@return [String]
# File lib/qiita/team/services/hooks/webhook.rb, line 26 def self.generate_token SecureRandom.base64(20) end
@param hash [Hash{String => Object}]
Qiita::Team::Services::Hooks::Concerns::Persistable::new
# File lib/qiita/team/services/hooks/webhook.rb, line 31 def initialize(hash) unless hash.key?("token") hash = hash.dup.merge("token" => self.class.generate_token) end super(hash) end
@note Override {Qiita::Team::Services::Hooks::Base.service_name}.
# File lib/qiita/team/services/hooks/webhook.rb, line 21 def self.service_name "Webhook" end
Public Instance Methods
@param event [Qiita::Team::Services::Events::ItemCommentCreated]
# File lib/qiita/team/services/hooks/webhook.rb, line 77 def item_comment_created(event) send_hook( action: "created", model: "comment", comment: event.resource, item: event.item, ) end
@param event [Qiita::Team::Services::Events::ItemCommentDestroyed]
# File lib/qiita/team/services/hooks/webhook.rb, line 97 def item_comment_destroyed(event) send_hook( action: "destroyed", model: "comment", comment: event.resource, item: event.item, ) end
@param event [Qiita::Team::Services::Events::ItemCommentUpdated]
# File lib/qiita/team/services/hooks/webhook.rb, line 87 def item_comment_updated(event) send_hook( action: "updated", model: "comment", comment: event.resource, item: event.item, ) end
@param event [Qiita::Team::Services::Events::ItemCreated]
# File lib/qiita/team/services/hooks/webhook.rb, line 47 def item_created(event) send_hook( action: "created", model: "item", item: event.resource, user: event.user, ) end
@param event [Qiita::Team::Services::Events::ItemDestroyed]
# File lib/qiita/team/services/hooks/webhook.rb, line 68 def item_destroyed(event) send_hook( action: "destroyed", model: "item", item: event.resource, ) end
@param event [Qiita::Team::Services::Events::ItemUpdated]
# File lib/qiita/team/services/hooks/webhook.rb, line 57 def item_updated(event) send_hook( action: "updated", model: "item", message: event.resource.message, item: event.resource, user: event.user, ) end
# File lib/qiita/team/services/hooks/webhook.rb, line 38 def ping send_hook( action: "requested", message: "ping", model: "ping", ) end
@param event [Qiita::Team::Services::Events::ProjectCommentCreated]
# File lib/qiita/team/services/hooks/webhook.rb, line 107 def project_comment_created(event) send_hook( action: "created", model: "comment", comment: event.resource, item: event.project, ) end
@param event [Qiita::Team::Services::Events::ProjectCommentDestroyed]
# File lib/qiita/team/services/hooks/webhook.rb, line 127 def project_comment_destroyed(event) send_hook( action: "destroyed", model: "comment", comment: event.resource, item: event.project, ) end
@param event [Qiita::Team::Services::Events::ProjectCommentUpdated]
# File lib/qiita/team/services/hooks/webhook.rb, line 117 def project_comment_updated(event) send_hook( action: "updated", model: "comment", comment: event.resource, item: event.project, ) end
@param event [Qiita::Team::Services::Events::ProjectCreated]
# File lib/qiita/team/services/hooks/webhook.rb, line 155 def project_created(event) send_hook( action: "created", model: "project", project: event.resource, user: event.user, ) end
@param event [Qiita::Team::Services::Events::ProjectDestroyed]
# File lib/qiita/team/services/hooks/webhook.rb, line 176 def project_destroyed(event) send_hook( action: "destroyed", model: "project", project: event.resource, ) end
@param event [Qiita::Team::Services::Events::ProjectUpdated]
# File lib/qiita/team/services/hooks/webhook.rb, line 165 def project_updated(event) send_hook( action: "updated", model: "project", message: event.resource.message, project: event.resource, user: event.user, ) end
@param event [Qiita::Team::Services::Events::TeamMemberAdded]
# File lib/qiita/team/services/hooks/webhook.rb, line 137 def team_member_added(event) send_hook( action: "added", model: "member", user: event.resource, ) end
@param event [Qiita::Team::Services::Events::TeamMemberRemoved]
# File lib/qiita/team/services/hooks/webhook.rb, line 146 def team_member_removed(event) send_hook( action: "removed", model: "member", user: event.resource, ) end
Private Instance Methods
# File lib/qiita/team/services/hooks/webhook.rb, line 186 def send_hook(properties) http_post( properties.as_json, { "X-Qiita-Event-Model" => properties[:model], "X-Qiita-Token" => token, }.reject { |_key, value| value.nil? }, ) end