Documentation
¶
Index ¶
- Constants
- func FormatOrcidID(orcid string) string
- func ParseOrcidID(input string) string
- func ValidateOrcidID(orcid string) error
- type ActivitiesSummary
- type Address
- type Addresses
- type AffiliationGroup
- type Biography
- type Citation
- type Client
- func (c *Client) ExpandedSearch(ctx context.Context, query string) (*ExpandedSearchResult, error)
- func (c *Client) GetByPath(ctx context.Context, path Path) (interface{}, error)
- func (c *Client) GetDistinctions(ctx context.Context, orcidID string) (*Distinctions, error)
- func (c *Client) GetEducations(ctx context.Context, orcidID string) (*Educations, error)
- func (c *Client) GetEmployments(ctx context.Context, orcidID string) (*Employments, error)
- func (c *Client) GetFundings(ctx context.Context, orcidID string) (*Fundings, error)
- func (c *Client) GetInvitedPositions(ctx context.Context, orcidID string) (*InvitedPositions, error)
- func (c *Client) GetMemberships(ctx context.Context, orcidID string) (*Memberships, error)
- func (c *Client) GetPeerReviews(ctx context.Context, orcidID string) (*PeerReviews, error)
- func (c *Client) GetPerson(ctx context.Context, orcidID string) (*Person, error)
- func (c *Client) GetQualifications(ctx context.Context, orcidID string) (*Qualifications, error)
- func (c *Client) GetRecord(ctx context.Context, orcidID string) (*Record, error)
- func (c *Client) GetRecordRaw(ctx context.Context, orcidID string) ([]byte, error)
- func (c *Client) GetResearchResources(ctx context.Context, orcidID string) (*ResearchResources, error)
- func (c *Client) GetServices(ctx context.Context, orcidID string) (*Services, error)
- func (c *Client) GetWork(ctx context.Context, orcidID string, putCode string) (*Work, error)
- func (c *Client) GetWorks(ctx context.Context, orcidID string) (*Works, error)
- func (c *Client) Search(ctx context.Context, params SearchParams) (*SearchResult, error)
- func (c *Client) SearchIter(ctx context.Context, params SearchParams) *SearchIterator
- func (c *Client) SearchIterWithQuery(ctx context.Context, query *SearchQuery) *SearchIterator
- func (c *Client) SearchWithQuery(ctx context.Context, query *SearchQuery) (*SearchResult, error)
- type ClientOption
- func WithAPIURL(url string) ClientOption
- func WithBearerToken(token string) ClientOption
- func WithContentType(contentType ContentType) ClientOption
- func WithHTTPClient(client *http.Client) ClientOption
- func WithMaxRetries(maxRetries int) ClientOption
- func WithRateLimit(requestsPerSecond int) ClientOption
- func WithTimeout(timeout time.Duration) ClientOption
- func WithUserAgent(userAgent string) ClientOption
- type ContentType
- type Contributor
- type ContributorAttributes
- type ContributorOrcid
- type Contributors
- type Country
- type CreditName
- type Date
- type Day
- type DisambiguatedOrganization
- type DistinctionSummary
- type Distinctions
- type EducationSummary
- type Educations
- type Email
- type Emails
- type EmploymentSummary
- type Employments
- type ExpandedSearchRecord
- type ExpandedSearchResult
- type ExternalID
- type ExternalIDNormalized
- type ExternalIDs
- type ExternalIdentifier
- type ExternalIdentifiers
- type FamilyName
- type FundingGroup
- type FundingSummary
- type Fundings
- type FuzzyDate
- type GivenNames
- type History
- type InvitedPositionSummary
- type InvitedPositions
- type JournalTitle
- type Keyword
- type Keywords
- type MembershipSummary
- type Memberships
- type Month
- type Name
- type OrcidIdentifier
- type Organization
- type OrganizationAddress
- type OtherName
- type OtherNames
- type Path
- type PeerReviewGroup
- type PeerReviewSummary
- type PeerReviews
- type Person
- type Preferences
- type PublicationDate
- type QualificationSummary
- type Qualifications
- type Record
- type ResearchResourceGroup
- type ResearchResourceSummary
- type ResearchResources
- type ResearcherURL
- type ResearcherURLs
- type SearchIterator
- type SearchParams
- type SearchQuery
- func (sq *SearchQuery) AffiliationOrganization(org string) *SearchQuery
- func (sq *SearchQuery) And() *SearchQuery
- func (sq *SearchQuery) Biography(bio string) *SearchQuery
- func (sq *SearchQuery) Build() SearchParams
- func (sq *SearchQuery) CreditName(name string) *SearchQuery
- func (sq *SearchQuery) DOI(doi string) *SearchQuery
- func (sq *SearchQuery) Email(email string) *SearchQuery
- func (sq *SearchQuery) ExternalIdentifier(identifier string) *SearchQuery
- func (sq *SearchQuery) FamilyName(name string) *SearchQuery
- func (sq *SearchQuery) FundRef(id string) *SearchQuery
- func (sq *SearchQuery) FundingTitle(title string) *SearchQuery
- func (sq *SearchQuery) GRID(id string) *SearchQuery
- func (sq *SearchQuery) GivenNames(names string) *SearchQuery
- func (sq *SearchQuery) Keyword(keyword string) *SearchQuery
- func (sq *SearchQuery) Not() *SearchQuery
- func (sq *SearchQuery) ORCID(orcid string) *SearchQuery
- func (sq *SearchQuery) Or() *SearchQuery
- func (sq *SearchQuery) OtherNames(names string) *SearchQuery
- func (sq *SearchQuery) PersonalDetails(details string) *SearchQuery
- func (sq *SearchQuery) RINGGOLD(id string) *SearchQuery
- func (sq *SearchQuery) ROR(id string) *SearchQuery
- func (sq *SearchQuery) RawQuery(query string) *SearchQuery
- func (sq *SearchQuery) WithRows(rows int) *SearchQuery
- func (sq *SearchQuery) WithStart(start int) *SearchQuery
- func (sq *SearchQuery) WorkTitle(title string) *SearchQuery
- type SearchRecord
- type SearchResult
- type ServiceSummary
- type Services
- type Source
- type SourceClientID
- type SourceName
- type Subtitle
- type Title
- type TitleValue
- type TranslatedTitle
- type URL
- type Work
- type WorkGroup
- type WorkSummary
- type Works
- type Year
Examples ¶
Constants ¶
View Source
const ( MemberSandboxHost = "https://api.sandbox.orcid.org/v3.0" PublicSandboxHost = "https://pub.sandbox.orcid.org/v3.0" MemberHost = "https://api.orcid.org/v3.0" PublicHost = "https://pub.orcid.org/v3.0" )
View Source
const ( DefaultAPIURL = PublicHost DefaultTimeout = 30 * time.Second DefaultMaxRetries = 3 DefaultRateLimit = 10 )
Variables ¶
This section is empty.
Functions ¶
func FormatOrcidID ¶
func ParseOrcidID ¶
func ValidateOrcidID ¶
Example ¶
package main
import (
"fmt"
"github.com/Epistemic-Technology/orcid/orcid"
)
func main() {
orcidIDs := []string{
"0000-0002-1825-0097",
"https://orcid.org/0000-0002-1825-0097",
"0000-0000-0000-0000",
"invalid-orcid",
}
for _, id := range orcidIDs {
err := orcid.ValidateOrcidID(id)
if err != nil {
fmt.Printf("%s: Invalid - %v\n", id, err)
} else {
fmt.Printf("%s: Valid\n", id)
}
}
}
Output:
Types ¶
type ActivitiesSummary ¶
type ActivitiesSummary struct {
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Distinctions *Distinctions `json:"distinctions,omitempty" xml:"distinctions,omitempty"`
Educations *Educations `json:"educations,omitempty" xml:"educations,omitempty"`
Employments *Employments `json:"employments,omitempty" xml:"employments,omitempty"`
Fundings *Fundings `json:"fundings,omitempty" xml:"fundings,omitempty"`
InvitedPositions *InvitedPositions `json:"invited-positions,omitempty" xml:"invited-positions,omitempty"`
Memberships *Memberships `json:"memberships,omitempty" xml:"memberships,omitempty"`
PeerReviews *PeerReviews `json:"peer-reviews,omitempty" xml:"peer-reviews,omitempty"`
Qualifications *Qualifications `json:"qualifications,omitempty" xml:"qualifications,omitempty"`
ResearchResources *ResearchResources `json:"research-resources,omitempty" xml:"research-resources,omitempty"`
Services *Services `json:"services,omitempty" xml:"services,omitempty"`
Works *Works `json:"works,omitempty" xml:"works,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type Address ¶
type Address struct {
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
Country *Country `json:"country,omitempty" xml:"country,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
PutCode int64 `json:"put-code,omitempty" xml:"put-code,attr,omitempty"`
DisplayIndex int `json:"display-index,omitempty" xml:"display-index,attr,omitempty"`
}
type AffiliationGroup ¶
type AffiliationGroup struct {
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
ExternalIDs *ExternalIDs `json:"external-ids,omitempty" xml:"external-ids,omitempty"`
Summaries []interface{} `json:"summaries,omitempty" xml:"summaries,omitempty"`
}
type Biography ¶
type Biography struct {
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Content string `json:"content,omitempty" xml:"content,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Example (WithOptions) ¶
package main
import (
"context"
"fmt"
"log"
"time"
"github.com/Epistemic-Technology/orcid/orcid"
)
func main() {
client := orcid.NewClient(
orcid.WithBearerToken("your-bearer-token-here"),
orcid.WithTimeout(60*time.Second),
orcid.WithRateLimit(5),
orcid.WithMaxRetries(5),
orcid.WithContentType(orcid.ContentTypeJSON),
orcid.WithUserAgent("MyApp/1.0"),
)
ctx := context.Background()
person, err := client.GetPerson(ctx, "0000-0002-1825-0097")
if err != nil {
log.Fatal(err)
}
if person.Biography != nil {
fmt.Printf("Biography: %s\n", person.Biography.Content)
}
}
Output:
func NewClient ¶
func NewClient(opts ...ClientOption) *Client
func (*Client) ExpandedSearch ¶
func (*Client) GetByPath ¶
GetByPath fetches a resource by its path. Path values are returned by various ORCID API endpoints and can be used to directly fetch specific resources.
Examples:
- "/0000-0003-1401-2056/qualifications" -> calls GetQualifications
- "/0000-0003-1401-2056/works" -> calls GetWorks
- "/0000-0003-1401-2056/person" -> calls GetPerson
- "/0000-0003-1401-2056" or "/0000-0003-1401-2056/record" -> calls GetRecord
func (*Client) GetDistinctions ¶
func (*Client) GetEducations ¶
Example ¶
package main
import (
"context"
"fmt"
"log"
"github.com/Epistemic-Technology/orcid/orcid"
)
func main() {
client := orcid.NewClient()
ctx := context.Background()
educations, err := client.GetEducations(ctx, "0000-0002-1825-0097")
if err != nil {
log.Fatal(err)
}
for _, edu := range educations.EducationSummary {
if edu.Organization != nil {
fmt.Printf("Education: %s", edu.Organization.Name)
if edu.RoleTitle != "" {
fmt.Printf(" - %s", edu.RoleTitle)
}
if edu.StartDate != nil && edu.StartDate.Year != nil {
fmt.Printf(" (Started: %s)", edu.StartDate.Year.Value)
}
fmt.Println()
}
}
}
Output:
func (*Client) GetEmployments ¶
Example ¶
package main
import (
"context"
"fmt"
"log"
"github.com/Epistemic-Technology/orcid/orcid"
)
func main() {
client := orcid.NewClient()
ctx := context.Background()
employments, err := client.GetEmployments(ctx, "0000-0002-1825-0097")
if err != nil {
log.Fatal(err)
}
for _, emp := range employments.EmploymentSummary {
if emp.Organization != nil {
fmt.Printf("Employment: %s", emp.Organization.Name)
if emp.RoleTitle != "" {
fmt.Printf(" - %s", emp.RoleTitle)
}
if emp.StartDate != nil && emp.StartDate.Year != nil {
fmt.Printf(" (Since: %s)", emp.StartDate.Year.Value)
}
fmt.Println()
}
}
}
Output:
func (*Client) GetFundings ¶
func (*Client) GetInvitedPositions ¶
func (*Client) GetMemberships ¶
func (*Client) GetPeerReviews ¶
func (*Client) GetQualifications ¶
func (*Client) GetRecord ¶
Example ¶
package main
import (
"context"
"fmt"
"log"
"time"
"github.com/Epistemic-Technology/orcid/orcid"
)
func main() {
// For public API access, you need a bearer token
// Get your token from https://orcid.org/developer-tools
client := orcid.NewClient(
orcid.WithBearerToken("your-bearer-token-here"),
)
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
record, err := client.GetRecord(ctx, "0000-0002-1825-0097")
if err != nil {
log.Fatal(err)
}
if record.Person != nil && record.Person.Name != nil {
if record.Person.Name.GivenNames != nil {
fmt.Printf("Given Names: %s\n", record.Person.Name.GivenNames.Value)
}
if record.Person.Name.FamilyName != nil {
fmt.Printf("Family Name: %s\n", record.Person.Name.FamilyName.Value)
}
}
}
Output:
func (*Client) GetRecordRaw ¶
func (*Client) GetResearchResources ¶
func (*Client) GetServices ¶
func (*Client) GetWorks ¶
Example ¶
package main
import (
"context"
"fmt"
"log"
"github.com/Epistemic-Technology/orcid/orcid"
)
func main() {
client := orcid.NewClient()
ctx := context.Background()
works, err := client.GetWorks(ctx, "0000-0002-1825-0097")
if err != nil {
log.Fatal(err)
}
for _, group := range works.WorkGroup {
for _, summary := range group.WorkSummary {
if summary.Title != nil && summary.Title.Title != nil {
fmt.Printf("Work: %s (Type: %s)\n",
summary.Title.Title.Value,
summary.Type)
}
}
}
}
Output:
func (*Client) Search ¶
func (c *Client) Search(ctx context.Context, params SearchParams) (*SearchResult, error)
Example ¶
package main
import (
"context"
"fmt"
"log"
"github.com/Epistemic-Technology/orcid/orcid"
)
func main() {
client := orcid.NewClient()
ctx := context.Background()
params := orcid.SearchParams{
Query: "family-name:Smith AND given-names:John",
Start: 0,
Rows: 10,
}
results, err := client.Search(ctx, params)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Found %d results\n", results.NumFound)
for _, result := range results.Results {
if result.OrcidIdentifier != nil {
fmt.Printf("ORCID: %s\n", result.OrcidIdentifier.Path)
}
}
}
Output:
func (*Client) SearchIter ¶
func (c *Client) SearchIter(ctx context.Context, params SearchParams) *SearchIterator
Example ¶
package main
import (
"context"
"fmt"
"log"
"github.com/Epistemic-Technology/orcid/orcid"
)
func main() {
client := orcid.NewClient()
ctx := context.Background()
query := orcid.NewSearchQuery().
Keyword("machine learning").
WithRows(100)
iter := client.SearchIterWithQuery(ctx, query)
count := 0
for iter.Next() {
record := iter.Value()
if record != nil && record.OrcidIdentifier != nil {
count++
if count > 5 {
break
}
fmt.Printf("ORCID: %s\n", record.OrcidIdentifier.Path)
}
}
if err := iter.Error(); err != nil {
log.Fatal(err)
}
fmt.Printf("Total results available: %d\n", iter.TotalResults())
}
Output:
func (*Client) SearchIterWithQuery ¶
func (c *Client) SearchIterWithQuery(ctx context.Context, query *SearchQuery) *SearchIterator
func (*Client) SearchWithQuery ¶
func (c *Client) SearchWithQuery(ctx context.Context, query *SearchQuery) (*SearchResult, error)
type ClientOption ¶
type ClientOption func(*Client)
func WithAPIURL ¶
func WithAPIURL(url string) ClientOption
func WithBearerToken ¶
func WithBearerToken(token string) ClientOption
func WithContentType ¶
func WithContentType(contentType ContentType) ClientOption
func WithHTTPClient ¶
func WithHTTPClient(client *http.Client) ClientOption
func WithMaxRetries ¶
func WithMaxRetries(maxRetries int) ClientOption
func WithRateLimit ¶
func WithRateLimit(requestsPerSecond int) ClientOption
func WithTimeout ¶
func WithTimeout(timeout time.Duration) ClientOption
func WithUserAgent ¶
func WithUserAgent(userAgent string) ClientOption
type ContentType ¶
type ContentType string
const ( ContentTypeJSON ContentType = "application/json" ContentTypeXML ContentType = "application/vnd.orcid+xml" )
type Contributor ¶
type Contributor struct {
ContributorOrcid *ContributorOrcid `json:"contributor-orcid,omitempty" xml:"contributor-orcid,omitempty"`
CreditName *CreditName `json:"credit-name,omitempty" xml:"credit-name,omitempty"`
ContributorEmail string `json:"contributor-email,omitempty" xml:"contributor-email,omitempty"`
ContributorAttributes *ContributorAttributes `json:"contributor-attributes,omitempty" xml:"contributor-attributes,omitempty"`
}
type ContributorAttributes ¶
type ContributorOrcid ¶
type Contributors ¶
type Contributors struct {
Contributor []*Contributor `json:"contributor,omitempty" xml:"contributor,omitempty"`
}
type CreditName ¶
type CreditName struct {
Value string `json:"value,omitempty" xml:",chardata"`
}
type Date ¶
func (*Date) UnmarshalJSON ¶
UnmarshalJSON handles both Unix milliseconds and time strings
type DisambiguatedOrganization ¶
type DisambiguatedOrganization struct {
DisambiguatedOrganizationIdentifier string `json:"disambiguated-organization-identifier,omitempty" xml:"disambiguated-organization-identifier,omitempty"`
DisambiguationSource string `json:"disambiguation-source,omitempty" xml:"disambiguation-source,omitempty"`
}
type DistinctionSummary ¶
type DistinctionSummary struct {
PutCode int64 `json:"put-code,omitempty" xml:"put-code,attr,omitempty"`
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
DepartmentName string `json:"department-name,omitempty" xml:"department-name,omitempty"`
RoleTitle string `json:"role-title,omitempty" xml:"role-title,omitempty"`
StartDate *FuzzyDate `json:"start-date,omitempty" xml:"start-date,omitempty"`
EndDate *FuzzyDate `json:"end-date,omitempty" xml:"end-date,omitempty"`
Organization *Organization `json:"organization,omitempty" xml:"organization,omitempty"`
URL *URL `json:"url,omitempty" xml:"url,omitempty"`
ExternalIDs *ExternalIDs `json:"external-ids,omitempty" xml:"external-ids,omitempty"`
DisplayIndex string `json:"display-index,omitempty" xml:"display-index,attr,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type Distinctions ¶
type Distinctions struct {
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
DistinctionSummary []*DistinctionSummary `json:"distinction-summary,omitempty" xml:"distinction-summary,omitempty"`
AffiliationGroup []*AffiliationGroup `json:"affiliation-group,omitempty" xml:"affiliation-group,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type EducationSummary ¶
type EducationSummary struct {
PutCode int64 `json:"put-code,omitempty" xml:"put-code,attr,omitempty"`
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
DepartmentName string `json:"department-name,omitempty" xml:"department-name,omitempty"`
RoleTitle string `json:"role-title,omitempty" xml:"role-title,omitempty"`
StartDate *FuzzyDate `json:"start-date,omitempty" xml:"start-date,omitempty"`
EndDate *FuzzyDate `json:"end-date,omitempty" xml:"end-date,omitempty"`
Organization *Organization `json:"organization,omitempty" xml:"organization,omitempty"`
URL *URL `json:"url,omitempty" xml:"url,omitempty"`
ExternalIDs *ExternalIDs `json:"external-ids,omitempty" xml:"external-ids,omitempty"`
DisplayIndex string `json:"display-index,omitempty" xml:"display-index,attr,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type Educations ¶
type Educations struct {
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
EducationSummary []*EducationSummary `json:"education-summary,omitempty" xml:"education-summary,omitempty"`
AffiliationGroup []*AffiliationGroup `json:"affiliation-group,omitempty" xml:"affiliation-group,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type Email ¶
type Email struct {
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
Email string `json:"email,omitempty" xml:"email,omitempty"`
Primary bool `json:"primary,omitempty" xml:"primary,omitempty"`
Verified bool `json:"verified,omitempty" xml:"verified,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
PutCode int64 `json:"put-code,omitempty" xml:"put-code,attr,omitempty"`
}
type EmploymentSummary ¶
type EmploymentSummary struct {
PutCode int64 `json:"put-code,omitempty" xml:"put-code,attr,omitempty"`
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
DepartmentName string `json:"department-name,omitempty" xml:"department-name,omitempty"`
RoleTitle string `json:"role-title,omitempty" xml:"role-title,omitempty"`
StartDate *FuzzyDate `json:"start-date,omitempty" xml:"start-date,omitempty"`
EndDate *FuzzyDate `json:"end-date,omitempty" xml:"end-date,omitempty"`
Organization *Organization `json:"organization,omitempty" xml:"organization,omitempty"`
URL *URL `json:"url,omitempty" xml:"url,omitempty"`
ExternalIDs *ExternalIDs `json:"external-ids,omitempty" xml:"external-ids,omitempty"`
DisplayIndex string `json:"display-index,omitempty" xml:"display-index,attr,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type Employments ¶
type Employments struct {
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
EmploymentSummary []*EmploymentSummary `json:"employment-summary,omitempty" xml:"employment-summary,omitempty"`
AffiliationGroup []*AffiliationGroup `json:"affiliation-group,omitempty" xml:"affiliation-group,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type ExpandedSearchRecord ¶
type ExpandedSearchRecord struct {
OrcidID string `json:"orcid-id,omitempty" xml:"orcid-id,omitempty"`
GivenNames string `json:"given-names,omitempty" xml:"given-names,omitempty"`
FamilyNames string `json:"family-names,omitempty" xml:"family-names,omitempty"`
CreditName string `json:"credit-name,omitempty" xml:"credit-name,omitempty"`
Email []string `json:"email,omitempty" xml:"email,omitempty"`
InstitutionName []string `json:"institution-name,omitempty" xml:"institution-name,omitempty"`
}
type ExpandedSearchResult ¶
type ExpandedSearchResult struct {
NumFound int `json:"num-found" xml:"num-found,attr"`
ExpandedResults []*ExpandedSearchRecord `json:"expanded-result,omitempty" xml:"expanded-result,omitempty"`
}
type ExternalID ¶
type ExternalID struct {
ExternalIDType string `json:"external-id-type,omitempty" xml:"external-id-type,omitempty"`
ExternalIDValue string `json:"external-id-value,omitempty" xml:"external-id-value,omitempty"`
ExternalIDNormalized *ExternalIDNormalized `json:"external-id-normalized,omitempty" xml:"external-id-normalized,omitempty"`
ExternalIDURL *URL `json:"external-id-url,omitempty" xml:"external-id-url,omitempty"`
ExternalIDRelationship string `json:"external-id-relationship,omitempty" xml:"external-id-relationship,omitempty"`
}
type ExternalIDNormalized ¶
type ExternalIDs ¶
type ExternalIDs struct {
ExternalID []*ExternalID `json:"external-id,omitempty" xml:"external-id,omitempty"`
}
type ExternalIdentifier ¶
type ExternalIdentifier struct {
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
ExternalIdentifierType string `json:"external-id-type,omitempty" xml:"external-id-type,omitempty"`
ExternalIdentifierValue string `json:"external-id-value,omitempty" xml:"external-id-value,omitempty"`
ExternalIdentifierURL *URL `json:"external-id-url,omitempty" xml:"external-id-url,omitempty"`
ExternalIdentifierRelationship string `json:"external-id-relationship,omitempty" xml:"external-id-relationship,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
PutCode int64 `json:"put-code,omitempty" xml:"put-code,attr,omitempty"`
DisplayIndex int `json:"display-index,omitempty" xml:"display-index,attr,omitempty"`
}
type ExternalIdentifiers ¶
type ExternalIdentifiers struct {
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
ExternalIdentifier []*ExternalIdentifier `json:"external-identifier,omitempty" xml:"external-identifier,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type FamilyName ¶
type FamilyName struct {
Value string `json:"value,omitempty" xml:",chardata"`
}
type FundingGroup ¶
type FundingGroup struct {
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
ExternalIDs *ExternalIDs `json:"external-ids,omitempty" xml:"external-ids,omitempty"`
FundingSummary []*FundingSummary `json:"funding-summary,omitempty" xml:"funding-summary,omitempty"`
}
type FundingSummary ¶
type FundingSummary struct {
PutCode int64 `json:"put-code,omitempty" xml:"put-code,attr,omitempty"`
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
Title *Title `json:"title,omitempty" xml:"title,omitempty"`
Type string `json:"type,omitempty" xml:"type,omitempty"`
StartDate *FuzzyDate `json:"start-date,omitempty" xml:"start-date,omitempty"`
EndDate *FuzzyDate `json:"end-date,omitempty" xml:"end-date,omitempty"`
Organization *Organization `json:"organization,omitempty" xml:"organization,omitempty"`
URL *URL `json:"url,omitempty" xml:"url,omitempty"`
ExternalIDs *ExternalIDs `json:"external-ids,omitempty" xml:"external-ids,omitempty"`
DisplayIndex string `json:"display-index,omitempty" xml:"display-index,attr,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type Fundings ¶
type Fundings struct {
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
FundingGroup []*FundingGroup `json:"group,omitempty" xml:"group,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type GivenNames ¶
type GivenNames struct {
Value string `json:"value,omitempty" xml:",chardata"`
}
type History ¶
type History struct {
CreationMethod string `json:"creation-method,omitempty" xml:"creation-method,omitempty"`
CompletionDate *Date `json:"completion-date,omitempty" xml:"completion-date,omitempty"`
SubmissionDate *Date `json:"submission-date,omitempty" xml:"submission-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Claimed bool `json:"claimed,omitempty" xml:"claimed,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
DeactivationDate *Date `json:"deactivation-date,omitempty" xml:"deactivation-date,omitempty"`
VerifiedEmail bool `json:"verified-email,omitempty" xml:"verified-email,omitempty"`
VerifiedPrimaryEmail bool `json:"verified-primary-email,omitempty" xml:"verified-primary-email,omitempty"`
}
type InvitedPositionSummary ¶
type InvitedPositionSummary struct {
PutCode int64 `json:"put-code,omitempty" xml:"put-code,attr,omitempty"`
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
DepartmentName string `json:"department-name,omitempty" xml:"department-name,omitempty"`
RoleTitle string `json:"role-title,omitempty" xml:"role-title,omitempty"`
StartDate *FuzzyDate `json:"start-date,omitempty" xml:"start-date,omitempty"`
EndDate *FuzzyDate `json:"end-date,omitempty" xml:"end-date,omitempty"`
Organization *Organization `json:"organization,omitempty" xml:"organization,omitempty"`
URL *URL `json:"url,omitempty" xml:"url,omitempty"`
ExternalIDs *ExternalIDs `json:"external-ids,omitempty" xml:"external-ids,omitempty"`
DisplayIndex string `json:"display-index,omitempty" xml:"display-index,attr,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type InvitedPositions ¶
type InvitedPositions struct {
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
InvitedPositionSummary []*InvitedPositionSummary `json:"invited-position-summary,omitempty" xml:"invited-position-summary,omitempty"`
AffiliationGroup []*AffiliationGroup `json:"affiliation-group,omitempty" xml:"affiliation-group,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type JournalTitle ¶
type JournalTitle struct {
Value string `json:"value,omitempty" xml:"value,omitempty"`
}
type Keyword ¶
type Keyword struct {
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
Content string `json:"content,omitempty" xml:"content,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
PutCode int64 `json:"put-code,omitempty" xml:"put-code,attr,omitempty"`
DisplayIndex int `json:"display-index,omitempty" xml:"display-index,attr,omitempty"`
}
type MembershipSummary ¶
type MembershipSummary struct {
PutCode int64 `json:"put-code,omitempty" xml:"put-code,attr,omitempty"`
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
DepartmentName string `json:"department-name,omitempty" xml:"department-name,omitempty"`
RoleTitle string `json:"role-title,omitempty" xml:"role-title,omitempty"`
StartDate *FuzzyDate `json:"start-date,omitempty" xml:"start-date,omitempty"`
EndDate *FuzzyDate `json:"end-date,omitempty" xml:"end-date,omitempty"`
Organization *Organization `json:"organization,omitempty" xml:"organization,omitempty"`
URL *URL `json:"url,omitempty" xml:"url,omitempty"`
ExternalIDs *ExternalIDs `json:"external-ids,omitempty" xml:"external-ids,omitempty"`
DisplayIndex string `json:"display-index,omitempty" xml:"display-index,attr,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type Memberships ¶
type Memberships struct {
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
MembershipSummary []*MembershipSummary `json:"membership-summary,omitempty" xml:"membership-summary,omitempty"`
AffiliationGroup []*AffiliationGroup `json:"affiliation-group,omitempty" xml:"affiliation-group,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type Name ¶
type Name struct {
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
GivenNames *GivenNames `json:"given-names,omitempty" xml:"given-names,omitempty"`
FamilyName *FamilyName `json:"family-name,omitempty" xml:"family-name,omitempty"`
CreditName *CreditName `json:"credit-name,omitempty" xml:"credit-name,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type OrcidIdentifier ¶
type Organization ¶
type Organization struct {
Name string `json:"name,omitempty" xml:"name,omitempty"`
Address *OrganizationAddress `json:"address,omitempty" xml:"address,omitempty"`
DisambiguatedOrganization *DisambiguatedOrganization `json:"disambiguated-organization,omitempty" xml:"disambiguated-organization,omitempty"`
}
type OrganizationAddress ¶
type OtherName ¶
type OtherName struct {
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
Content string `json:"content,omitempty" xml:"content,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
PutCode int64 `json:"put-code,omitempty" xml:"put-code,attr,omitempty"`
DisplayIndex int `json:"display-index,omitempty" xml:"display-index,attr,omitempty"`
}
type OtherNames ¶
type PeerReviewGroup ¶
type PeerReviewGroup struct {
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
ExternalIDs *ExternalIDs `json:"external-ids,omitempty" xml:"external-ids,omitempty"`
PeerReviewSummary []*PeerReviewSummary `json:"peer-review-summary,omitempty" xml:"peer-review-summary,omitempty"`
}
type PeerReviewSummary ¶
type PeerReviewSummary struct {
PutCode int64 `json:"put-code,omitempty" xml:"put-code,attr,omitempty"`
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
ReviewGroupID string `json:"review-group-id,omitempty" xml:"review-group-id,omitempty"`
ReviewType string `json:"review-type,omitempty" xml:"review-type,omitempty"`
ReviewCompletionDate *FuzzyDate `json:"review-completion-date,omitempty" xml:"review-completion-date,omitempty"`
ReviewURL *URL `json:"review-url,omitempty" xml:"review-url,omitempty"`
Organization *Organization `json:"convening-organization,omitempty" xml:"convening-organization,omitempty"`
ExternalIDs *ExternalIDs `json:"external-ids,omitempty" xml:"external-ids,omitempty"`
DisplayIndex string `json:"display-index,omitempty" xml:"display-index,attr,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type PeerReviews ¶
type PeerReviews struct {
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
PeerReviewGroup []*PeerReviewGroup `json:"group,omitempty" xml:"group,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type Person ¶
type Person struct {
Name *Name `json:"name,omitempty" xml:"name,omitempty"`
OtherNames *OtherNames `json:"other-names,omitempty" xml:"other-names,omitempty"`
Biography *Biography `json:"biography,omitempty" xml:"biography,omitempty"`
ResearcherURLs *ResearcherURLs `json:"researcher-urls,omitempty" xml:"researcher-urls,omitempty"`
Emails *Emails `json:"emails,omitempty" xml:"emails,omitempty"`
Addresses *Addresses `json:"addresses,omitempty" xml:"addresses,omitempty"`
Keywords *Keywords `json:"keywords,omitempty" xml:"keywords,omitempty"`
ExternalIdentifiers *ExternalIdentifiers `json:"external-identifiers,omitempty" xml:"external-identifiers,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type Preferences ¶
type Preferences struct {
Locale string `json:"locale,omitempty" xml:"locale,omitempty"`
}
type PublicationDate ¶
type QualificationSummary ¶
type QualificationSummary struct {
PutCode int64 `json:"put-code,omitempty" xml:"put-code,attr,omitempty"`
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
DepartmentName string `json:"department-name,omitempty" xml:"department-name,omitempty"`
RoleTitle string `json:"role-title,omitempty" xml:"role-title,omitempty"`
StartDate *FuzzyDate `json:"start-date,omitempty" xml:"start-date,omitempty"`
EndDate *FuzzyDate `json:"end-date,omitempty" xml:"end-date,omitempty"`
Organization *Organization `json:"organization,omitempty" xml:"organization,omitempty"`
URL *URL `json:"url,omitempty" xml:"url,omitempty"`
ExternalIDs *ExternalIDs `json:"external-ids,omitempty" xml:"external-ids,omitempty"`
DisplayIndex string `json:"display-index,omitempty" xml:"display-index,attr,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type Qualifications ¶
type Qualifications struct {
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
QualificationSummary []*QualificationSummary `json:"qualification-summary,omitempty" xml:"qualification-summary,omitempty"`
AffiliationGroup []*AffiliationGroup `json:"affiliation-group,omitempty" xml:"affiliation-group,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type Record ¶
type Record struct {
OrcidIdentifier *OrcidIdentifier `json:"orcid-identifier,omitempty" xml:"orcid-identifier,omitempty"`
Preferences *Preferences `json:"preferences,omitempty" xml:"preferences,omitempty"`
History *History `json:"history,omitempty" xml:"history,omitempty"`
Person *Person `json:"person,omitempty" xml:"person,omitempty"`
ActivitiesSummary *ActivitiesSummary `json:"activities-summary,omitempty" xml:"activities-summary,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type ResearchResourceGroup ¶
type ResearchResourceGroup struct {
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
ExternalIDs *ExternalIDs `json:"external-ids,omitempty" xml:"external-ids,omitempty"`
ResearchResourceSummary []*ResearchResourceSummary `json:"research-resource-summary,omitempty" xml:"research-resource-summary,omitempty"`
}
type ResearchResourceSummary ¶
type ResearchResourceSummary struct {
PutCode int64 `json:"put-code,omitempty" xml:"put-code,attr,omitempty"`
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
Title string `json:"title,omitempty" xml:"title,omitempty"`
ExternalIDs *ExternalIDs `json:"external-ids,omitempty" xml:"external-ids,omitempty"`
DisplayIndex string `json:"display-index,omitempty" xml:"display-index,attr,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type ResearchResources ¶
type ResearchResources struct {
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
ResearchResourceGroup []*ResearchResourceGroup `json:"group,omitempty" xml:"group,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type ResearcherURL ¶
type ResearcherURL struct {
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
URLName string `json:"url-name,omitempty" xml:"url-name,omitempty"`
URL *URL `json:"url,omitempty" xml:"url,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
PutCode int64 `json:"put-code,omitempty" xml:"put-code,attr,omitempty"`
DisplayIndex int `json:"display-index,omitempty" xml:"display-index,attr,omitempty"`
}
type ResearcherURLs ¶
type ResearcherURLs struct {
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
ResearcherURL []*ResearcherURL `json:"researcher-url,omitempty" xml:"researcher-url,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type SearchIterator ¶
type SearchIterator struct {
// contains filtered or unexported fields
}
func (*SearchIterator) Error ¶
func (si *SearchIterator) Error() error
func (*SearchIterator) Next ¶
func (si *SearchIterator) Next() bool
func (*SearchIterator) TotalResults ¶
func (si *SearchIterator) TotalResults() int
func (*SearchIterator) Value ¶
func (si *SearchIterator) Value() *SearchRecord
type SearchParams ¶
type SearchQuery ¶
type SearchQuery struct {
// contains filtered or unexported fields
}
Example ¶
package main
import (
"context"
"fmt"
"log"
"github.com/Epistemic-Technology/orcid/orcid"
)
func main() {
client := orcid.NewClient()
ctx := context.Background()
query := orcid.NewSearchQuery().
FamilyName("Einstein").
And().
GivenNames("Albert").
WithRows(5)
results, err := client.SearchWithQuery(ctx, query)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Found %d results for Albert Einstein\n", results.NumFound)
}
Output:
Example (Complex) ¶
package main
import (
"context"
"fmt"
"log"
"github.com/Epistemic-Technology/orcid/orcid"
)
func main() {
client := orcid.NewClient()
ctx := context.Background()
query := orcid.NewSearchQuery().
AffiliationOrganization("MIT").
And().
RawQuery("(keyword:physics OR keyword:\"quantum computing\")").
And().
Not().
FamilyName("Test").
WithRows(20)
results, err := client.SearchWithQuery(ctx, query)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Found %d MIT researchers in physics/quantum computing\n", results.NumFound)
}
Output:
func NewSearchQuery ¶
func NewSearchQuery() *SearchQuery
func (*SearchQuery) AffiliationOrganization ¶
func (sq *SearchQuery) AffiliationOrganization(org string) *SearchQuery
func (*SearchQuery) And ¶
func (sq *SearchQuery) And() *SearchQuery
func (*SearchQuery) Biography ¶
func (sq *SearchQuery) Biography(bio string) *SearchQuery
func (*SearchQuery) Build ¶
func (sq *SearchQuery) Build() SearchParams
func (*SearchQuery) CreditName ¶
func (sq *SearchQuery) CreditName(name string) *SearchQuery
func (*SearchQuery) DOI ¶
func (sq *SearchQuery) DOI(doi string) *SearchQuery
func (*SearchQuery) Email ¶
func (sq *SearchQuery) Email(email string) *SearchQuery
func (*SearchQuery) ExternalIdentifier ¶
func (sq *SearchQuery) ExternalIdentifier(identifier string) *SearchQuery
func (*SearchQuery) FamilyName ¶
func (sq *SearchQuery) FamilyName(name string) *SearchQuery
func (*SearchQuery) FundRef ¶
func (sq *SearchQuery) FundRef(id string) *SearchQuery
func (*SearchQuery) FundingTitle ¶
func (sq *SearchQuery) FundingTitle(title string) *SearchQuery
func (*SearchQuery) GRID ¶
func (sq *SearchQuery) GRID(id string) *SearchQuery
func (*SearchQuery) GivenNames ¶
func (sq *SearchQuery) GivenNames(names string) *SearchQuery
func (*SearchQuery) Keyword ¶
func (sq *SearchQuery) Keyword(keyword string) *SearchQuery
func (*SearchQuery) Not ¶
func (sq *SearchQuery) Not() *SearchQuery
func (*SearchQuery) ORCID ¶
func (sq *SearchQuery) ORCID(orcid string) *SearchQuery
func (*SearchQuery) Or ¶
func (sq *SearchQuery) Or() *SearchQuery
func (*SearchQuery) OtherNames ¶
func (sq *SearchQuery) OtherNames(names string) *SearchQuery
func (*SearchQuery) PersonalDetails ¶
func (sq *SearchQuery) PersonalDetails(details string) *SearchQuery
func (*SearchQuery) RINGGOLD ¶
func (sq *SearchQuery) RINGGOLD(id string) *SearchQuery
func (*SearchQuery) ROR ¶
func (sq *SearchQuery) ROR(id string) *SearchQuery
func (*SearchQuery) RawQuery ¶
func (sq *SearchQuery) RawQuery(query string) *SearchQuery
func (*SearchQuery) WithRows ¶
func (sq *SearchQuery) WithRows(rows int) *SearchQuery
func (*SearchQuery) WithStart ¶
func (sq *SearchQuery) WithStart(start int) *SearchQuery
func (*SearchQuery) WorkTitle ¶
func (sq *SearchQuery) WorkTitle(title string) *SearchQuery
type SearchRecord ¶
type SearchRecord struct {
OrcidIdentifier *OrcidIdentifier `json:"orcid-identifier,omitempty" xml:"orcid-identifier,omitempty"`
}
type SearchResult ¶
type SearchResult struct {
NumFound int `json:"num-found" xml:"num-found,attr"`
Start int `json:"start" xml:"start,attr"`
NumRows int `json:"num-rows" xml:"num-rows,attr"`
Results []*SearchRecord `json:"result,omitempty" xml:"result,omitempty"`
}
type ServiceSummary ¶
type ServiceSummary struct {
PutCode int64 `json:"put-code,omitempty" xml:"put-code,attr,omitempty"`
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
DepartmentName string `json:"department-name,omitempty" xml:"department-name,omitempty"`
RoleTitle string `json:"role-title,omitempty" xml:"role-title,omitempty"`
StartDate *FuzzyDate `json:"start-date,omitempty" xml:"start-date,omitempty"`
EndDate *FuzzyDate `json:"end-date,omitempty" xml:"end-date,omitempty"`
Organization *Organization `json:"organization,omitempty" xml:"organization,omitempty"`
URL *URL `json:"url,omitempty" xml:"url,omitempty"`
ExternalIDs *ExternalIDs `json:"external-ids,omitempty" xml:"external-ids,omitempty"`
DisplayIndex string `json:"display-index,omitempty" xml:"display-index,attr,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type Services ¶
type Services struct {
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
ServiceSummary []*ServiceSummary `json:"service-summary,omitempty" xml:"service-summary,omitempty"`
AffiliationGroup []*AffiliationGroup `json:"affiliation-group,omitempty" xml:"affiliation-group,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type Source ¶
type Source struct {
SourceOrcid *OrcidIdentifier `json:"source-orcid,omitempty" xml:"source-orcid,omitempty"`
SourceClientID *SourceClientID `json:"source-client-id,omitempty" xml:"source-client-id,omitempty"`
SourceName *SourceName `json:"source-name,omitempty" xml:"source-name,omitempty"`
AssertionOriginOrcid *OrcidIdentifier `json:"assertion-origin-orcid,omitempty" xml:"assertion-origin-orcid,omitempty"`
AssertionOriginClientID *SourceClientID `json:"assertion-origin-client-id,omitempty" xml:"assertion-origin-client-id,omitempty"`
AssertionOriginName *SourceName `json:"assertion-origin-name,omitempty" xml:"assertion-origin-name,omitempty"`
}
type SourceClientID ¶
type SourceName ¶
type SourceName struct {
Value string `json:"value,omitempty" xml:"value,omitempty"`
}
type Title ¶
type Title struct {
Title *TitleValue `json:"title,omitempty" xml:"title,omitempty"`
Subtitle *Subtitle `json:"subtitle,omitempty" xml:"subtitle,omitempty"`
TranslatedTitle *TranslatedTitle `json:"translated-title,omitempty" xml:"translated-title,omitempty"`
}
type TitleValue ¶
type TitleValue struct {
Value string `json:"value,omitempty" xml:",chardata"`
}
type TranslatedTitle ¶
type Work ¶
type Work struct {
PutCode int64 `json:"put-code,omitempty" xml:"put-code,attr,omitempty"`
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
Title *Title `json:"title,omitempty" xml:"title,omitempty"`
Subtitle *Subtitle `json:"subtitle,omitempty" xml:"subtitle,omitempty"`
TranslatedTitle *TranslatedTitle `json:"translated-title,omitempty" xml:"translated-title,omitempty"`
JournalTitle JournalTitle `json:"journal-title,omitempty" xml:"journal-title,omitempty"`
ShortDescription string `json:"short-description,omitempty" xml:"short-description,omitempty"`
Citation *Citation `json:"citation,omitempty" xml:"citation,omitempty"`
Type string `json:"type,omitempty" xml:"type,omitempty"`
PublicationDate *PublicationDate `json:"publication-date,omitempty" xml:"publication-date,omitempty"`
ExternalIDs *ExternalIDs `json:"external-ids,omitempty" xml:"external-ids,omitempty"`
URL *URL `json:"url,omitempty" xml:"url,omitempty"`
Contributors *Contributors `json:"contributors,omitempty" xml:"contributors,omitempty"`
LanguageCode string `json:"language-code,omitempty" xml:"language-code,omitempty"`
Country *Country `json:"country,omitempty" xml:"country,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
}
type WorkGroup ¶
type WorkGroup struct {
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
ExternalIDs *ExternalIDs `json:"external-ids,omitempty" xml:"external-ids,omitempty"`
WorkSummary []*WorkSummary `json:"work-summary,omitempty" xml:"work-summary,omitempty"`
}
type WorkSummary ¶
type WorkSummary struct {
PutCode int64 `json:"put-code,omitempty" xml:"put-code,attr,omitempty"`
CreatedDate *Date `json:"created-date,omitempty" xml:"created-date,omitempty"`
LastModifiedDate *Date `json:"last-modified-date,omitempty" xml:"last-modified-date,omitempty"`
Source *Source `json:"source,omitempty" xml:"source,omitempty"`
Title *Title `json:"title,omitempty" xml:"title,omitempty"`
ExternalIDs *ExternalIDs `json:"external-ids,omitempty" xml:"external-ids,omitempty"`
Type string `json:"type,omitempty" xml:"type,omitempty"`
PublicationDate *PublicationDate `json:"publication-date,omitempty" xml:"publication-date,omitempty"`
JournalTitle JournalTitle `json:"journal-title,omitempty" xml:"journal-title,omitempty"`
Visibility string `json:"visibility,omitempty" xml:"visibility,attr,omitempty"`
Path Path `json:"path,omitempty" xml:"path,attr,omitempty"`
DisplayIndex string `json:"display-index,omitempty" xml:"display-index,attr,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.