Class: InlineUploader::EndPoint
- Inherits:
-
Object
- Object
- InlineUploader::EndPoint
- Defined in:
- lib/inline_uploader.rb
Defined Under Namespace
Classes: BadRequestError
Constant Summary collapse
- HEADERS =
{'Content-Type' => 'text/plain'}
- SUCCESS =
[200, HEADERS, ['success']]
- BAD_REQUEST =
[400, HEADERS, ['bad request']]
- ERROR =
[500, HEADERS, ['error']]
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(delegate) ⇒ EndPoint
constructor
A new instance of EndPoint.
Constructor Details
#initialize(delegate) ⇒ EndPoint
Returns a new instance of EndPoint.
127 128 129 |
# File 'lib/inline_uploader.rb', line 127 def initialize(delegate) @delegate = delegate end |
Instance Method Details
#call(env) ⇒ Object
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 |
# File 'lib/inline_uploader.rb', line 131 def call(env) request = Rack::Request.new(env) raise BadRequestError unless valid_request? request tag = request.params.keys.detect {|k| valid_tag? k } raise BadRequestError unless tag file = request.params[tag] raise BadRequestError unless file.member?(:tempfile) logger.info "Upload file: #{file.inspect}" upload = File.join(@delegate.upload_dir, tag) FileUtils.mkdir_p @delegate.upload_dir FileUtils.move file[:tempfile].path, upload File.open("#{upload}_meta", 'w') do |f| file.delete(:tempfile) f.puts file.to_yaml end SUCCESS rescue BadRequestError BAD_REQUEST rescue Exception => e logger.error e.inspect logger.error e.backtrace.join("\n") ERROR end |