Documentation
¶
Index ¶
- func DataciteMetadata(doi, did, description string, record map[string]any, publish bool) ([]byte, error)
- func MakePublic(doi string, verbose int) error
- func Publish(did, description string, record map[string]any, publish bool, verbose int) (string, string, error)
- type Attributes
- type Creator
- type Description
- type NameIdentifier
- type Publisher
- type RelatedIdentifier
- type RequestData
- type RequestPayload
- type ResponseAttributes
- type ResponseData
- type ResponsePayload
- type Title
- type Types
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DataciteMetadata ¶ added in v0.7.4
func DataciteMetadata(doi, did, description string, record map[string]any, publish bool) ([]byte, error)
DataciteMetadata provides datacite metadata record for given did and FOXDEN record
func MakePublic ¶ added in v0.7.4
MakePublic implements logic of publishing draft DOI curl -X PUT -H "Content-Type: application/vnd.api+json" --user YOUR_REPOSITORY_ID:YOUR_PASSWORD -d @my_doi_update.json https://api.test.datacite.org/dois/:id
Types ¶
type Attributes ¶
type Attributes struct {
Doi string `json:"doi,omitempty"`
Prefix string `json:"prefix,omitempty"`
Event string `json:"event,omitempty"`
Creators []Creator `json:"creators,omitempty"`
Titles []Title `json:"titles,omitempty"`
Publisher *Publisher `json:"publisher,omitempty"` // omitempty ensures it's not included if nil
PublicationYear int `json:"publicationYear,omitempty"`
Types *Types `json:"types,omitempty"` // omitempty ensures it's not included if nil
RelatedIdentifiers []RelatedIdentifier `json:"relatedIdentifiers,omitempty"`
Descriptions []Description `json:"descriptions,omitempty"`
URL string `json:"url,omitempty"`
}
Attributes represent attributes NOTE1: we use pointers to Publisher and Types structs to ensure that they will not be included if nil NOTE2: we don't need points for lists since they will be properly omitted
type Creator ¶
type Creator struct {
Name string `json:"name,omitempty"`
NameType string `json:"nameType,omitempty"`
NameIdentifiers []NameIdentifier `json:"nameIdentifiers,omitempty"`
}
Creator represents creator struct
type Description ¶ added in v0.7.4
type Description struct {
Description string `json:"description,omitempty"`
DescriptionType string `json:"descriptionType,omitempty"`
Lang string `json:"lang,omitempty"`
}
Description represents description info
type NameIdentifier ¶ added in v0.7.4
type NameIdentifier struct {
AffiliationIdentifier string `json:"affiliationIdentifier,omitempty"`
AffiliationIdentifierScheme string `json:"affiliationIdentifierScheme,omitempty"`
SchemeUri string `json:"schemeUri,omitempty"`
}
NameIdentifier represents name identifier info
type Publisher ¶ added in v0.7.4
type Publisher struct {
Name string `json:"name,omitempty"`
PublisherIdentifier string `json:"publisherIdentifier,omitempty"`
PublisherIdentifierScheme string `json:"publisherIdentifier,omitempty"`
SchemeUri string `json:"schemeUri,omitempty"`
Lang string `json:"lang,omitempty"`
}
Publisher represents publisher info
type RelatedIdentifier ¶ added in v0.7.4
type RelatedIdentifier struct {
RelationType string `json:"relationType,omitempty"`
RelatedTypeGeneral string `json:"relatedTypeGeneral,omitempty"`
RelatedIdentifier string `json:"relatedIdentifier,omitempty"`
RelatedIdentifierType string `json:"relatedIdentifierType,omitempty"`
}
RelatedIdentifier represents related identifier meta-data
type RequestData ¶
type RequestData struct {
Type string `json:"type,omitempty"`
Attributes Attributes `json:"attributes,omitempty"`
}
RequestData represents request data
type RequestPayload ¶ added in v0.7.4
type RequestPayload struct {
Data RequestData `json:"data,omitempty"`
}
RequestPayload represents request payload
type ResponseAttributes ¶ added in v0.7.4
type ResponseAttributes struct {
Doi string `json:"doi,omitempty"`
Prefix string `json:"prefix,omitempty"`
Event string `json:"event,omitempty"`
Creators []Creator `json:"creators,omitempty"`
Titles []Title `json:"titles,omitempty"`
Publisher string `json:"publisher,omitempty"`
PublicationYear int `json:"publicationYear,omitempty"`
Types Types `json:"types,omitempty"`
State string `json:"state,omitempty"`
RelatedIdentifiers []RelatedIdentifier `json:"relatedIdentifiers,omitempty"`
Descriptions []Description `json:"descriptions,omitempty"`
URL string `json:"url,omitempty"`
}
ResponseAttributes represent attributes
type ResponseData ¶ added in v0.7.4
type ResponseData struct {
ID string `json:"id,omitempty"`
Type string `json:"type,omitempty"`
Attributes ResponseAttributes `json:"attributes,omitempty"`
}
ResponseData represents response payload NOTE: the Attributes of response is slightly different from Request Attributes, for instance Publisher is a string instead of Publisher struct in Request Attributes.
type ResponsePayload ¶ added in v0.7.4
type ResponsePayload struct {
Data ResponseData `json:"data,omitempty"`
}
ResponsePayload represents request payload