Class: SlingFile::FileManager
- Inherits:
-
Object
- Object
- SlingFile::FileManager
- Defined in:
- lib/nakamura/file.rb
Instance Method Summary collapse
- #createlink(url, linkUid, siteUuid) ⇒ Object
- #createTag(tagName, url, props = {}) ⇒ Object
-
#get_members(id) ⇒ Object
Members.
-
#initialize(sling) ⇒ FileManager
constructor
A new instance of FileManager.
- #manage_members(id, add_viewers, delete_viewers, add_managers, delete_managers, add_editors = nil, delete_editors = nil) ⇒ Object
-
#search_my_managed(q) ⇒ Object
Search templates.
- #search_my_viewed(q) ⇒ Object
- #tag(url, tagUuid) ⇒ Object
- #upload_pooled_file(name, data, content_type, toid = nil) ⇒ Object
- #url_for_pooled_file(id) ⇒ Object
Constructor Details
#initialize(sling) ⇒ FileManager
Returns a new instance of FileManager.
9 10 11 |
# File 'lib/nakamura/file.rb', line 9 def initialize(sling) @sling = sling end |
Instance Method Details
#createlink(url, linkUid, siteUuid) ⇒ Object
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/nakamura/file.rb', line 13 def createlink(url, linkUid, siteUuid) props = { ":operation" => "link", "link" => linkUid } if (siteUuid != nil) props.update("site" => siteUuid) end return @sling.execute_post(@sling.url_for(url), props) end |
#createTag(tagName, url, props = {}) ⇒ Object
24 25 26 27 28 |
# File 'lib/nakamura/file.rb', line 24 def createTag(tagName, url, props = {}) props.update("sling:resourceType" => "sakai/tag") props.update("sakai:tag-name" => tagName) return @sling.execute_post(@sling.url_for(url), props) end |
#get_members(id) ⇒ Object
Members
51 52 53 54 |
# File 'lib/nakamura/file.rb', line 51 def get_members(id) path = "#{url_for_pooled_file(id)}.members.json" return @sling.execute_get(path) end |
#manage_members(id, add_viewers, delete_viewers, add_managers, delete_managers, add_editors = nil, delete_editors = nil) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/nakamura/file.rb', line 56 def manage_members(id, add_viewers, delete_viewers, add_managers, delete_managers, add_editors=nil, delete_editors=nil) path = "#{url_for_pooled_file(id)}.members.html" params = {} params[":viewer"] ||= add_viewers params[":viewer@Delete"] ||= delete_viewers params[":manager"] ||= add_managers params[":manager@Delete"] ||= delete_managers if add_editors != nil params[":editor"] ||= add_editors end if delete_editors != nil params[":editor@Delete"] ||= delete_editors end return @sling.execute_post(path, params) end |
#search_my_managed(q) ⇒ Object
Search templates
74 75 76 |
# File 'lib/nakamura/file.rb', line 74 def search_my_managed(q) return @sling.execute_get(@sling.url_for("/var/search/pool/me/manager.json?q=#{q}")) end |
#search_my_viewed(q) ⇒ Object
78 79 80 |
# File 'lib/nakamura/file.rb', line 78 def search_my_viewed(q) return @sling.execute_get(@sling.url_for("/var/search/pool/me/viewer.json?q=#{q}")) end |
#tag(url, tagUuid) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/nakamura/file.rb', line 30 def tag(url, tagUuid) props = { ":operation" => "tag", "key" => tagUuid } return @sling.execute_post(@sling.url_for(url), props) end |
#upload_pooled_file(name, data, content_type, toid = nil) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/nakamura/file.rb', line 38 def upload_pooled_file(name, data, content_type, toid=nil) if ( toid == nil ) return @sling.execute_file_post(@sling.url_for("/system/pool/createfile"), name, name, data, content_type) else return @sling.execute_file_post(@sling.url_for("/system/pool/createfile.#{toid}"), name, name, data, content_type) end end |
#url_for_pooled_file(id) ⇒ Object
46 47 48 |
# File 'lib/nakamura/file.rb', line 46 def url_for_pooled_file(id) return @sling.url_for("/p/#{id}") end |