module ZuoraConnect::Authenticate

def setup_instance_via_dev_mode

def setup_instance_via_dev_mode
  app_instance_id = ZuoraConnect.configuration.dev_mode_appinstance
  session['appInstance'] = app_instance_id
  session["#{app_instance_id}::admin"] = ZuoraConnect.configuration.dev_mode_admin
  values = {
    id: app_instance_id,
    access_token: ZuoraConnect.configuration.dev_mode_user,
    refresh_token: ZuoraConnect.configuration.dev_mode_pass,
    token: ZuoraConnect.configuration.dev_mode_pass + ZuoraConnect.configuration.dev_mode_pass,
    api_token: ZuoraConnect.configuration.dev_mode_pass + ZuoraConnect.configuration.dev_mode_pass
  }
  @appinstance = ZuoraConnect::AppInstance.find_by(id: app_instance_id)
  ZuoraConnect::ZuoraUser.current_user_id = 0
  if @appinstance.blank?
    Apartment::Tenant.switch!('public')
    begin
      Apartment::Tenant.create(app_instance_id)
    rescue Apartment::TenantExists
      Apartment::Tenant.drop(app_instance_id)
      retry
    end
    @appinstance = ZuoraConnect::AppInstance.new
  end
  @appinstance.assign_attributes(values)
  @appinstance.save(validate: false)
end