class Api::V1::AccountsController < Api::BaseController skip_before_action :verify_authenticity_token, only: [:create] skip_before_action :authenticate_user!, :set_current_user, :check_subscription, :handle_with_exception, only: [:create], raise: false rescue_from CustomExceptions::Account::InvalidEmail, CustomExceptions::Account::UserExists, CustomExceptions::Account::UserErrors, with: :render_error_response def create @user = AccountBuilder.new(params).perform if @user set_headers(@user) render json: { data: @user.token_validation_response } else render_error_response(CustomExceptions::Account::SignupFailed.new({})) end end private def set_headers(user) data = user.create_new_auth_token response.headers[DeviseTokenAuth.headers_names[:"access-token"]] = data['access-token'] response.headers[DeviseTokenAuth.headers_names[:"token-type"]] = 'Bearer' response.headers[DeviseTokenAuth.headers_names[:client]] = data['client'] response.headers[DeviseTokenAuth.headers_names[:expiry]] = data['expiry'] response.headers[DeviseTokenAuth.headers_names[:uid]] = data['uid'] end end