Class: SlingFile::FileManager

Inherits:
Object
  • Object
show all
Defined in:
lib/nakamura/file.rb

Instance Method Summary collapse

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



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