Sha256: 4dfb506703d7b39652d6ac85920869fabc702e19170e5b01f52c28fcc2b6169f
Contents?: true
Size: 1.83 KB
Versions: 3
Compression:
Stored size: 1.83 KB
Contents
module Stream class CollectionsClient < Client def add(collection_name, collection_data, id: nil, user_id: nil) data = { id: id, user_id: user_id, data: collection_data, } uri = "/collections/#{collection_name}/" make_collection_request(:post, {}, data, :endpoint => uri) end def get(collection_name, id) uri = "collections/#{collection_name}/#{id}/" make_collection_request(:get, {}, {}, :endpoint => uri) end def update(collection_name, id, data: nil) data = { data: data } uri = "collections/#{collection_name}/#{id}/" make_collection_request(:put, {}, data, :endpoint => uri) end def delete(collection_name, id) uri = "collections/#{collection_name}/#{id}/" make_collection_request(:delete, {}, {}, :endpoint => uri) end def upsert(collection, objects = []) data = { data: { collection => objects } } make_collection_request(:post, {}, data) end def select(collection, ids = []) params = { foreign_ids: ids.map { |id| "#{collection}:#{id}" }.join(',') } make_collection_request(:get, params, {}) end def delete_many(collection, ids = []) params = { collection_name: collection, ids: ids.join(',') } make_collection_request(:delete, params, {}) end def create_reference(collection, id) _id = id if id.respond_to?(:keys) and !id["id"].nil? _id = id["id"] end "SO:#{collection}:#{_id}" end private def make_collection_request(method, params, data, endpoint: '/collections/') auth_token = Stream::Signer.create_jwt_token('collections', '*', @api_secret, '*', '*') make_request(method, endpoint, auth_token, params, data) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
stream-ruby-3.1.0 | lib/stream/collections.rb |
stream-ruby-3.0.1 | lib/stream/collections.rb |
stream-ruby-3.0.0 | lib/stream/collections.rb |