class ZuoraConnect::StaticController
def clear_connect_app_session
def clear_connect_app_session Thread.current[:appinstance] = nil request.session_options[:skip] = true end
def health
def health if params[:error].present? begin raise ZuoraConnect::Exceptions::Error.new('This is an error') rescue => ex case params[:error] when 'Log' Rails.logger.error("Error in Health", ex) when 'Exception' raise end end end render json: { message: "Alive", status: 200 }, status: 200 end
def initialize_app
def initialize_app begin authenticate_connect_app_request unless performed? @appinstance.new_session(:session => @appinstance.data_lookup(:session => session)) render json: { message: 'Success', status: 200 }, status: 200 end rescue => ex Rails.logger.error("Failed to Initialize application", ex) if performed? Rails.logger.error("Failed to Initialize application #{performed?}", ex) else render json: { message: "Failure initializing app instance", status: 500 }, status: 500 end end end
def instance_user
def instance_user ZuoraConnect::AppInstance.read_master_db do ZuoraConnect.logger.with_fields = {} if ZuoraConnect.logger.is_a?(Ougai::Logger) Rails.logger.with_fields = {} if Rails.logger.is_a?(Ougai::Logger) if defined?(ElasticAPM) && ElasticAPM.running? && ElasticAPM.respond_to?(:set_label) ElasticAPM.set_label(:trace_id, request.uuid) end unless params[:id].present? render json: { status: 400, message: 'No app instance id provided' }, status: :bad_request return end @appinstance = ZuoraConnect::AppInstance.find(params[:id]).new_session end zuora_client = @appinstance.send(ZuoraConnect::AppInstance::LOGIN_TENANT_DESTINATION).client client_describe, = zuora_client.rest_call( url: zuora_client.rest_endpoint('genesis/user/info').gsub('v1/', ''), session_type: zuora_client.class == ZuoraAPI::Oauth ? :bearer : :basic ) render json: { status: 200, message: 'Success', user_id: client_describe['coreUserId'], username: client_describe['username'], email: client_describe['workEmail'] }, status: 200 rescue ActiveRecord::RecordNotFound render json: { status: 400, message: 'No app instance found' }, status: :bad_request rescue StandardError => e Rails.logger.error('Error occurred getting user details', e) render json: { status: 500, message: 'Failed to get user details' }, status: 500 end
def provision
def provision create_new_instance unless performed? render json: { status: 200, message: 'Success', app_instance_id: @appinstance.id }, status: 200 end rescue StandardError => e message = 'Failed to provision new instance' if performed? Rails.logger.error("#{message}: #{performed?}", e) else Rails.logger.error(message, e) render json: { status: 500, message: message }, status: 500 end end