lib/ruby-box/item.rb in ruby-box-1.4.0 vs lib/ruby-box/item.rb in ruby-box-1.5.0
- old
+ new
@@ -80,9 +80,37 @@
else
return @raw_item[key]
end
end
+ # see http://developers.box.com/docs/#folders-create-a-shared-link-for-a-folder
+ # for a list of valid options.
+ def create_shared_link(opts={})
+ raise UnshareableResource unless ['folder', 'file'].include?(type)
+
+ opts = {
+ access: 'open'
+ }.merge(opts) if opts
+
+ url = "#{RubyBox::API_URL}/#{resource_name}/#{id}"
+ uri = URI.parse(url)
+
+ request = Net::HTTP::Put.new(uri.path, {
+ "Content-Type" => 'application/json'
+ })
+
+ request.body = JSON.dump({
+ shared_link: opts
+ })
+
+ @raw_item = @session.request(uri, request)
+ self
+ end
+
+ def disable_shared_link(opts={})
+ create_shared_link(nil)
+ end
+
protected
def self.factory(session, entry)
type = entry['type'] ? entry['type'].capitalize.to_sym : nil
if RubyBox.constants.include? type