jam-cloud/ruby/lib/jam_ruby/models/user_presence.rb

25 lines
1.0 KiB
Ruby

module JamRuby
class UserPresence < ActiveRecord::Base
attr_accessible :user_id, :type, :username
belongs_to :user, :class_name => "JamRuby::User", :foreign_key => "user_id"
validates :type, presence:true, length: {maximum: 100}
validates :username, presence:true, length: {maximum: 100}
def self.index(options = {})
raise JamArgumentError, "The user is not specified." if options[:id].blank?
UserPresence.where("user_id = ?", options[:id])
end
def self.save(current_user, options = {})
raise PermissionError, "You do not have permission to perform this operation" if current_user.nil? || options[:user_id] != current_user.id
UserPresence.create(:user => current_user, :type => options[:type], :username => options[:username])
end
def self.destroy(current_user, options = {})
raise PermissionError, "You do not have permission to perform this operation" if current_user.nil? || options[:user_id] != current_user.id
UserPresence.destroy_all("id = ?", options[:id])
end
end
end