class ZuoraConnect::StaticController
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