diff --git a/app/models/concerns/modelable.rb b/app/models/concerns/modelable.rb new file mode 100644 index 000000000..0457d8cb4 --- /dev/null +++ b/app/models/concerns/modelable.rb @@ -0,0 +1,12 @@ +module Modelable + extend ActiveSupport::Concern + + module ClassMethods + def doi_from_url(url) + if /\A(?:(http|https):\/\/(dx\.)?(doi.org|handle.test.datacite.org)\/)?(doi:)?(10\.\d{4,5}\/.+)\z/.match(url) + uri = Addressable::URI.parse(url) + uri.path.gsub(/^\//, '').downcase + end + end + end +end \ No newline at end of file diff --git a/app/models/event.rb b/app/models/event.rb index 67ee72781..ce8cfb31b 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -1,4 +1,7 @@ class Event + # include helper module for PORO models + include Modelable + def self.find_by_id(id) return { errors: [{ "title" => "No id provided"} ] } unless id.present? @@ -19,10 +22,12 @@ def self.find_by_id(id) def self.query(query, options={}) size = options[:limit] || 100 + doi = options[:doi].present? ? doi_from_url(options[:doi]) : nil url = "https://api.datacite.org/events?page[size]=#{size}" url += "&relation-type-id=#{options[:relation_type_id]}" if options[:relation_type_id].present? url += "&source-id=#{options[:source_id]}" if options[:source_id].present? + url += "&doi=#{doi}" if doi.present? response = Maremma.get(url, accept: "application/vnd.api+json; version=2") diff --git a/app/models/funder.rb b/app/models/funder.rb index fbc03f57b..97fc6c5ce 100644 --- a/app/models/funder.rb +++ b/app/models/funder.rb @@ -1,4 +1,7 @@ class Funder + # include helper module for PORO models + include Modelable + def self.find_by_id(id) doi = doi_from_url(id) return [] unless doi.present? @@ -47,11 +50,4 @@ def self.parse_message(id: nil, message: nil) country: message["location"], date_modified: "2019-04-18T00:00:00Z" }.compact end - - def self.doi_from_url(url) - if /\A(?:(http|https):\/\/(dx\.)?(doi.org|handle.test.datacite.org)\/)?(doi:)?(10\.\d{4,5}\/.+)\z/.match(url) - uri = Addressable::URI.parse(url) - uri.path.gsub(/^\//, '').downcase - end - end end diff --git a/spec/fixtures/vcr_cassettes/Event/query/doi.yml b/spec/fixtures/vcr_cassettes/Event/query/doi.yml new file mode 100644 index 000000000..321a8ac32 --- /dev/null +++ b/spec/fixtures/vcr_cassettes/Event/query/doi.yml @@ -0,0 +1,59 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.datacite.org/events?doi=10.7272/q6z60kzd&page%5Bsize%5D=100 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Mozilla/5.0 (compatible; Maremma/4.2.1; +https://github.com/datacite/maremma) + Accept: + - application/vnd.api+json; version=2 + response: + status: + code: 200 + message: OK + headers: + Date: + - Tue, 07 May 2019 05:56:19 GMT + Content-Type: + - application/json; charset=utf-8 + Connection: + - keep-alive + Status: + - 200 OK + X-Anonymous-Consumer: + - 'true' + Cache-Control: + - max-age=0, private, must-revalidate + Vary: + - Accept-Encoding, Origin + Etag: + - W/"a74e70f82ccf1ea8a8efcdb7753ce387" + X-Runtime: + - '0.055483' + X-Request-Id: + - fa530925-c2a1-49b5-aff3-8de4409a72bc + X-Powered-By: + - Phusion Passenger 6.0.2 + Server: + - nginx/1.15.8 + Phusion Passenger 6.0.2 + body: + encoding: ASCII-8BIT + string: '{"data":[{"id":"758199db-95c9-4216-ae7a-70b9d00425d4","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/08761bb6-f8d9-4d01-8012-fd21042fd71d","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"total-dataset-investigations-regular","total":58,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2018-05-31T00:00:00.000Z","timestamp":"2018-09-05T20:03:51.000Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/08761bb6-f8d9-4d01-8012-fd21042fd71d","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"de42c435-144d-4320-811c-bb66202dfaf3","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/08761bb6-f8d9-4d01-8012-fd21042fd71d","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"unique-dataset-investigations-regular","total":6,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2018-05-31T00:00:00.000Z","timestamp":"2018-09-05T20:03:58.141Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/08761bb6-f8d9-4d01-8012-fd21042fd71d","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"0449c7e8-1ee2-48ec-b1fd-c7839b88b500","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/2018-4-Dash","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"total-dataset-requests-regular","total":23157,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2018-04-30T00:00:00.000Z","timestamp":"2018-09-05T22:00:29.445Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/2018-4-Dash","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"7ac4532e-52af-465d-a628-88a2e7165d78","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/2018-4-Dash","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"unique-dataset-requests-regular","total":179,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2018-04-30T00:00:00.000Z","timestamp":"2018-09-05T22:00:35.566Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/2018-4-Dash","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"5844e1d2-edc9-43dc-9d52-d070926ecc6b","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/2018-4-Dash","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"total-dataset-investigations-regular","total":7,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2018-04-30T00:00:00.000Z","timestamp":"2018-09-05T22:00:41.215Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/2018-4-Dash","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"242f47a5-5382-41f8-8506-1b934b9d8578","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/2018-4-Dash","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"unique-dataset-investigations-regular","total":7,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2018-04-30T00:00:00.000Z","timestamp":"2018-09-05T22:00:46.682Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/2018-4-Dash","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"344debf2-cde6-47a7-a11b-241e22514773","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/d4cccd37-9044-4c59-85d4-f2063ce361cd","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"total-dataset-investigations-regular","total":4,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2018-06-30T00:00:00.000Z","timestamp":"2018-09-07T14:48:13.355Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/d4cccd37-9044-4c59-85d4-f2063ce361cd","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"daba4b90-ed78-4479-93fd-b979d1008b75","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/d4cccd37-9044-4c59-85d4-f2063ce361cd","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"unique-dataset-investigations-regular","total":3,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2018-06-30T00:00:00.000Z","timestamp":"2018-09-07T14:48:13.423Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/d4cccd37-9044-4c59-85d4-f2063ce361cd","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"82d5898b-019f-4fd0-b194-bfff651fc985","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/21fd2e8e-5481-4bbd-b2ef-742d8b270a66","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"total-dataset-requests-regular","total":23157,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2018-04-30T00:00:00.000Z","timestamp":"2018-09-07T14:50:02.748Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/21fd2e8e-5481-4bbd-b2ef-742d8b270a66","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"099d8a1e-4553-4653-b2be-9553e6772832","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/21fd2e8e-5481-4bbd-b2ef-742d8b270a66","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"unique-dataset-requests-regular","total":179,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2018-04-30T00:00:00.000Z","timestamp":"2018-09-07T14:50:02.812Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/21fd2e8e-5481-4bbd-b2ef-742d8b270a66","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"03f5743e-089e-4163-a406-f6529e81e422","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/21fd2e8e-5481-4bbd-b2ef-742d8b270a66","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"total-dataset-investigations-regular","total":23164,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2018-04-30T00:00:00.000Z","timestamp":"2018-09-07T14:50:02.889Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/21fd2e8e-5481-4bbd-b2ef-742d8b270a66","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"b50631aa-6f06-4a80-b137-49a52166750f","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/21fd2e8e-5481-4bbd-b2ef-742d8b270a66","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"unique-dataset-investigations-regular","total":185,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2018-04-30T00:00:00.000Z","timestamp":"2018-09-07T14:50:02.947Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/21fd2e8e-5481-4bbd-b2ef-742d8b270a66","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"ddf862d2-e196-4354-bc72-4ce5d0a3c154","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/0cb326d1-e3e7-4cc1-9d86-7c5f3d5ca310","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"total-dataset-investigations-regular","total":16,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2018-08-31T00:00:00.000Z","timestamp":"2018-09-07T14:52:22.718Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/0cb326d1-e3e7-4cc1-9d86-7c5f3d5ca310","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"38a4944d-37fe-4f07-a5d4-7dae84726830","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/0cb326d1-e3e7-4cc1-9d86-7c5f3d5ca310","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"unique-dataset-investigations-regular","total":16,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2018-08-31T00:00:00.000Z","timestamp":"2018-09-07T14:52:22.786Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/0cb326d1-e3e7-4cc1-9d86-7c5f3d5ca310","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"de91d05f-99f8-413f-96c4-68a093d0ebcf","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/0c732186-e057-47d9-a5ee-a8121a26c4f9","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"unique-dataset-investigations-regular","total":10,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2019-02-01T00:00:00.000Z","timestamp":"2019-02-27T16:20:55.490Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/0c732186-e057-47d9-a5ee-a8121a26c4f9","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"68b5403b-2151-4b67-96ab-d23332a08e1a","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/0c732186-e057-47d9-a5ee-a8121a26c4f9","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"total-dataset-investigations-regular","total":11,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2019-02-01T00:00:00.000Z","timestamp":"2019-02-27T16:20:55.527Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/0c732186-e057-47d9-a5ee-a8121a26c4f9","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"cfcad9be-5651-4ebb-b01d-5be10ab054d7","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/d47d3a5a-7a7a-495a-8db8-d6fb5bba4e5e","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"unique-dataset-investigations-regular","total":5,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2019-03-01T00:00:00.000Z","timestamp":"2019-03-11T15:05:48.624Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/d47d3a5a-7a7a-495a-8db8-d6fb5bba4e5e","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"1ed26cf4-7d2a-44a7-92c5-263a5c40c9bd","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/d47d3a5a-7a7a-495a-8db8-d6fb5bba4e5e","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"total-dataset-investigations-regular","total":5,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2019-03-01T00:00:00.000Z","timestamp":"2019-03-11T15:05:52.502Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/d47d3a5a-7a7a-495a-8db8-d6fb5bba4e5e","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"2d6d4e2c-2d61-4362-8794-2c80d33b5263","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/98258e11-c29d-471d-aaf2-7d650f28029a","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"unique-dataset-investigations-regular","total":2,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2019-04-01T00:00:00.000Z","timestamp":"2019-04-05T14:33:07.912Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/98258e11-c29d-471d-aaf2-7d650f28029a","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"f8f75e97-cfec-4b19-bbb9-2d2e8151d84c","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/98258e11-c29d-471d-aaf2-7d650f28029a","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"total-dataset-investigations-regular","total":2,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2019-04-01T00:00:00.000Z","timestamp":"2019-04-05T14:33:09.388Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/98258e11-c29d-471d-aaf2-7d650f28029a","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"9487211a-c9c8-4f33-9dcb-97d8ca983ffd","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/073f27b5-d38b-4301-ab73-3274ba3eb672","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"unique-dataset-investigations-regular","total":1,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2019-05-01T00:00:00.000Z","timestamp":"2019-05-02T14:35:19.386Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/073f27b5-d38b-4301-ab73-3274ba3eb672","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}},{"id":"b7e90ced-2381-46bc-9f42-25a296a60192","type":"events","attributes":{"subjId":"https://api.datacite.org/reports/073f27b5-d38b-4301-ab73-3274ba3eb672","objId":"https://doi.org/10.7272/q6z60kzd","sourceId":"datacite-usage","relationTypeId":"total-dataset-investigations-regular","total":1,"messageAction":"create","sourceToken":"43ba99ae-5cf0-11e8-9c2d-fa7ae01bbebc","license":"https://creativecommons.org/publicdomain/zero/1.0/","occurredAt":"2019-05-01T00:00:00.000Z","timestamp":"2019-05-02T14:35:20.072Z"},"relationships":{"subj":{"data":{"id":"https://api.datacite.org/reports/073f27b5-d38b-4301-ab73-3274ba3eb672","type":"objects"}},"obj":{"data":{"id":"https://doi.org/10.7272/q6z60kzd","type":"objects"}}}}],"meta":{"total":22,"totalPages":1,"page":1,"sources":[{"id":"datacite-usage","title":"DataCite + Usage Stats","count":22}],"prefixes":[{"id":"10.7272","title":"10.7272","count":22}],"citationTypes":[],"relationTypes":[{"id":"total-dataset-investigations-regular","title":"total-dataset-investigations-regular","count":23268.0,"yearMonths":[{"id":"2018-04","title":"April + 2018","sum":23171.0},{"id":"2018-05","title":"May 2018","sum":58.0},{"id":"2018-06","title":"June + 2018","sum":4.0},{"id":"2018-08","title":"August 2018","sum":16.0},{"id":"2019-02","title":"February + 2019","sum":11.0},{"id":"2019-03","title":"March 2019","sum":5.0},{"id":"2019-04","title":"April + 2019","sum":2.0},{"id":"2019-05","title":"May 2019","sum":1.0}]},{"id":"unique-dataset-investigations-regular","title":"unique-dataset-investigations-regular","count":235.0,"yearMonths":[{"id":"2018-04","title":"April + 2018","sum":192.0},{"id":"2018-05","title":"May 2018","sum":6.0},{"id":"2018-06","title":"June + 2018","sum":3.0},{"id":"2018-08","title":"August 2018","sum":16.0},{"id":"2019-02","title":"February + 2019","sum":10.0},{"id":"2019-03","title":"March 2019","sum":5.0},{"id":"2019-04","title":"April + 2019","sum":2.0},{"id":"2019-05","title":"May 2019","sum":1.0}]},{"id":"total-dataset-requests-regular","title":"total-dataset-requests-regular","count":46314.0,"yearMonths":[{"id":"2018-04","title":"April + 2018","sum":46314.0}]},{"id":"unique-dataset-requests-regular","title":"unique-dataset-requests-regular","count":358.0,"yearMonths":[{"id":"2018-04","title":"April + 2018","sum":358.0}]}]},"links":{"self":"https://api.datacite.org/events?doi=10.7272%2Fq6z60kzd&page%5Bsize%5D=100","next":"https://api.datacite.org/events?doi=10.7272%2Fq6z60kzd&page%5Bnumber%5D=2&page%5Bsize%5D=100"}}' + http_version: + recorded_at: Tue, 07 May 2019 05:56:19 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/models/event_spec.rb b/spec/models/event_spec.rb index 714862662..c089682c6 100644 --- a/spec/models/event_spec.rb +++ b/spec/models/event_spec.rb @@ -39,6 +39,20 @@ expect(response[:data].first).to eq(:id=>"308185f3-1607-478b-a25e-ed5671994db5", :subj_id=>"https://api.datacite.org/reports/fa2ad308-1b25-4394-9bc6-e0c7511e763d", :obj_id=>"https://doi.org/10.7272/q6g15xs4", :source_id=>"datacite-usage", :relation_type_id=>"total-dataset-investigations-regular", :total=>4) end + it "doi" do + doi = "https://doi.org/10.7272/q6z60kzd" + response = Event.query(nil, doi: doi) + expect(response[:data].size).to eq(22) + expect(response.dig(:meta, "relationTypes", 0, "yearMonths")).to eq([{"id"=>"2018-04", "title"=>"April 2018", "sum"=>23171.0}, + {"id"=>"2018-05", "title"=>"May 2018", "sum"=>58.0}, + {"id"=>"2018-06", "title"=>"June 2018", "sum"=>4.0}, + {"id"=>"2018-08", "title"=>"August 2018", "sum"=>16.0}, + {"id"=>"2019-02", "title"=>"February 2019", "sum"=>11.0}, + {"id"=>"2019-03", "title"=>"March 2019", "sum"=>5.0}, + {"id"=>"2019-04", "title"=>"April 2019", "sum"=>2.0}, + {"id"=>"2019-05", "title"=>"May 2019", "sum"=>1.0}]) + end + it "not found" do source_id = "xxx" response = Event.query(nil, source_id: source_id)