* Remove email blank onboarding redirect * Add authorization specs for video upload * Add registration spec * Remove skip before actions for signup complete * Use new param for abuse reports * Remove else because it never runs * Add more dashboard request specs * Use let with no bang in case there are errors
112 lines
3.5 KiB
Ruby
112 lines
3.5 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 = [
|
|
: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
|