class ZuoraConnect::StaticController
def health
def health render json: { message: "Alive", status: 200 }, status: 200 end
def initialize_app
def initialize_app begin authenticate_connect_app_request render json: { message: "Success", status: 200 }, status: 200 rescue render json: { message: "Failure initializing app instance", status: 400 }, status: 400 end end
def invalid_app_instance_error
def invalid_app_instance_error respond_to do |format| format.html format.json {render json: { message: "Invalid App Instance", status: 500 }, status: 500 } end end
def launch
def launch @ids = JSON.parse(Base64.decode64(URI.decode(params["ids"]))) if @ids.count == 1 redirect_to :action => :switch, :commit => @ids[0][0] else respond_to do |format| format.html end end end
def metrics
def metrics type = params[:type].present? ? params[:type] : "versions" render json: ZuoraConnect::AppInstance.get_metrics(type).to_json, status: 200 end
def session_error
def session_error respond_to do |format| format.html format.json { render json: { message: "Session Error", status: 500 }, status: 500 } end end
def switch
def switch host = request.headers["HTTP_X_FORWARDED_HOST"] zuora_client = ZuoraAPI::Login.new(url: "https://#{host}") menus = zuora_client.get_full_nav(cookies.to_h)["menus"] menus = JSON.parse(response)["menus"] app = menus.select do |item| matches = /(?<=.com\/)(.*?)(?=\/|$)/.match(item["url"]) if !matches.blank? matches[0] == ENV["DEIS_APP"] end end url_tasks = JSON.parse(Base64.decode64(URI.decode(URI.parse(app[0]["url"]).query.split("ids=")[1]))) if url_tasks.map { |i| i[0] }.include?(params["commit"].to_i) @appinstance = ZuoraConnect::AppInstance.find(params["commit"].to_i) @appinstance.new_session(session: {}) @appinstance.cache_app_instance redirect_to main_app.root_path else redirect_to main_app.root_path end end