zenodo

package
v0.8.0 Latest Latest
Warning

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

Go to latest
Published: Jun 28, 2025 License: MIT Imports: 9 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Verbose int

Functions

func AddRecord added in v0.4.8

func AddRecord(docId int64, fileName string, foxdenRecord any) error

AddRecord represents add API to zenodo

curl --upload-file readme.md --request PUT
'https://zenodo.org/api/files/50b47f75-c97d-47c6-af11-caa6e967c1d5/readme.md?access_token=<KEY>'

func GetRecordId added in v0.7.4

func GetRecordId(doi string) string

GetRecordId extracts from our doi record id (last part of doi)

func MakePublic added in v0.7.4

func MakePublic(rid string) error

MakePublic implements logic of publishing draft DOI

curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -X POST "https://zenodo.org/api/deposit/depositions/1234567/actions/publish"

func UpdateRecord added in v0.4.6

func UpdateRecord(docId int64, mrec MetaDataRecord) error

UpdateRecord updates Zenodo records with our metadata

   # add mandatory metadata to our publication
   curl -v -X PUT "https://zenodo.org/api/deposit/depositions/<ID>?access_token=<TOKEN>" \
		   -H "Content-type: application/json" -d@meta1.json

	{
		"metadata": {
			"publication_type": "article",
			"upload_type":"publication",
			"description":"This is a test",
			"keywords": ["bla", "foo"],
			"title":"Test"
		}
	}

Types

type AddResponse added in v0.1.3

type AddResponse struct {
	Created  string `json:"created"`
	Modified string `json:"modified"`
	Size     int64  `json:"size"`
	Key      string `json:"key"`
	MimeType string `json:"mimetype"`
	Checksum string `json:"checksum"`
	Owner    int    `json:"owner"`
	RecordId int64  `json:"record_id"`
	Links    Links  `json:"links"`
}

AddResponse represents output of /create API

type CreateResponse added in v0.1.3

type CreateResponse struct {
	Id        int64    `json:"id"`
	MetaData  MetaData `json:"metadata"`
	Created   string   `json:"created"`
	Modified  string   `json:"modified"`
	Owner     int      `json:"owner"`
	RecordId  int64    `json:"record_id"`
	State     string   `json:"state"`
	Submitted bool     `json:"submitted"`
	Title     string   `json:"title"`
	Links     Links    `json:"links"`
}

CreateResponse represents output of /create API

func CreateRecord added in v0.4.6

func CreateRecord(payload []byte) (CreateResponse, error)

CreateRecord provides create record API

type Creator added in v0.1.3

type Creator struct {
	Name        string `json:"name"`
	Affiliation string `json:"affiliation"`
}

Creator represents creator record

type DepositRecord added in v0.7.4

type DepositRecord struct {
	MetaDataResponseRecord MetaDataResponseRecord `json:"metadata"`
	State                  string                 `json:"state"`
	Id                     int64                  `json:"id"`
	Owner                  int64                  `json:"owner"`
}

DepositRecord represents part of deposit record from Zenodo

func DepositRecords added in v0.7.4

func DepositRecords(doi string) ([]DepositRecord, error)

DepositRecords returns list of Zenodo Deposit records

curl 'https://zenodo.org/api/deposit/depositions?access_token=<KEY>'
curl 'https://zenodo.org/api/deposit/depositions/<123>?access_token=<KEY>' where 123 is record id (last part of doi)

type DoiRecord added in v0.4.6

type DoiRecord struct {
	Id     int64  `json:"id"`
	Doi    string `json:"doi"`
	DoiUrl string `json:"doi_url"`
	Files  []File `json:"files,omitempty"`
	Links  Links  `json:"links"`
}

DoiRecord represents doi record

func DoiRecords added in v0.7.4

func DoiRecords(docId int64) ([]DoiRecord, error)

DoiRecords returns list of Zenodo DOI records

func PublishRecord added in v0.4.6

func PublishRecord(docId int64) (DoiRecord, error)

PublishRecord publishes docId record in Zenodo curl -v -X POST "https://zenodo.org/api/deposit/depositions/<ID>/actions/publish?access_token=<TOKEN>"

type Error added in v0.1.3

type Error struct {
	Field    string
	Messages []string
}

Error represents individual zenodo error struct

type File added in v0.4.6

type File struct {
	Name string `json:"name"`
	File string `json:"file"`
}

File describes common file record

type FoxdenRecord added in v0.4.8

type FoxdenRecord struct {
	Did      string `json:"did"`
	MetaData any    `json:"meta_data"`
}

FoxdenRecord represents foxden upload record

type Links struct {
	Bucket             string `json:"bucket"`
	Discard            string `json:"discard"`
	Edit               string `json:"edit"`
	Files              string `json:"files"`
	Html               string `json:"html"`
	LatestDraft        string `json:"latest_draft"`
	LasestDraftHtml    string `json:"latest_draft_html"`
	NewVersion         string `json:"newversion"`
	Publish            string `json:"publish"`
	RegisterConceptDoi string `json:"registerconceptdoi"`
	Self               string `json:"self"`
}

Links contains zenodo links

type MetaData

type MetaData struct {
	AccessRight   string        `json:"access_right"`
	PrereserveDoi PrereserveDoi `json:"prereserve_doi"`
}

MetaData represents meta-data struct

type MetaDataRecord added in v0.1.3

type MetaDataRecord struct {
	PublicationType string    `json:"publication_type"`
	UploadType      string    `json:"upload_type"`
	Description     string    `json:"description"`
	Keywords        []string  `json:"keywords"`
	Title           string    `json:"title"`
	Licences        []string  `json:"licenses,omitempty"`
	Version         string    `json:"version,omitempty"`
	Publisher       string    `json:"publisher,omitempty"`
	Contributors    []Creator `json:"contributors,omitempty"`
	Creators        []Creator `json:"creators"`
	Doi             string    `json:"doi"`
	PreserveDoi     bool      `json:"preserve_doi"` // set to true to force Zenodo to create DOI
}

MetaDataRecord represents meta-data record

func (*MetaDataRecord) Validate added in v0.1.3

func (m *MetaDataRecord) Validate() error

Validate provides validation of meta data record

type MetaDataResponseRecord added in v0.7.4

type MetaDataResponseRecord struct {
	PrereserveDoi PrereserveDoi `json:"prereserve_doi"`
}

MetaDataResponseRecord represents part of meta-data record

type MetaRecord added in v0.4.8

type MetaRecord struct {
	Metadata MetaDataRecord `json:"metadata"`
	Files    any            `json:"files,omitempty"`
}

MetaRecords used to publish meta-data record to zenodo

type PrereserveDoi

type PrereserveDoi struct {
	Doi   string `json:"doi"`
	RecId int64  `json:"recid"`
}

PrereserveDoi represents PrereserveDoi struct

type Response added in v0.1.3

type Response struct {
	Status  int
	Message string
	Error   []Error
}

Reponse represents zenodo response

Jump to

Keyboard shortcuts

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