From 7f915e0d903edbed4e778328818ff2914be06ef7 Mon Sep 17 00:00:00 2001 From: Alexander Olofsson <alexander.olofsson@liu.se> Date: Tue, 22 Oct 2019 16:48:52 +0200 Subject: [PATCH] Add support for bare resource retrieval This is useful in cases where the object is only required as a reference for looking up other resources. For example; `client.password_lists.get(5, _bare: true).passwords.search(user_name: 'root')` --- lib/passwordstate/resource.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/passwordstate/resource.rb b/lib/passwordstate/resource.rb index eb173f3..7ad6a4b 100644 --- a/lib/passwordstate/resource.rb +++ b/lib/passwordstate/resource.rb @@ -44,10 +44,15 @@ module Passwordstate end def self.get(client, object, query = {}) + object = object.send(object.class.send(index_field)) if object.is_a? Resource + + if query[:_bare] + return new _client: client, index_field => object + end + path = query.fetch(:_api_path, api_path) query = passwordstateify_hash query.reject { |k| k.to_s.start_with? '_' } - object = object.send(object.class.send(index_field)) if object.is_a? Resource resp = client.request(:get, "#{path}/#{object}", query: query).map do |data| new data.merge(_client: client) end -- GitLab