Documentation ¶
Overview ¶
Package zenodo provides a client for the Zendodo API.
Index ¶
- Constants
- type Client
- func (c *Client) DepositionCreate(ctx context.Context) (*Deposition, error)
- func (c *Client) DepositionFilesCreate(ctx context.Context, id, filename, mimetype string, r io.Reader) (*DepositionFile, error)
- func (c *Client) DepositionFilesDelete(ctx context.Context, did, fid string) error
- func (c *Client) DepositionFilesDeleteAll(ctx context.Context, id string) error
- func (c *Client) DepositionFilesList(ctx context.Context, id string) ([]*DepositionFile, error)
- func (c *Client) DepositionNewVersion(ctx context.Context, id string) (string, error)
- func (c *Client) DepositionPublish(ctx context.Context, id string) (*Deposition, error)
- func (c *Client) DepositionRetrieve(ctx context.Context, id string) (*Deposition, error)
- func (c *Client) DepositionUpdate(ctx context.Context, id string, meta *DepositionMetadata) (*Deposition, error)
- type Community
- type Creator
- type Deposition
- type DepositionFile
- type DepositionMetadata
- type PrereserveDOI
- type RelatedIdentifier
Constants ¶
const ( BaseURL = "https://zenodo.org" SandboxBaseURL = "https://sandbox.zenodo.org" )
Default API base URLs.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client for the Zenodo API.
func NewClient ¶
NewClient builds a new Zenodo client. Uses the given HTTP client, base URL and access token.
func (*Client) DepositionCreate ¶
func (c *Client) DepositionCreate(ctx context.Context) (*Deposition, error)
DepositionCreate creates a new empty deposit.
func (*Client) DepositionFilesCreate ¶
func (c *Client) DepositionFilesCreate(ctx context.Context, id, filename, mimetype string, r io.Reader) (*DepositionFile, error)
DepositionFilesCreate uploads a new file to a deposit.
func (*Client) DepositionFilesDelete ¶
DepositionFilesDelete deletes a file from a deposit.
func (*Client) DepositionFilesDeleteAll ¶ added in v0.3.0
DepositionFilesDeleteAll deletes all files from a deposit. This requires multiple API calls.
func (*Client) DepositionFilesList ¶
DepositionFilesList lists all files attached to a deposit.
func (*Client) DepositionNewVersion ¶
DepositionNewVersion creates a new version of an existing deposit. Returns the ID of the new version.
func (*Client) DepositionPublish ¶
DepositionPublish publishes a deposit.
func (*Client) DepositionRetrieve ¶
DepositionRetrieve retrieves a deposit.
func (*Client) DepositionUpdate ¶
func (c *Client) DepositionUpdate(ctx context.Context, id string, meta *DepositionMetadata) (*Deposition, error)
DepositionUpdate updates deposit metadata.
type Community ¶
type Community struct {
Identifier string `json:"identifier"`
}
Community associated with a deposit.
type Creator ¶
type Creator struct { Name string `json:"name"` Affiliation string `json:"affiliation"` ORCID string `json:"orcid"` }
Creator of a deposit.
type Deposition ¶
type Deposition struct { ConceptDOI string `json:"conceptdoi,omitempty"` ConceptRecordID string `json:"conceptrecid,omitempty"` Created *time.Time `json:"created,omitempty"` DOI string `json:"doi,omitempty"` DOIURL string `json:"doi_url,omitempty"` Files []*DepositionFile `json:"files,omitempty"` ID int `json:"id,omitempty"` Links map[string]string `json:"links,omitempty"` Metadata *DepositionMetadata `json:"metadata,omitempty"` Modified *time.Time `json:"modified,omitempty"` Owner int `json:"owner,omitempty"` RecordID int `json:"record_id,omitempty"` State string `json:"state,omitempty"` Submitted bool `json:"submitted,omitempty"` Title string `json:"title,omitempty"` }
Deposition represents a work-in-progress deposit.
type DepositionFile ¶
type DepositionFile struct { Checksum string `json:"checksum"` Filename string `json:"filename"` Filesize int `json:"filesize"` ID string `json:"id"` Links map[string]string `json:"links"` }
DepositionFile represents a file attached to a deposit.
type DepositionMetadata ¶
type DepositionMetadata struct { AccessRight string `json:"access_right,omitempty"` Communities []*Community `json:"communities,omitempty"` Creators []*Creator `json:"creators,omitempty"` Description string `json:"description,omitempty"` DOI string `json:"doi,omitempty"` License string `json:"license,omitempty"` PrereserveDOI *PrereserveDOI `json:"prereserve_doi,omitempty"` PublicationDate string `json:"publication_date,omitempty"` Title string `json:"title,omitempty"` UploadType string `json:"upload_type,omitempty"` RelatedIdentifiers []*RelatedIdentifier `json:"related_identifiers,omitempty"` References []string `json:"references,omitempty"` Version string `json:"version,omitempty"` }
DepositionMetadata represents metadata for a deposit.
type PrereserveDOI ¶
PrereserveDOI represents a DOI pre-reserved for a deposit.
type RelatedIdentifier ¶
type RelatedIdentifier struct { Relation string `json:"relation"` Identifier string `json:"identifier"` Scheme string `json:"scheme"` }
RelatedIdentifier is a persistent identifiers of a related publications or dataset.