docbrown/app/controllers/giveaways_controller.rb
Keshav Biswa 8d57d45ecc Rubocop Style cops enabled (#2056)
* Rubocop enabled style/alias

* Enabled Style/ArrayJoin Cop

* Enabled Style/Attr

* Enabled Case Equality

* Enabled CharacterLiteral

*  Enabled ColonMethodCall Cop

* Enabled CommentAnnotation cop

* Enabled PreferredHashMethods Cop

*  Enabled DoubleNegation Cop

* Enabled EachWithObject Cop

* Enabled EmptyLiteral Cop

* Enabled EvenOdd Cop

* Enabled IfWithSemicolon Cop

* Enabled Lambda and LambdaCall Cop

* Enabled LineEndConcatenation Cop

* Enabled ModuleFunction Cop;

* Enable NegatedIf and NegatedWhile Cop

* Enabled NilComparison Cop

* Enabled Not Cop

* Enabled NumericLiterals Cop

* Enabled OneLineConditional Cop

* Enabled PercentLiteralDelimiters Cop

* Excluded internal/users_controller from negated_if cop

* Reverted the double negation change from github_issue_tag and github_issue.rb"

* Enabled PerlBackrefs Cop

* Changed Regexp.last_match(1) to Regexp.last_match(0)

* Enabled proc cop

* Enabled RaiseArgs Cop

* Reverted Regexp.last_match(0) to Regexp.last_match(1)

* Enabled SelfAssignment Cop

* Enabled SingleLineMethods Cop

* Enabled SpecialGlobalVars Cop

* Enabled VariableInterpolation Cop

* Enabled WhenThen Cop

* Enabled WhileUntilModifier Cop

* Enabled WordArray Cop

* Enabled IfUnlessModifier Cop

* Enabled GuardClause Cop
2019-03-15 18:33:54 -04:00

114 lines
3 KiB
Ruby

class GiveawaysController < ApplicationController
# GET /giveaways/new
def new
@user = current_user
@errors = []
end
def edit
@user = current_user
@errors = []
end
# POST /giveaways
# POST /giveaways.json
# def create
# @user = User.new(giveaway_params)
#
# respond_to do |format|
# if @user.save
# format.html { redirect_to @user, notice: 'Giveaway was successfully created.' }
# format.json { render :show, status: :created, location: @user }
# else
# format.html { render :new }
# format.json { render json: @user.errors, status: :unprocessable_entity }
# end
# end
# end
# PATCH/PUT /giveaways/1
# PATCH/PUT /giveaways/1.json
def update
prevent_request_if_requested_twice
@user = current_user
@user.assign_attributes(user_params)
@errors = []
confirm_presence
respond_to do |format|
if @invalid_form
render :edit
return
end
now = Time.current
@user.onboarding_package_requested_again = true if @user.onboarding_package_requested
@user.onboarding_package_requested = true
@user.onboarding_package_form_submmitted_at = now
@user.personal_data_updated_at = now
@user.shipping_validated_at = now if user_params[:shipping_validated] == "1"
if @user.save!
format.html { redirect_to "/freestickers/edit" }
format.json { render :show, status: :ok, location: @user }
else
format.html { render :edit }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
private
# Never trust parameters from the scary internet, only allow a subset to go through.
def user_params
accessible = %i[
email
shipping_name
shipping_company
shipping_address
shipping_address_line_2
shipping_city
shipping_state
shipping_country
shipping_postal_code
shipping_validated
top_languages
experience_level
specialty
tabs_or_spaces
onboarding_package_requested
onboarding_package_form_submmitted_at
personal_data_updated_at
shirt_size
shirt_gender
]
params.require(:user).permit(accessible)
end
def confirm_presence
unless user_params[:shipping_name].present?
@errors << "You need a shipping name"
@invalid_form = true
end
unless user_params[:shipping_address].present?
@errors << "You need a shipping address"
@invalid_form = true
end
unless user_params[:shipping_city].present?
@errors << "You need a shipping city"
@invalid_form = true
end
unless user_params[:shipping_country].present?
@errors << "You need a shipping country"
@invalid_form = true
end
return if user_params[:top_languages].present?
@errors << "You need to include your favorite languages. It's a spam filter."
@invalid_form = true
end
def prevent_request_if_requested_twice
return if current_user.onboarding_package_requested_again
end
end