github.com/uvalib/orcid-access-ws@v0.0.0-20250612130209-7d062dbabf9d/orcidaccessws/handlers/get_all_orcid_attributes_handler.go (about) 1 package handlers 2 3 import ( 4 "fmt" 5 "github.com/uvalib/orcid-access-ws/orcidaccessws/authtoken" 6 "github.com/uvalib/orcid-access-ws/orcidaccessws/config" 7 "github.com/uvalib/orcid-access-ws/orcidaccessws/dao" 8 "github.com/uvalib/orcid-access-ws/orcidaccessws/logger" 9 "net/http" 10 ) 11 12 // GetAllOrcidAttributes - get all orcid attributes handler 13 func GetAllOrcidAttributes(w http.ResponseWriter, r *http.Request) { 14 15 token := r.URL.Query().Get("auth") 16 17 // parameters OK? 18 if isEmpty(token) { 19 status := http.StatusBadRequest 20 encodeOrcidAttributesResponse(w, status, http.StatusText(status), nil) 21 return 22 } 23 24 // validate the token 25 if authtoken.Validate(config.Configuration.SharedSecret, token) == false { 26 status := http.StatusForbidden 27 encodeOrcidAttributesResponse(w, status, http.StatusText(status), nil) 28 return 29 } 30 31 // get the ORCID details 32 attributes, err := dao.Store.GetAllOrcidAttributes() 33 if err != nil { 34 logger.Log(fmt.Sprintf("ERROR: %s", err.Error())) 35 status := http.StatusInternalServerError 36 encodeOrcidAttributesResponse(w, status, 37 fmt.Sprintf("%s (%s)", http.StatusText(status), err.Error()), 38 nil) 39 return 40 } 41 42 // we did not find the item, return 404 43 if attributes == nil || len(attributes) == 0 { 44 status := http.StatusNotFound 45 encodeOrcidAttributesResponse(w, status, http.StatusText(status), nil) 46 return 47 } 48 49 status := http.StatusOK 50 encodeOrcidAttributesResponse(w, status, http.StatusText(status), attributes) 51 } 52 53 // 54 // end of file 55 //