zenodo

package
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 30, 2021 License: BSD-3-Clause Imports: 11 Imported by: 0

Documentation

Overview

Package zenodo provides a client for the Zendodo API.

Index

Constants

View Source
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

func NewClient(c *http.Client, base, token string) *Client

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

func (c *Client) DepositionFilesDelete(ctx context.Context, did, fid string) error

DepositionFilesDelete deletes a file from a deposit.

func (*Client) DepositionFilesDeleteAll added in v0.3.0

func (c *Client) DepositionFilesDeleteAll(ctx context.Context, id string) error

DepositionFilesDeleteAll deletes all files from a deposit. This requires multiple API calls.

func (*Client) DepositionFilesList

func (c *Client) DepositionFilesList(ctx context.Context, id string) ([]*DepositionFile, error)

DepositionFilesList lists all files attached to a deposit.

func (*Client) DepositionNewVersion

func (c *Client) DepositionNewVersion(ctx context.Context, id string) (string, error)

DepositionNewVersion creates a new version of an existing deposit. Returns the ID of the new version.

func (*Client) DepositionPublish

func (c *Client) DepositionPublish(ctx context.Context, id string) (*Deposition, error)

DepositionPublish publishes a deposit.

func (*Client) DepositionRetrieve

func (c *Client) DepositionRetrieve(ctx context.Context, id string) (*Deposition, error)

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

type PrereserveDOI struct {
	DOI      string `json:"doi"`
	RecordID int    `json:"recid"`
}

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL