github.com/vchain-us/vcn@v0.9.11-0.20210921212052-a2484d23c0b3/pkg/cmd/serve/inspect.go (about)

     1  /*
     2   * Copyright (c) 2018-2020 vChain, Inc. All Rights Reserved.
     3   * This software is released under GPL3.
     4   * The full license information can be found under:
     5   * https://www.gnu.org/licenses/gpl-3.0.en.html
     6   *
     7   */
     8  
     9  package serve
    10  
    11  import (
    12  	i "github.com/vchain-us/vcn/pkg/cmd/inspect"
    13  	"net/http"
    14  	"strings"
    15  
    16  	"github.com/gorilla/mux"
    17  )
    18  
    19  func (sh *handler) inspectHandler(w http.ResponseWriter, r *http.Request) {
    20  	vars := mux.Vars(r)
    21  	hash := strings.ToLower(vars["hash"])
    22  	var signerID string
    23  	keys, ok := r.URL.Query()["signerid"]
    24  
    25  	if ok && len(keys[0]) > 0 {
    26  		signerID = keys[0]
    27  	}
    28  
    29  	if sh.lcHost != "" && sh.lcPort != "" {
    30  		// todo @Michele move getLcUser in handler sh constructor
    31  		user, err := getLcUser(r, sh.lcHost, sh.lcPort, sh.lcCert, sh.lcSkipTlsVerify, sh.lcNoTls)
    32  		if err != nil {
    33  			writeError(w, http.StatusBadGateway, err)
    34  			return
    35  		}
    36  		lcInspect(user, hash, signerID, w)
    37  		return
    38  	}
    39  
    40  	user, _, err := getCredential(r)
    41  	if err != nil {
    42  		writeError(w, http.StatusBadRequest, err)
    43  		return
    44  	}
    45  
    46  	results, err := i.GetResults(hash, user)
    47  
    48  	writeResults(w, http.StatusOK, results)
    49  }