-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace DataCite EZID API Calls W/ DataCite REST API #2268
Comments
https://rubygems.org/gems/datacite seems to do most of what we need at this point.
jupiter/app/services/doi_service.rb Lines 27 to 49 in 3e2d4ae
Looks like this will be two steps to 1. create and 2. update attributes
jupiter/app/services/doi_service.rb Lines 51 to 76 in 3e2d4ae
jupiter/app/services/doi_service.rb Lines 78 to 80 in 3e2d4ae
I don't see an option to delete/remove in the gem. The docs https://support.datacite.org/reference/dois-2#delete_dois-id
Which isn't what we were doing. I don't know if there is an equivalent to |
Maybe this is equivalent to withdrawn?
|
It looks like the EZ API used its own terms for the 3 DOI states. [1] shows a table with the equivalent native DataCite terms. The state determines whether you are allowed to delete. EZ API had Reserved, Public, and Unavailable [2]. Deletion is an action that can only be applied to a Reserved DOI. If you need to withdraw a DOI after it has been made public, you change the status to Unavailable, provide a reason (that's what "withdrawn" is in your example) and provide an updated URL that points to a tombstone page (which you are responsible for creating). The official DataCite states are Draft (=Reserved), Findable (=Public), and Registered (=Unavailable). I think everything works the same and it's just the names that are different. I can't tell what the difference is between the the REST API and the MDS (Metadata Store) API. They both seem to do the same thing. However, there is more descriptive information on the MDS API documentation [3], which may help you sort out how the REST API is supposed to work. |
@pgwillia I wasn't sure how to answer your question, because I didn't know the context of the function in the original gem. Feel free to throw more questions at me. |
ezid metadata was fairly flat
I think the same thing for the datacite api would be
|
Or rather we want these: https://support.datacite.org/docs/api-create-dois#create-a-findable-doi
[edit] I found out that |
DOIs are updated when certain fields change jupiter/app/models/jupiter_core/doiable.rb Lines 79 to 84 in 3e2d4ae
causing the altered! eventjupiter/app/models/jupiter_core/doiable.rb Lines 54 to 59 in 3e2d4ae
which marks the object awaiting_update jupiter/app/models/jupiter_core/doiable.rb Lines 36 to 38 in 3e2d4ae
and queues an update job jupiter/app/models/jupiter_core/doiable.rb Lines 90 to 92 in 3e2d4ae
The job won't run if awaiting_update isn't markedjupiter/app/services/doi_service.rb Line 52 in 3e2d4ae
|
|
A number of dois have been generated with Datacite api including https://era.library.ualberta.ca/items/525bfc1f-4333-4a10-aa2a-40930be459f7 |
The EZID Compatibility API is sunsetting at the end of this year, per https://blog.datacite.org/sunsetting-of-the-ez-api/
We'll need to switch over to their normal API. A cursory glance at GitHub didn't turn out any useful gems (the only thing I saw was one project that hadn't seen an update in over 6 years), so we may need to wrap this ourselves.
The text was updated successfully, but these errors were encountered: