Class: ResourceSpace::Collection
- Inherits:
-
Object
- Object
- ResourceSpace::Collection
- Defined in:
- lib/resourcespace/collection.rb
Overview
Collection management interface for ResourceSpace API
Instance Attribute Summary collapse
-
#client ⇒ Client
readonly
The ResourceSpace client.
Instance Method Summary collapse
-
#add_resource_to_collection(resource_id, collection_id) ⇒ Hash
Add a resource to a collection.
-
#add_resources_to_collection(resource_ids, collection_id) ⇒ Array
Add multiple resources to a collection.
-
#create_collection(name, public: false, allow_changes: true) ⇒ Hash
Create a new collection.
-
#create_web_asset_collection(name, asset_type: nil, public: false) ⇒ Hash
Create a collection for web assets.
-
#delete_collection(collection_id) ⇒ Hash
Delete a collection.
-
#delete_resources_in_collection(collection_id) ⇒ Hash
Delete all resources in a collection.
-
#get_collection(collection_id) ⇒ Hash
Get collection details.
-
#get_featured_collections ⇒ Array
Get featured collections.
-
#get_user_collections(user = nil) ⇒ Array
Get user collections.
-
#get_web_asset_collections(asset_type: nil) ⇒ Array
Get collections containing web assets.
-
#initialize(client) ⇒ Collection
constructor
Initialize the collection interface.
-
#remove_resource_from_collection(resource_id, collection_id) ⇒ Hash
Remove a resource from a collection.
-
#remove_resources_from_collection(resource_ids, collection_id) ⇒ Array
Remove multiple resources from a collection.
-
#save_collection(collection_id, name: nil, public: nil, allow_changes: nil) ⇒ Hash
Save collection (update collection details).
-
#search_public_collections(search_term) ⇒ Array
Search public collections.
-
#send_collection_to_admin(collection_id, message = "") ⇒ Hash
Send collection to admin.
-
#show_hide_collection(collection_id, show: true) ⇒ Hash
Show or hide a collection.
Constructor Details
#initialize(client) ⇒ Collection
Initialize the collection interface
24 25 26 |
# File 'lib/resourcespace/collection.rb', line 24 def initialize(client) @client = client end |
Instance Attribute Details
#client ⇒ Client (readonly)
Returns the ResourceSpace client.
19 20 21 |
# File 'lib/resourcespace/collection.rb', line 19 def client @client end |
Instance Method Details
#add_resource_to_collection(resource_id, collection_id) ⇒ Hash
Add a resource to a collection
92 93 94 95 96 97 |
# File 'lib/resourcespace/collection.rb', line 92 def add_resource_to_collection(resource_id, collection_id) client.post("add_resource_to_collection", { param1: resource_id.to_s, param2: collection_id.to_s }) end |
#add_resources_to_collection(resource_ids, collection_id) ⇒ Array
Add multiple resources to a collection
163 164 165 166 167 |
# File 'lib/resourcespace/collection.rb', line 163 def add_resources_to_collection(resource_ids, collection_id) Array(resource_ids).map do |resource_id| add_resource_to_collection(resource_id, collection_id) end end |
#create_collection(name, public: false, allow_changes: true) ⇒ Hash
Create a new collection
45 46 47 48 49 50 51 52 53 |
# File 'lib/resourcespace/collection.rb', line 45 def create_collection(name, public: false, allow_changes: true) params = { param1: name, param2: public ? "1" : "0" } params[:param3] = allow_changes ? "1" : "0" client.post("create_collection", params) end |
#create_web_asset_collection(name, asset_type: nil, public: false) ⇒ Hash
Create a collection for web assets
186 187 188 189 |
# File 'lib/resourcespace/collection.rb', line 186 def create_web_asset_collection(name, asset_type: nil, public: false) collection_name = asset_type ? "#{name} - #{asset_type.capitalize}" : name create_collection(collection_name, public: public) end |
#delete_collection(collection_id) ⇒ Hash
Delete a collection
59 60 61 |
# File 'lib/resourcespace/collection.rb', line 59 def delete_collection(collection_id) client.post("delete_collection", { param1: collection_id.to_s }) end |
#delete_resources_in_collection(collection_id) ⇒ Hash
Delete all resources in a collection
154 155 156 |
# File 'lib/resourcespace/collection.rb', line 154 def delete_resources_in_collection(collection_id) client.post("delete_resources_in_collection", { param1: collection_id.to_s }) end |
#get_collection(collection_id) ⇒ Hash
Get collection details
67 68 69 |
# File 'lib/resourcespace/collection.rb', line 67 def get_collection(collection_id) client.get("get_collection", { param1: collection_id.to_s }) end |
#get_featured_collections ⇒ Array
Get featured collections
146 147 148 |
# File 'lib/resourcespace/collection.rb', line 146 def get_featured_collections client.get("get_featured_collections") end |
#get_user_collections(user = nil) ⇒ Array
Get user collections
32 33 34 35 36 37 |
# File 'lib/resourcespace/collection.rb', line 32 def get_user_collections(user = nil) params = {} params[:param1] = user if user client.get("get_user_collections", params) end |
#get_web_asset_collections(asset_type: nil) ⇒ Array
Get collections containing web assets
195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 |
# File 'lib/resourcespace/collection.rb', line 195 def get_web_asset_collections(asset_type: nil) collections = get_user_collections # Filter collections that likely contain web assets based on name web_asset_keywords = %w[web asset css js javascript image icon font stylesheet] if asset_type web_asset_keywords << asset_type.downcase end collections.select do |collection| name = collection["name"]&.downcase || "" web_asset_keywords.any? { |keyword| name.include?(keyword) } end end |
#remove_resource_from_collection(resource_id, collection_id) ⇒ Hash
Remove a resource from a collection
104 105 106 107 108 109 |
# File 'lib/resourcespace/collection.rb', line 104 def remove_resource_from_collection(resource_id, collection_id) client.post("remove_resource_from_collection", { param1: resource_id.to_s, param2: collection_id.to_s }) end |
#remove_resources_from_collection(resource_ids, collection_id) ⇒ Array
Remove multiple resources from a collection
174 175 176 177 178 |
# File 'lib/resourcespace/collection.rb', line 174 def remove_resources_from_collection(resource_ids, collection_id) Array(resource_ids).map do |resource_id| remove_resource_from_collection(resource_id, collection_id) end end |
#save_collection(collection_id, name: nil, public: nil, allow_changes: nil) ⇒ Hash
Save collection (update collection details)
78 79 80 81 82 83 84 85 |
# File 'lib/resourcespace/collection.rb', line 78 def save_collection(collection_id, name: nil, public: nil, allow_changes: nil) params = { param1: collection_id.to_s } params[:param2] = name if name params[:param3] = public ? "1" : "0" unless public.nil? params[:param4] = allow_changes ? "1" : "0" unless allow_changes.nil? client.post("save_collection", params) end |
#search_public_collections(search_term) ⇒ Array
Search public collections
139 140 141 |
# File 'lib/resourcespace/collection.rb', line 139 def search_public_collections(search_term) client.get("search_public_collections", { param1: search_term }) end |
#send_collection_to_admin(collection_id, message = "") ⇒ Hash
Send collection to admin
128 129 130 131 132 133 |
# File 'lib/resourcespace/collection.rb', line 128 def send_collection_to_admin(collection_id, = "") client.post("send_collection_to_admin", { param1: collection_id.to_s, param2: }) end |
#show_hide_collection(collection_id, show: true) ⇒ Hash
Show or hide a collection
116 117 118 119 120 121 |
# File 'lib/resourcespace/collection.rb', line 116 def show_hide_collection(collection_id, show: true) client.post("show_hide_collection", { param1: collection_id.to_s, param2: show ? "1" : "0" }) end |