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