Sha256: 6b55369540f72bc9b6707a8ba5c05b771bc028db4519b29f2ebfc758872da01e

Contents?: true

Size: 1.57 KB

Versions: 1

Compression:

Stored size: 1.57 KB

Contents

# frozen_string_literal: true

require "net/http"
require "uri"
require "json"

require_relative "utils/version"
require_relative "utils/logger"

module Lambdatest
  module Sdk
    module Utils
      SMART_UI_API = get_smart_ui_server_address
      @logger = Lambdatest::Sdk::Utils.get_logger

      def self.is_smartui_enabled?
        begin
          make_api_call("/healthcheck", method: :get, data: nil)
          return true
        rescue => exception
           @logger.debug("#{exception.message}")
          return false
        end
      end

      def self.fetch_dom_serializer
        make_api_call('/domserializer', method: :get,data: nil)
      end

      def self.post_snapshot(dom,snapshot_name)
        uri = URI("#{SMART_UI_API}/snapshot")
        data = JSON.generate({
          snapshot: {
            dom: dom["dom"]["html"],
            name: snapshot_name,
          },
          testType: get_pkg_name
        })
        make_api_call('/snapshot', method: :post, data: data)
      end

      def self.make_api_call(endpoint, method: :get, data: nil)
        uri = URI("#{SMART_UI_API}#{endpoint}")

        response = case method
                   when :get
                     Net::HTTP.get_response(uri)
                   when :post
                     Net::HTTP.post(uri, data, 'Content-Type' => 'application/json')
                   end

        unless response.is_a? Net::HTTPSuccess
            raise StandardError, "Failed with HTTP error code: #{response.code}"
        end

        response.is_a?(Net::HTTPSuccess) ? response.body : nil
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lambdatest-sdk-utils-1.0.0 lib/lambdatest/sdk/utils.rb