class Egnyte::Link

Attributes

accessibility[RW]
add_filename[RW]
copy_me[RW]
creation_date[RW]
expiry_clicks[RW]
expiry_date[RW]
id[R]
messages[RW]
notify[RW]
path[RW]
recipients[RW]
send_email[RW]
type[RW]

Public Class Methods

all(session) click to toggle source
# File lib/egnyte/link.rb, line 40
def self.all(session)
  self.where(session)
end
create(session, params) click to toggle source
# File lib/egnyte/link.rb, line 44
def self.create(session, params)
  link = self.new(session, params)
  link.save
end
delete(session, id) click to toggle source
# File lib/egnyte/link.rb, line 75
def self.delete(session, id)
  session.delete("#{self.link_path(session)}/#{id}", return_parsed_response=false)
end
find(session, id) click to toggle source
# File lib/egnyte/link.rb, line 49
def self.find(session, id)
  response = session.get("#{self.link_path(session)}/#{id}", return_parsed_response=true)
  self.new(session, response)
end
new(session, params) click to toggle source
# File lib/egnyte/link.rb, line 33
def initialize(session, params)
  @session = session
  params.each do |k,v|
    instance_variable_set("@#{k}", v)
  end
end
where(session, params=nil) click to toggle source
# File lib/egnyte/link.rb, line 54
def self.where(session, params=nil)
  url = self.link_path(session)
  url += Egnyte::Helper.params_to_s(params) if params
  parsed_body = session.get(url)
  parsed_body["ids"].nil? ? [] : parsed_body["ids"]
end

Public Instance Methods

delete() click to toggle source
# File lib/egnyte/link.rb, line 71
def delete
  Egnyte::Link.delete(@session, @id)
end
missing_attributes() click to toggle source
# File lib/egnyte/link.rb, line 83
def missing_attributes
  missing = @@required_attributes.collect do |param|
    param unless instance_variable_get("@#{param}")
  end
  missing.compact
end
save() click to toggle source
# File lib/egnyte/link.rb, line 61
def save
  raise Egnyte::MissingAttribute.new(missing_attributes) unless valid?
  response = @session.post(link_path, to_json, return_parsed_response=true)
  link = Egnyte::Link.find(@session, response['links'].first['id'])
  link.instance_variables.each do |ivar|
    instance_variable_set(ivar, link.instance_variable_get(ivar))
  end
  self
end
to_json() click to toggle source
# File lib/egnyte/link.rb, line 90
def to_json
  hash = {}
  instance_variables.each do |iv|
    next if [:@session, :@client].include? iv
    next if instance_variable_get(iv) == nil
    hash[iv.to_s[1..-1]] = instance_variable_get(iv)
  end
  hash.to_json
end
valid?() click to toggle source
# File lib/egnyte/link.rb, line 79
def valid?
  return missing_attributes.size < 1
end