# frozen_string_literal: true

class Users::RegistrationsController < Devise::RegistrationsController
  # before_action :configure_sign_up_params, only: [:create]
  # before_action :configure_account_update_params, only: [:update]

  # GET /resource/sign_up
  # def new
  #   super
  # end

  # POST /resource
  # def create
  #   super
  # end

  # GET /resource/edit
  # def edit
  #   super
  # end

def update
  self.resource = resource_class.to_adapter.get!(send(:"current_#{resource_name}").to_key)

  if validate_avatar(account_update_params[:avatar]) && resource.update(account_update_params)
    redirect_to users_show_path(current_user)
    flash.now[:notice] = "ユーザー情報を更新しました"
  else
    render :edit, status: :unprocessable_entity
  end
end

  # DELETE /resource
  # def destroy
  #   super
  # end

  # GET /resource/cancel
  # Forces the session data which is usually expired after sign
  # in to be expired now. This is useful if the user wants to
  # cancel oauth signing in/up in the middle of the process,
  # removing all OAuth session data.
  # def cancel
  #   super
  # end

  protected
  def update_resource(resource, params)
    resource.update_without_password(params)
  end

  def account_update_params
    devise_parameter_sanitizer.sanitize(:account_update)
  end

  def validate_avatar(avatar)
    return true if avatar.blank?

    result = Vision.image_analysis(avatar)

    unless result
      flash[:error] = '不適切な画像です'
      return false
    end

    true
  end
  # If you have extra params to permit, append them to the sanitizer.
  # def configure_sign_up_params
  #   devise_parameter_sanitizer.permit(:sign_up, keys: [:attribute])
  # end

  # If you have extra params to permit, append them to the sanitizer.
  # def configure_account_update_params
  #   devise_parameter_sanitizer.permit(:account_update, keys: [:attribute])
  # end

  # The path used after sign up.
  # def after_sign_up_path_for(resource)
  #   super(resource)
  # end

  # The path used after sign up for inactive accounts.
  # def after_inactive_sign_up_path_for(resource)
  #   super(resource)
  # end
end
