diff --git a/.gitignore b/.gitignore index de6ab2c..1c00d97 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,6 @@ config/config.rb .idea/ # Specific to rbenv -.ruby-version \ No newline at end of file +.ruby-version + +./vs \ No newline at end of file diff --git a/lib/ontologies_api_client/base.rb b/lib/ontologies_api_client/base.rb index a4404df..f7a65d9 100644 --- a/lib/ontologies_api_client/base.rb +++ b/lib/ontologies_api_client/base.rb @@ -157,4 +157,4 @@ def populate_attributes(hash) end end -end +end \ No newline at end of file diff --git a/lib/ontologies_api_client/http.rb b/lib/ontologies_api_client/http.rb index ebd8750..775237e 100644 --- a/lib/ontologies_api_client/http.rb +++ b/lib/ontologies_api_client/http.rb @@ -126,6 +126,7 @@ def self.post(path, obj, options = {}) else recursive_struct(load_json(response.body)) end + end def self.put(path, obj) diff --git a/lib/ontologies_api_client/middleware/faraday-user-apikey.rb b/lib/ontologies_api_client/middleware/faraday-user-apikey.rb index 08c73cc..f9a6425 100644 --- a/lib/ontologies_api_client/middleware/faraday-user-apikey.rb +++ b/lib/ontologies_api_client/middleware/faraday-user-apikey.rb @@ -7,11 +7,19 @@ def initialize(app, *arguments) end def call(env) - user = Thread.current[:session] && Thread.current[:session][:user] ? Thread.current[:session][:user] : nil - if user + bearer_token = Thread.current[:ontologies_api_client_token] + + if bearer_token headers = env[:request_headers] - headers["Authorization"] = headers["Authorization"] + "&userapikey=" + user.apikey + headers["Authorization"] = "Bearer #{bearer_token}" env[:request_headers] = headers + else + user = Thread.current[:session] && Thread.current[:session][:user] ? Thread.current[:session][:user] : nil + if user + headers = env[:request_headers] + headers["Authorization"] = headers["Authorization"] + "&userapikey=" + user.apikey + env[:request_headers] = headers + end end @app.call(env) end diff --git a/lib/ontologies_api_client/models/identifier_request.rb b/lib/ontologies_api_client/models/identifier_request.rb new file mode 100644 index 0000000..9a1adac --- /dev/null +++ b/lib/ontologies_api_client/models/identifier_request.rb @@ -0,0 +1,13 @@ +require_relative "../base" + +module LinkedData + module Client + module Models + class IdentifierRequest < LinkedData::Client::Base + include LinkedData::Client::Collection + include LinkedData::Client::ReadWrite + @media_type = "http://data.bioontology.org/metadata/IdentifierRequest" + end + end + end +end diff --git a/lib/ontologies_api_client/models/note.rb b/lib/ontologies_api_client/models/note.rb index a24c534..24b15b3 100644 --- a/lib/ontologies_api_client/models/note.rb +++ b/lib/ontologies_api_client/models/note.rb @@ -9,7 +9,7 @@ class Note < LinkedData::Client::Base @media_type = "http://data.bioontology.org/metadata/Note" def deletable?(user) - false + !user.nil? && user.admin? # Administrators can delete notes end def uuid diff --git a/lib/ontologies_api_client/models/review.rb b/lib/ontologies_api_client/models/review.rb index bd7cae5..c72cfe8 100644 --- a/lib/ontologies_api_client/models/review.rb +++ b/lib/ontologies_api_client/models/review.rb @@ -8,6 +8,23 @@ class Review < LinkedData::Client::Base include LinkedData::Client::ReadWrite @media_type = "http://data.bioontology.org/metadata/Review" + @include_attrs = "all" + + def self.more_recent_review(r1, r2) + time1 = r1.created + time2 = r2.created + + time2 <=> time1 # reversed order + end + + def self.sort_reviews(reviews) + reviews.sort { |r1, r2| more_recent_review(r1, r2) } + end + + def self.sort_reviews!(reviews) + reviews.sort! { |r1, r2| more_recent_review(r1, r2) } + reviews + end end end end diff --git a/lib/ontologies_api_client/read_write.rb b/lib/ontologies_api_client/read_write.rb index 3549bb0..366f8ba 100644 --- a/lib/ontologies_api_client/read_write.rb +++ b/lib/ontologies_api_client/read_write.rb @@ -104,4 +104,4 @@ def refresh_cache end end -end +end \ No newline at end of file