class Ocman::Share

Public Class Methods

new(path) click to toggle source
# File lib/ocman/share.rb, line 9
def initialize(path)
  @path = path
end

Public Instance Methods

delete_share(user) click to toggle source
# File lib/ocman/share.rb, line 27
def delete_share(user)
  share = find_share(user)
  return if share.nil?

  request = RestClient::Request.new(connection_params('delete', id: share.id))
  parse_result(request.execute)
end
find_share(user) click to toggle source
# File lib/ocman/share.rb, line 35
def find_share(user)
  Array(share_info.data).find do |share|
    share.share_with == user
  end
end
share(user, permission = Permission.all) click to toggle source
# File lib/ocman/share.rb, line 13
def share(user, permission = Permission.all)
  request_parameter = {
    payload: {
      path: @path,
      shareWith: user,
      shareType: '0',
      permissions: permission.to_i
    }
  }.merge connection_params('post')

  request = RestClient::Request.new(request_parameter)
  parse_result(request.execute)
end
share_info() click to toggle source
# File lib/ocman/share.rb, line 41
def share_info
  request = RestClient::Request.new(connection_params('get', path: @path))
  parse_result(request.execute)
end

Private Instance Methods

connection_headers(attributes = {}) click to toggle source
# File lib/ocman/share.rb, line 62
def connection_headers(attributes = {})
  {
    'OCS-APIRequest' => true,
    params: {
      path: attributes[:path],
      format: 'json'
    }.compact
  }
end
connection_params(http_method, attributes = {}) click to toggle source
# File lib/ocman/share.rb, line 52
def connection_params(http_method, attributes = {})
  {
    url: share_url(attributes[:id]),
    method: http_method,
    user: Ocman.configuration.user_name,
    password: Ocman.configuration.password,
    headers: connection_headers(attributes)
  }
end
parse_result(response) click to toggle source
# File lib/ocman/share.rb, line 48
def parse_result(response)
  Hashie::Mash.new(MultiJson.load(response)['ocs'])
end
share_url(id = nil) click to toggle source
# File lib/ocman/share.rb, line 72
def share_url(id = nil)
  "#{Ocman.configuration.base_url}/ocs/v1.php/apps/files_sharing/api/v1/shares#{"/#{id}" if id}"
end