Class: Journeybook::Admin::MediaAssetsController
- Inherits:
-
Journeybook::ApplicationController
- Object
- ActionController::Base
- Journeybook::ApplicationController
- Journeybook::Admin::MediaAssetsController
- Defined in:
- app/controllers/journeybook/admin/media_assets_controller.rb
Instance Method Summary collapse
Instance Method Details
#create ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'app/controllers/journeybook/admin/media_assets_controller.rb', line 15 def create @media_asset = MediaAsset.new(media_asset_params) file = params.dig(:media_asset, :file) unless file.respond_to?(:read) @media_asset.errors.add(:base, "Image file is required.") return render :new, status: :unprocessable_entity end unless MediaAsset::IMAGE_CONTENT_TYPES.include?(file.content_type.to_s) @media_asset.errors.add(:content_type, "must be PNG, JPEG, WebP, GIF, or SVG") return render :new, status: :unprocessable_entity end upload = Journeybook::Storage::S3Client.new.upload(file) @media_asset.assign_attributes(upload.to_h) @media_asset.title = upload.original_filename if @media_asset.title.blank? if @media_asset.save redirect_to admin_media_assets_path, notice: "Image uploaded." else Journeybook::Storage::S3Client.new.delete(upload.storage_key) render :new, status: :unprocessable_entity end end |
#destroy ⇒ Object
41 42 43 44 |
# File 'app/controllers/journeybook/admin/media_assets_controller.rb', line 41 def destroy MediaAsset.find(params[:id]).destroy redirect_to admin_media_assets_path, notice: "Image deleted." end |
#index ⇒ Object
6 7 8 9 |
# File 'app/controllers/journeybook/admin/media_assets_controller.rb', line 6 def index @media_asset = MediaAsset.new @media_assets = MediaAsset.order(created_at: :desc) end |
#new ⇒ Object
11 12 13 |
# File 'app/controllers/journeybook/admin/media_assets_controller.rb', line 11 def new @media_asset = MediaAsset.new end |