Sha256: 7de25278363d56dcea3f344857a2a295c628576c3474af604a3417db151ab6cb

Contents?: true

Size: 1.27 KB

Versions: 1

Compression:

Stored size: 1.27 KB

Contents

# -*- encoding: utf-8 -*-
# frozen_string_literal: true

class Semcon

    # basic functions ---------------------------
    def self.host_from_did(did, filter, options)
        result, err_msg = Oydid.read(did, options)
        if result.nil? || err_msg != ""
            return [nil, err_msg]
        end
        result_url = ""
        w3c_did = Oydid.w3c(result, options)
        service_array = w3c_did["service"]
        service_array.each do |service|
            if service["type"] == filter
                case filter
                when "DecentralizedWebNode"
                    nodes = service["serviceEndpoint"]["nodes"] rescue nil
                    if nodes.nil?
                        next
                    end
                    result_url = service["serviceEndpoint"]["nodes"].first rescue nil
                    if nodes.nil?
                        next
                    end
                    break
                else
                    result_url = service["serviceEndpoint"].to_s
                    break
                end
            end
        end unless service_array.nil?
        if result_url.to_s == ""
            return [nil, "Service Endpoint URL not found in " + did.to_s]
        else
            return [result_url, ""]
        end
    end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
semcon-0.0.1 lib/semcon/basic.rb