Sha256: fc1ebaaa9e46eb36102847b848c9457811f934e01ae8d90c55bc39c938eb3f3a

Contents?: true

Size: 1.23 KB

Versions: 57

Compression:

Stored size: 1.23 KB

Contents

module Cmor::Tags::Backend
  class TaggingsController < Cmor::Core::Backend::ResourcesController::Base
    before_action :normalize_global_ids, only: [:create, :update]

    def self.resource_class
      Cmor::Tags::Tagging
    end

    def create_by_gid_and_tag
      @taggable = load_taggable
      @tag      = load_tag
      @taggable.tags << @tag

      respond_to do |format|
        format.js { flash.now[:notice] = t('.success') }
      end
    end

    def set_by_gid_and_tag
      @taggable = load_taggable
      @tag      = load_tag
      @taggable.tags = [@tag]

      respond_to do |format|
        format.js { flash.now[:notice] = t('.success') }
      end
    end

    private

    def normalize_global_ids
      taggable_gid = params[:tagging].delete(:taggable)
      params[:tagging][:taggable] = GlobalID::Locator.locate(taggable_gid)

      tagger_gid = params[:tagging].delete(:tagger)
      params[:tagging][:tagger] = GlobalID::Locator.locate(tagger_gid)
    end

    def load_taggable
      GlobalID::Locator.locate(params[:gid])
    end

    def load_tag
      Cmor::Tags::Tag.find(params[:tag_id])
    end

    def permitted_params
      params.require(:tagging).permit(:name, :tag_id, :taggable, :tagger, :context)
    end
  end
end

Version data entries

57 entries across 57 versions & 1 rubygems

Version Path
cmor_tags_backend-0.0.60.pre app/controllers/cmor/tags/backend/taggings_controller.rb
cmor_tags_backend-0.0.59.pre app/controllers/cmor/tags/backend/taggings_controller.rb
cmor_tags_backend-0.0.58.pre app/controllers/cmor/tags/backend/taggings_controller.rb
cmor_tags_backend-0.0.57.pre app/controllers/cmor/tags/backend/taggings_controller.rb
cmor_tags_backend-0.0.56.pre app/controllers/cmor/tags/backend/taggings_controller.rb
cmor_tags_backend-0.0.55.pre app/controllers/cmor/tags/backend/taggings_controller.rb
cmor_tags_backend-0.0.54.pre app/controllers/cmor/tags/backend/taggings_controller.rb
cmor_tags_backend-0.0.53.pre app/controllers/cmor/tags/backend/taggings_controller.rb
cmor_tags_backend-0.0.52.pre app/controllers/cmor/tags/backend/taggings_controller.rb
cmor_tags_backend-0.0.51.pre app/controllers/cmor/tags/backend/taggings_controller.rb
cmor_tags_backend-0.0.50.pre app/controllers/cmor/tags/backend/taggings_controller.rb
cmor_tags_backend-0.0.49.pre app/controllers/cmor/tags/backend/taggings_controller.rb
cmor_tags_backend-0.0.48.pre app/controllers/cmor/tags/backend/taggings_controller.rb
cmor_tags_backend-0.0.45.pre app/controllers/cmor/tags/backend/taggings_controller.rb
cmor_tags_backend-0.0.44.pre app/controllers/cmor/tags/backend/taggings_controller.rb
cmor_tags_backend-0.0.43.pre app/controllers/cmor/tags/backend/taggings_controller.rb
cmor_tags_backend-0.0.42.pre app/controllers/cmor/tags/backend/taggings_controller.rb
cmor_tags_backend-0.0.41.pre app/controllers/cmor/tags/backend/taggings_controller.rb
cmor_tags_backend-0.0.40.pre app/controllers/cmor/tags/backend/taggings_controller.rb
cmor_tags_backend-0.0.39.pre app/controllers/cmor/tags/backend/taggings_controller.rb