colrapi 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8fdc3cd60c5c9678fa5f5feb8706a91ff121374f9a84966224b8824ff4a97397
4
- data.tar.gz: b2a57d1fc5eaa08288359b44905358511d75a5dfa084368b9f77c8e70c488447
3
+ metadata.gz: aea2e44a818d41cd832614bd00cb148714061db766ef82a61be48a036568d032
4
+ data.tar.gz: d7b3de2c633901fc8e30f6f80fb8fe47bbb1b9702d016f1240fed959c26479ba
5
5
  SHA512:
6
- metadata.gz: 6d0f6fc5211efc5da06e31c56188fd039d1ab8bef714a969d87db5398ea8ec1f5e9d49f0762019c51e11050ed85a80e4c18543d5310f29e5dcfe85161da8a9c6
7
- data.tar.gz: 8101188650f8034ecc4ae36a51bdc57d132984f85a908ae35b906e5f79e00737c29b8b4d27f65e749e7e6f9586e47b11ce66e45e64523be619192e54fd2a41b1
6
+ metadata.gz: a24bec052600b4f5cf3402e5cf8b5ad62e40dd5178d79285812acd594caaa91d18c4dd28c29bbb4eba6eb9da8aaec5a619d2263c929c49edc1b91dfef9caa5f9
7
+ data.tar.gz: 7b495d6b3ea866840958a56334a1493f94b39568df0a474b6de5cae4940c18206a3041c9920b2567ade50d71326d13861502722bfaa1433e0e45e3a626c33b2e
data/CHANGELOG.md CHANGED
@@ -1,8 +1,15 @@
1
1
  ## [Unreleased]
2
- - Updated license from NCSA to MIT
2
+
3
+ ## [0.1.5] - 2025-03-25
4
+ - Added usage_id to nameusage_search
5
+
6
+ ## [0.1.4] - 2025-03-05
7
+ - Fixed authentication
8
+ - Kept depreciated ChecklistBank preview endpoint functionality by using /dataset/{dataset_id}LRC.json instead (now requires a token)
3
9
 
4
10
  ## [0.1.3] - 2025-03-04
5
11
  - Added environment and highest_taxon_id to name_usage_search
12
+ - Updated license from NCSA to MIT
6
13
 
7
14
  ## [0.1.2] - 2024-09-11
8
15
  - Removed Gemfile.lock
@@ -20,7 +20,7 @@ module Faraday
20
20
  when 502
21
21
  raise Colrapi::BadGateway, error_message_500(response, "The server returned an invalid or incomplete response.")
22
22
  when 503
23
- raise Colrapi::ServiceUnavailable, error_message_500(response, "Crossref is rate limiting your requests.")
23
+ raise Colrapi::ServiceUnavailable, error_message_500(response, "The service is unavailable.")
24
24
  when 504
25
25
  raise Colrapi::GatewayTimeout, error_message_500(response, "504 Gateway Time-out")
26
26
  end
@@ -1,15 +1,11 @@
1
- require_relative "faraday" # !! Potential ruby 3.0 difference in module loading? relative differs from Serrano
1
+ require_relative "faraday"
2
2
  require "faraday/follow_redirects"
3
3
  require_relative "utils"
4
4
  require "colrapi/error"
5
5
 
6
6
  module Colrapi
7
7
  class Request
8
- attr_accessor :endpoint
9
- attr_accessor :q
10
- attr_accessor :verbose
11
-
12
- attr_accessor :options
8
+ attr_accessor :endpoint, :q, :verbose, :options
13
9
 
14
10
  def initialize(**args)
15
11
  @endpoint = args[:endpoint]
@@ -31,6 +27,7 @@ module Colrapi
31
27
  @max_rank = args[:max_rank]
32
28
  @environment = args[:environment]
33
29
  @highest_taxon_id = args[:highest_taxon_id]
30
+ @usage_id = args[:usage_id]
34
31
  @parent_rank = args[:parent_rank]
35
32
  @root_id = Array(args[:root_id]) if args[:root_id]
36
33
  @root2_id = Array(args[:root2_id]) if args[:root2_id]
@@ -61,7 +58,7 @@ module Colrapi
61
58
  @term_operator = args[:term_operator]
62
59
  @issued = args[:issued]
63
60
  @issued_before = args[:issued]
64
- @modified_after = args[:modified_after]
61
+ @modified_after = args[:modified_after]
65
62
  @modified_before = args[:modified_before]
66
63
  @last_synced_before = args[:last_synced_before]
67
64
  @min = args[:min]
@@ -132,30 +129,18 @@ module Colrapi
132
129
  subgenus: @within_subgenus, section: @within_section, species: @within_species,
133
130
  nidx: @nidx_id, state: @state, running: @running, notCurrentOnly: @not_current_only,
134
131
  broken: @broken, subjectDatasetKey: @subject_dataset_id, mode: @mode, subject: @subject,
135
- TAXON_ID: @highest_taxon_id, environment: @environment,
136
- sortBy: @sort_by, reverse: @reverse, url: @url, offset: @offset, limit: @limit}
132
+ TAXON_ID: @highest_taxon_id, USAGE_ID: @usage_id, environment: @environment,
133
+ sortBy: @sort_by, reverse: @reverse, url: @url, body: @body, offset: @offset, limit: @limit }
137
134
  opts = args.delete_if { |_k, v| v.nil? }
138
135
 
139
- conn = if verbose
140
- Faraday.new(url: Colrapi.base_url, request: { params_encoder: Faraday::FlatParamsEncoder }) do |f|
141
- if !@user.nil? and !@password.nil?
142
- f.request(:basic_auth, @user, @password)
143
- end
144
- f.response :logger
145
- f.use Faraday::ColrapiErrors::Middleware
146
- f.adapter Faraday.default_adapter
147
- end
148
- else
149
- Faraday.new(url: Colrapi.base_url, request: { params_encoder: Faraday::FlatParamsEncoder }) do |f|
150
- if !@user.nil? and !@password.nil?
151
- f.request(:basic_auth, @user, @password)
152
- end
153
- f.use Faraday::ColrapiErrors::Middleware
154
- f.adapter Faraday.default_adapter
155
- end
156
- end
136
+ conn = Faraday.new(url: Colrapi.base_url, request: { params_encoder: Faraday::FlatParamsEncoder }) do |f|
137
+ f.request :authorization, :basic, @user, @password if @user && @password
138
+ f.response :logger if @verbose
139
+ f.use Faraday::ColrapiErrors::Middleware
140
+ f.adapter Faraday.default_adapter
141
+ end
157
142
 
158
- conn.headers['Authorization'] = "Bearer #{@token}" unless @token.nil?
143
+ conn.headers['Authorization'] = "Bearer #{@token}" if @token
159
144
  conn.headers['Accept'] = 'application/json,*/*'
160
145
  conn.headers[:user_agent] = make_user_agent
161
146
  conn.headers["X-USER-AGENT"] = make_user_agent
@@ -168,7 +153,6 @@ module Colrapi
168
153
  rescue MultiJson::ParseError
169
154
  res.body
170
155
  end
171
-
172
156
  end
173
157
  end
174
158
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Colrapi
4
- VERSION = "0.1.3"
4
+ VERSION = "0.1.5"
5
5
  end
data/lib/colrapi.rb CHANGED
@@ -42,6 +42,7 @@ module Colrapi
42
42
  # Search datasets:
43
43
  # @param q [String] A search query for datasets
44
44
  # @param short_title [String] A dataset alias
45
+ # @param title [String] A dataset title
45
46
  # @param code [String] The nomenclatural code (bacterial, botanical, cultivars, phytosociological, virus, zoological)
46
47
  # @param private [Boolean] Whether the dataset is private or not
47
48
  # @param released_from [Integer] Filter by a project id that a dataset was released from
@@ -64,6 +65,7 @@ module Colrapi
64
65
  # @param modified_after [Date] Filter by modified after date
65
66
  # @param modified_before [Date] Filter by modified before date
66
67
  # @param min_size [Integer] Filter by minimum record size
68
+ # @param token [String, nil] An authentication token from Colrapi.user_login()
67
69
  #
68
70
  # @param sort_by [String] Sort by (key, alias, title, creator, relevance, created, modified, imported, size)
69
71
  # @param reverse [Boolean] Sort in reverse
@@ -76,7 +78,7 @@ module Colrapi
76
78
  contributes_to: nil, has_source_dataset: nil, has_gbif_id: nil, gbif_id: nil, gbif_publisher_id: nil,
77
79
  editor: nil, reviewer: nil, modified_by: nil, origin: nil, type: nil, license: nil, row_type: nil,
78
80
  created_after: nil, created_before: nil, issued_after: nil, issued_before: nil, modified_after: nil,
79
- modified_before: nil, min_size: nil, sort_by: nil, reverse: nil, offset: nil, limit: nil,
81
+ modified_before: nil, min_size: nil, sort_by: nil, token: nil, reverse: nil, offset: nil, limit: nil,
80
82
  verbose: false)
81
83
  endpoint = "dataset"
82
84
  unless dataset_id.nil?
@@ -94,7 +96,7 @@ module Colrapi
94
96
  row_type: row_type, created_after: created_after, created_before: created_before,
95
97
  issued_after: issued_after, issued_before: issued_before, modified_after: modified_after,
96
98
  modified_before: modified_before, min_size: min_size, sort_by: sort_by, reverse: reverse,
97
- offset: offset, limit: limit, verbose: verbose).perform
99
+ offset: offset, limit: limit, token: token, verbose: verbose).perform
98
100
  end
99
101
  end
100
102
 
@@ -553,6 +555,7 @@ module Colrapi
553
555
  # @param facet [Array, String, nil] the search facet
554
556
  # @param environment [Array, String, nil] filter by environment (MARINE, TERRESTRIAL, FRESHWATER, BRACKISH)
555
557
  # @param highest_taxon_id [String, nil] Filter by highest taxon ID
558
+ # @param usage_id [String, nil] Filter by usage ID
556
559
  #
557
560
  # @param sort_by [String, nil] sort results by NAME, TAXONOMIC, INDEX_NAME_ID, NATIVE, or RELEVANCE
558
561
  # @param reverse [Boolean] sort in reverse order
@@ -563,7 +566,7 @@ module Colrapi
563
566
  # @return [Array, Boolean] An array of hashes
564
567
  def self.nameusage_search(q: nil, dataset_id: nil, endpoint: 'nameusage/search', content: nil, issue: nil,
565
568
  type: nil, rank: nil, min_rank: nil, max_rank: nil, environment: nil, facet: nil,
566
- highest_taxon_id: nil, sort_by: nil, reverse: nil, offset: nil, limit: nil,
569
+ highest_taxon_id: nil, usage_id: nil, sort_by: nil, reverse: nil, offset: nil, limit: nil,
567
570
  verbose: false)
568
571
 
569
572
  # a nil dataset_id will search name usages from all datasets in ChecklistBank
@@ -573,7 +576,7 @@ module Colrapi
573
576
 
574
577
  Request.new(endpoint: endpoint, q: q, content: content, issue: issue, type: type,
575
578
  rank: rank, min_rank: min_rank, max_rank: max_rank, facet: facet, environment: environment,
576
- highest_taxon_id: highest_taxon_id, sort_by: sort_by, reverse: reverse,
579
+ highest_taxon_id: highest_taxon_id, usage_id: usage_id, sort_by: sort_by, reverse: reverse,
577
580
  offset: offset, limit: limit, verbose: verbose).perform
578
581
  end
579
582
 
@@ -693,11 +696,12 @@ module Colrapi
693
696
  # (Note: you can also use 3LRC where 3 is the project_id as an ID on any endpoint with dataset_id or project_id
694
697
  # to get data from the latest release candidate, or 3LR gets the latest release)
695
698
  # @param project_id [String] The project id
699
+ # @param token [String, nil] The authentication token from retrieved with Colrapi.user_login(user, password)
696
700
  #
697
701
  # @param verbose [Boolean] Print headers to STDOUT
698
702
  # @return [Array, Boolean] An array of hashes
699
- def self.preview(project_id, verbose: false)
700
- Request.new(endpoint: "dataset/#{project_id}/preview", verbose: verbose).perform
703
+ def self.preview(project_id, token, verbose: false)
704
+ Request.new(endpoint: "dataset/#{project_id}LRC.json", token: token, verbose: verbose).perform
701
705
  end
702
706
 
703
707
  # Get a reference with @reference_id from dataset @dataset_id via the reference route
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: colrapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Yoder, Geoff Ower
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-03-04 00:00:00.000000000 Z
11
+ date: 2025-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -198,7 +198,7 @@ licenses:
198
198
  metadata:
199
199
  homepage_uri: https://github.com/SpeciesFileGroup/colrapi
200
200
  source_code_uri: https://github.com/SpeciesFileGroup/colrapi
201
- changelog_uri: https://github.com/SpeciesFileGroup/colrapi/releases/tag/v0.1.3
201
+ changelog_uri: https://github.com/SpeciesFileGroup/colrapi/releases/tag/v0.1.5
202
202
  post_install_message:
203
203
  rdoc_options: []
204
204
  require_paths: