docbrown/app/controllers/giveaways_controller.rb
rhymes e588fa7ece Code cleanups (#659)
* Initial automatic cleanup with rubocop

* Fix syntax error introduced by rubocop

* Cleanup seeds file

* Cleanup lib folder

* Exclude bin folder because it contains auto generated files

* Make Rubocop a little bit more chatty

* Block length should not include comments in the count

* Cleanup config folder

* Cleanup specs

* Updated Rubocop version and generated a todo file

* Fix broken ArticlesApi spec

* Fix tests

* Restored rubocop pre-commit hook
2018-08-07 11:00:13 -04:00

112 lines
3.1 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
@user.onboarding_package_requested_again = true if @user.onboarding_package_requested
@user.onboarding_package_requested = true
@user.onboarding_package_form_submmitted_at = Time.now.to_datetime
@user.personal_data_updated_at = Time.now.to_datetime
@user.shipping_validated_at = Time.now.to_datetime 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 the white list 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
unless user_params[:top_languages].present?
@errors << "You need to include your favorite languages. It's a spam filter."
@invalid_form = true
end
end
def prevent_request_if_requested_twice
return if current_user.onboarding_package_requested_again
end
end