Sha256: ee9b14914354627d7564dbcf0dd8e21fe43a13cc2b1ac8ef4c5977177aea48a0
Contents?: true
Size: 1.63 KB
Versions: 2
Compression:
Stored size: 1.63 KB
Contents
# frozen_string_literal: true require "json" module Backup module Notifier class Campfire < Base ## # Campfire api authentication token attr_accessor :api_token ## # Campfire account's subdomain attr_accessor :subdomain ## # Campfire account's room id attr_accessor :room_id def initialize(model, &block) super instance_eval(&block) if block_given? end private ## # Notify the user of the backup operation results. # # `status` indicates one of the following: # # `:success` # : The backup completed successfully. # : Notification will be sent if `on_success` is `true`. # # `:warning` # : The backup completed successfully, but warnings were logged. # : Notification will be sent if `on_warning` or `on_success` is `true`. # # `:failure` # : The backup operation failed. # : Notification will be sent if `on_warning` or `on_success` is `true`. # def notify!(status) send_message(message.call(model, status: status_data_for(status))) end def send_message(message) uri = "https://#{subdomain}.campfirenow.com/room/#{room_id}/speak.json" options = { headers: { "Content-Type" => "application/json" }, body: JSON.dump( message: { body: message, type: "Textmessage" } ) } options[:user] = api_token options[:password] = "x" # Basic Auth options[:expects] = 201 # raise error if unsuccessful Excon.post(uri, options) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
backupii-0.1.0.pre.alpha.2 | lib/backup/notifier/campfire.rb |
backupii-0.1.0.pre.alpha.1 | lib/backup/notifier/campfire.rb |