Sha256: 8b8297fa4e628e1d608b0e370030f3d86e18e2e9b18fd9445dac1c339cc830ad

Contents?: true

Size: 1016 Bytes

Versions: 1

Compression:

Stored size: 1016 Bytes

Contents

class ErrorReporter < Controller
	self.define do
		on error(
			Configuration::S3NoSuchKeyError,
			Configuration::NoSuchFileError
		)	do |error|
			write_error 404, error
		end

		on error MemoryLimit::MemoryLimitedExceededError do |error|
			write_error 413, error
		end

		on error Configuration::Thumbnail::ThumbnailingError do |error|
			status = defined?(error.remote_error.status) ? error.remote_error.status : 500
			write_error status, error
		end

		on error(
			Configuration::ZeroBodyLengthError,
			Configuration::NoSpecSelectedError,
			Configuration::InvalidSpecError
		) do |error|
			write_error 400, error
		end

		on error(Configuration::HMACAuthenticationFailedError) do |error|
			write_error 403, error
		end

		on error Configuration::SourceFailoverAllFailedError do |error|
			if [Configuration::S3NoSuchKeyError, Configuration::NoSuchFileError].member? error.errors.first.class
				write_error 404, error
			else
				write_error 500, error
			end
		end

		run DefaultErrorReporter
	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
httpimagestore-1.9.0 lib/httpimagestore/error_reporter.rb