Class: Hippo::API::Handlers::Asset
- Inherits:
-
Object
- Object
- Hippo::API::Handlers::Asset
- Defined in:
- lib/hippo/api/handlers/asset.rb
Class Method Summary collapse
Class Method Details
.asset_getter ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/hippo/api/handlers/asset.rb', line 47 def self.asset_getter webpack = Hippo::API::Root.webpack if Hippo.env.production? lambda do file = webpack.file(params['asset'].to_sym, raise_on_not_found: false) if file redirect "/assets/#{file}" else halt 404 end end else lambda do webpack.wait_until_available file = webpack.file(params['asset'].to_sym, raise_on_not_found: false) if file protocol = 'http' protocol += 's' if Hippo::Webpack.using_ssl? redirect "#{protocol}://#{env['SERVER_NAME']}:#{webpack.process.port}/assets/#{file}" else halt 404 end end end end |
.deleter ⇒ Object
5 6 7 8 9 10 11 |
# File 'lib/hippo/api/handlers/asset.rb', line 5 def self.deleter lambda do asset = ::Hippo::Asset.find(params['id']) asset.destroy json_reply std_api_reply(:destroy, asset, {}) end end |
.file_getter ⇒ Object
40 41 42 43 44 45 |
# File 'lib/hippo/api/handlers/asset.rb', line 40 def self.file_getter root = Hippo::Extensions.controlling.root_path.join('public', 'files') lambda do send_file(root.join(params['splat'].first).to_s) end end |
.saver ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/hippo/api/handlers/asset.rb', line 14 def self.saver lambda do model = params['owner_type'].underscore.camelize.constantize authentication = Hippo::API::AuthenticationProvider.new(request) authentication.wrap_model_access(model, self) do owner = model.find(params['owner_id']) asset = if params['id'] ::Hippo::Asset.find(params['id']) else assoc = owner.class.reflections[ params['owner_association'] ] if assoc.collection? owner.send(params['owner_association']).build else owner.send("build_#{params['owner_association']}") end end asset.file = params['file'] json_reply std_api_reply asset.new_record? ? :update : :create, asset, success: asset.save end end end |