class Ruboty::Handlers::Fastly
Constants
- VERSION
Public Instance Methods
list_services(message)
click to toggle source
# File lib/ruboty/handlers/fastly.rb, line 21 def list_services(message) reversed_aliases = aliases.to_a.group_by(&:last).map { |sid, _| [sid, _.map(&:first)] }.to_h list = fastly.list_services.map do |service| "- `#{service.id}` #{service.name}#{reversed_aliases[service.id] ? " (alias: #{reversed_aliases[service.id].join(', ')})" : nil}" end message.reply list.join("\n") rescue => e message.reply e.inspect end
purge_all(message)
click to toggle source
# File lib/ruboty/handlers/fastly.rb, line 70 def purge_all(message) service = service_for(message[:service_id]) Thread.new(purge_cancellations) do |count| begin sleep 15 next if count != purge_cancellations service.purge_all() message.reply "Purged all from Fastly `#{service.id}`" rescue => e message.reply e.inspect end end message.reply "Purging Fastly `#{service.id}` after next 15 seconds, cancel by saying: `fastly cancel`" rescue => e message.reply e.inspect end
purge_cancel(message)
click to toggle source
# File lib/ruboty/handlers/fastly.rb, line 88 def purge_cancel(message) cancel_all_pending_purges message.reply "Cancelled the pending purge requests." end
purge_key(message)
click to toggle source
# File lib/ruboty/handlers/fastly.rb, line 57 def purge_key(message) soft = !!message[:soft] service = service_for(message[:service_id]) keys = message[:keys].split(/\s+/) keys.each do |key| service.purge_by_key(key, soft) message.reply "#{soft ? 'Soft ' : nil}Purged Fastly `#{service.id}` by key: `#{key}`" end rescue => e message.reply e.inspect end
purge_url(message)
click to toggle source
# File lib/ruboty/handlers/fastly.rb, line 49 def purge_url(message) soft = !!message[:soft] fastly.purge(message[:url], soft) message.reply "#{soft ? 'Soft ' : nil}Purged `#{message[:url]}`" rescue => e message.reply e.inspect end
remove_alias(message)
click to toggle source
# File lib/ruboty/handlers/fastly.rb, line 39 def remove_alias(message) if aliases.delete(message[:name]) message.reply "Removed alias #{message[:name]}" else message.reply "Alias #{message[:name]} doesn't exist" end rescue => e message.reply e.inspect end
set_alias(message)
click to toggle source
# File lib/ruboty/handlers/fastly.rb, line 32 def set_alias(message) aliases[message[:name]] = message[:service_id] message.reply "Added an alias: #{message[:name]} > `#{message[:service_id]}`" rescue => e message.reply e.inspect end
Private Instance Methods
aliases()
click to toggle source
# File lib/ruboty/handlers/fastly.rb, line 103 def aliases robot.brain.data['fastly.aliases'] ||= {} end
cancel_all_pending_purges()
click to toggle source
# File lib/ruboty/handlers/fastly.rb, line 111 def cancel_all_pending_purges @purge_cancellations = purge_cancellations + 1 end
fastly()
click to toggle source
# File lib/ruboty/handlers/fastly.rb, line 95 def fastly ::Fastly.new(api_key: ENV.fetch('FASTLY_API_KEY')) end
purge_cancellations()
click to toggle source
# File lib/ruboty/handlers/fastly.rb, line 107 def purge_cancellations @purge_cancellations ||= 0 end
service_for(name)
click to toggle source
# File lib/ruboty/handlers/fastly.rb, line 99 def service_for(name) ::Fastly::Service.new({ id: aliases[name] || name }, fastly) end