assemblymade/coderwall

View on GitHub
app/controllers/skills_controller.rb

Summary

Maintainability
A
1 hr
Test Coverage
class SkillsController < ApplicationController

  # POST                  /users/:user_id/skills(.:format)
  def create
    @user = (params[:user_id] && User.find(params[:user_id])) || current_user
    return head(:forbidden) unless current_user == @user
    if params[:skill][:name] == "skills separated by comma"
      skill_names = []
    else
      skill_names = params[:skill][:name].split(",")
    end
    correct_skill_names = []
    skill_names.each do |skill_name|
      skill_name = ActionController::Base.helpers.sanitize(skill_name)
      skill      = @user.add_skill(skill_name)
      unless skill.nil?
        correct_skill_names << skill.name
      end
    end
    if correct_skill_names.blank?
      flash[:error] = "Hmm...couldn't recognize '#{skill_names.flatten.join(',')}'"
    else
      flash[:notice] = "Whoa...you're good at #{correct_skill_names.to_sentence}? Awesome!"
    end
    redirect_to(badge_url(username: @user.username))
  end

  # DELETE                /users/:user_id/skills/:id(.:format)
  def destroy
    redirect_to_signup_if_unauthenticated do
      @skill = current_user.skills.find(params[:id])
      if @skill

        #record_event('deleted skill', :skill => @skill.tokenized)
        flash[:notice] = "Ok got it...you're no longer into #{@skill.name}"
        @skill.destroy
        redirect_to(badge_url(username: @skill.user.username))
      end
    end
  end

end