module KayakoClient::CommentObject

Constants

CREATOR_STAFF
CREATOR_USER
STATUS_APPROVED
STATUS_PENDING
STATUS_SPAM

Public Class Methods

included(base) click to toggle source
# File lib/kayako_client/mixins/comment_object.rb, line 30
def self.included(base)
    base.extend(ClassMethods)
    base.class_eval do

        supports :all, :get, :post, :delete

        property :id,                :integer, :readonly => true
        property :creator_type,      :integer, :required => :post, :range => 1..2
        property :creator_id,        :integer
        property :full_name,         :string
        property :email,             :string
        property :ip_address,        :string,  :readonly => true
        property :date_line,         :date,    :readonly => true
        property :parent_comment_id, :integer
        property :comment_status,    :integer, :range => 1..3
        property :user_agent,        :string,  :readonly => true
        property :referrer,          :string,  :readonly => true
        property :parent_url,        :string,  :readonly => true
        property :contents,          :string,  :required => :post

        associate :parent_comment,   :parent_comment_id, base

    end
end

Public Instance Methods

creator=(creator) click to toggle source
# File lib/kayako_client/mixins/comment_object.rb, line 55
def creator=(creator)
    if creator.is_a?(Staff)
        self.creator_type = self.class::CREATOR_STAFF
        self.creator_id = creator.id
        self.full_name = creator.full_name
        self.email = creator.email
    elsif creator.is_a?(User)
        self.creator_type = self.class::CREATOR_USER
        self.creator_id = creator.id
        self.full_name = creator.full_name
        self.email = creator.emails.first
    else
        raise ArgumentError, "creator must be a User or Staff"
    end
end
has_parent_comment?() click to toggle source
# File lib/kayako_client/mixins/comment_object.rb, line 71
def has_parent_comment?
    !parent_comment_id.nil? && parent_comment_id > 0
end
Also aliased as: is_reply?
is_reply?()
Alias for: has_parent_comment?

Private Instance Methods

validate(method, params) click to toggle source
# File lib/kayako_client/mixins/comment_object.rb, line 91
def validate(method, params)
    if method == :post
        if params[:creator_type] == self.class::CREATOR_STAFF
            raise ArgumentError, ":creator_id is required for staff" unless params[:creator_id]
        elsif params[:creator_type] == self.class::CREATOR_USER
            raise ArgumentError, ":full_name is required for user" unless params[:full_name]
        end
    end
end