github.com/uvalib/orcid-access-ws@v0.0.0-20250612130209-7d062dbabf9d/orcidaccessws/handlers/del_orcid_attributes_handler.go (about)

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