github.com/uvalib/orcid-access-ws@v0.0.0-20250612130209-7d062dbabf9d/orcidaccessws/handlers/get_orcid_details_handler.go (about) 1 package handlers 2 3 import ( 4 "fmt" 5 //"fmt" 6 "github.com/gorilla/mux" 7 "github.com/uvalib/orcid-access-ws/orcidaccessws/authtoken" 8 "github.com/uvalib/orcid-access-ws/orcidaccessws/config" 9 "github.com/uvalib/orcid-access-ws/orcidaccessws/orcid" 10 "net/http" 11 //"github.com/uvalib/orcid-access-ws/orcidaccessws/orcid" 12 ) 13 14 // GetOrcidDetails -- get the orcid details handler 15 func GetOrcidDetails(w http.ResponseWriter, r *http.Request) { 16 17 vars := mux.Vars(r) 18 id := vars["id"] 19 token := r.URL.Query().Get("auth") 20 21 // parameters OK? 22 if isEmpty(id) || isEmpty(token) { 23 status := http.StatusBadRequest 24 encodeOrcidDetailsResponse(w, status, http.StatusText(status), nil) 25 return 26 } 27 28 // validate the token 29 if authtoken.Validate(config.Configuration.SharedSecret, token) == false { 30 status := http.StatusForbidden 31 encodeOrcidDetailsResponse(w, status, http.StatusText(status), nil) 32 return 33 } 34 35 // get the ORCID details 36 orcid, status, err := orcid.GetOrcidDetails(id) 37 38 // we did got an error, return it 39 if status != http.StatusOK { 40 encodeOrcidDetailsResponse(w, status, 41 fmt.Sprintf("%s (%s)", http.StatusText(status), err), nil) 42 return 43 } 44 45 encodeOrcidDetailsResponse(w, status, http.StatusText(status), orcid) 46 } 47 48 // 49 // end of file 50 //