app/controllers/landable/api/assets_controller.rb in landable-1.7.1.rc1 vs app/controllers/landable/api/assets_controller.rb in landable-1.8.0
- old
+ new
@@ -1,55 +1,73 @@
-require_dependency "landable/api_controller"
-require_dependency "landable/asset_search_engine"
+require_dependency 'landable/api_controller'
+require_dependency 'landable/asset_search_engine'
module Landable
module Api
class AssetsController < ApiController
- def index
- search = Landable::AssetSearchEngine.new search_params.merge(ids: params[:ids])
- respond_with search.results, meta: search.meta
- end
-
- def show
- respond_with Asset.find(params[:id])
- end
-
+ # filters
+ before_filter :load_asset, except: [:create, :index]
+
+ # RESTful methods
def create
- asset = Asset.new asset_params
+ asset = Asset.new(asset_params)
if original = asset.duplicate_of
head :moved_permanently, location: asset_url(original)
return
end
-
+
Asset.transaction do
asset.author = current_author
asset.save!
end
-
+
respond_with asset, status: :created, location: asset_url(asset)
end
-
- def update
- asset = Asset.find(params[:id])
-
- asset.update_attributes! asset_params
-
- respond_with asset
+
+ def destroy
+ @asset.try(:deactivate)
+
+ respond_with @asset
end
+
+ def index
+ search = Landable::AssetSearchEngine.new(search_params.merge(ids: params[:ids]))
+ respond_with search.results, meta: search.meta
+ end
- private
-
- def search_params
- @search_params ||=
- begin
- hash = params.permit(search: [:name])
- hash[:search] || {}
- end
+ def reactivate
+ @asset.try(:reactivate)
+
+ respond_with @asset
end
+
+ def show
+ respond_with @asset
+ end
+
+ def update
+ @asset.update_attributes!(asset_params)
- def asset_params
- params.require(:asset).permit(:id, :name, :description, :data, :file)
+ respond_with @asset
end
+
+ # custom methods
+ private
+ def asset_params
+ params.require(:asset).permit(:id, :name, :description, :data, :file)
+ end
+
+ def load_asset
+ @asset = Asset.find(params[:id])
+ end
+
+ def search_params
+ @search_params ||=
+ begin
+ hash = params.permit(search: [:name])
+ hash[:search] || {}
+ end
+ end
end
end
end