Sha256: ec96c950ef3fc1591ef98e92e7937761b3021968b30c41abffd654811a1787ed

Contents?: true

Size: 1.89 KB

Versions: 11

Compression:

Stored size: 1.89 KB

Contents

class Kaui::AccountTagsController < Kaui::EngineController

  def show
    account_id = params[:id]

    if account_id.present?
      begin
        tags = Kaui::KillbillHelper::get_tags_for_account(account_id)
      rescue => e
        flash[:error] = "Error while getting tags: #{as_string(e)}"

      end
    else
      flash[:error] = "No account id given"
    end
  end

  def edit
    @account_id = params[:account_id]
    begin
      @available_tags = Kaui::TagDefinition.all_for_account.sort
      @account = Kaui::KillbillHelper::get_account(@account_id)
      @tag_names = Kaui::KillbillHelper::get_tags_for_account(@account.account_id).map { |tag| tag.tag_definition_name }
    rescue => e
      flash[:error] = "Error while editing tags: #{as_string(e)}"
    end
  end

  def update
    begin
      current_tags = Kaui::KillbillHelper::get_tags_for_account(params[:account_id]).map { |tag| tag.tag_definition_id }

      new_tags = []
      params.each do |tag, tag_name|
        tag_info = tag.split('_')
        next if tag_info.size != 2 or tag_info[0] != 'tag'
        new_tags << tag_info[1]
      end

      # Find tags to remove
      tags_to_remove = []
      current_tags.each do |current_tag_definition_id|
        tags_to_remove << current_tag_definition_id unless new_tags.include?(current_tag_definition_id)
      end

      # Find tags to add
      tags_to_add = []
      new_tags.each do |new_tag_definition_id|
        tags_to_add << new_tag_definition_id unless current_tags.include?(new_tag_definition_id)
      end

      Kaui::KillbillHelper::remove_tags_for_account(params[:account_id], tags_to_remove) unless tags_to_remove.empty?
      Kaui::KillbillHelper::add_tags_for_account(params[:account_id], tags_to_add) unless tags_to_add.empty?
    rescue => e
      flash[:error] = "Error while updating tags: #{as_string(e)}"
    end
    redirect_to kaui_engine.account_path(params[:account_id])
  end

end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
kaui-0.2.6 app/controllers/kaui/account_tags_controller.rb
kaui-0.2.5 app/controllers/kaui/account_tags_controller.rb
kaui-0.2.4 app/controllers/kaui/account_tags_controller.rb
kaui-0.2.3 app/controllers/kaui/account_tags_controller.rb
kaui-0.2.2 app/controllers/kaui/account_tags_controller.rb
kaui-0.2.1 app/controllers/kaui/account_tags_controller.rb
kaui-0.2.0 app/controllers/kaui/account_tags_controller.rb
kaui-0.1.18 app/controllers/kaui/account_tags_controller.rb
kaui-0.1.17 app/controllers/kaui/account_tags_controller.rb
kaui-0.1.16 app/controllers/kaui/account_tags_controller.rb
kaui-0.1.15 app/controllers/kaui/account_tags_controller.rb