lib/sklik-api/sklik_object.rb in sklik-api-0.0.14 vs lib/sklik-api/sklik_object.rb in sklik-api-0.0.15
- old
+ new
@@ -1,19 +1,19 @@
# -*- encoding : utf-8 -*-
class SklikApi
module Object
- def self.included(base)
- base.send :extend, ClassMethods
- base.send :include, InstanceMethods
+ def self.included(base)
+ base.send :extend, ClassMethods
+ base.send :include, InstanceMethods
end
-
+
module ClassMethods
-
+
def connection
SklikApi::Connection.connection
end
-
+
def find name, id = nil
if id
args = ["list#{name.pluralize.camelize}", id]
else
args = ["list#{name.pluralize.camelize}"]
@@ -21,11 +21,11 @@
return connection.call(*args) { |param|
#return list of all objects
param[name.pluralize.to_sym].collect{|c| c.symbolize_keys }
}
end
- end
+ end
module InstanceMethods
#get connection for request
def connection
SklikApi::Connection.connection
@@ -37,26 +37,26 @@
end
def args
@args
end
-
+
def restore
- begin
- connection.call("#{self.class::NAME}.restore", @args[:campaign_id] ) { |param| true }
+ begin
+ connection.call("#{self.class::NAME}.restore", @args["#{self.class.to_s.downcase.split(":").last}_id".to_sym] ) { |param| true }
rescue Exception => e
- # if there is a problem but returned Not removed
+ # if there is a problem but returned Not removed
# return true, becasue it says it is restored
- return true if e.message == "Rescuing from request by: ArgumentError - There is error from sklik campaign.restore: Not removed"
+ return true if e.message == "Rescuing from request by: ArgumentError - There is error from sklik #{self.class.to_s.downcase}.restore: Not removed"
raise e
end
end
-
+
def remove
- connection.call("#{self.class::NAME}.remove", @args[:campaign_id] ) { |param| true }
+ connection.call("#{self.class::NAME}.remove", @args["#{self.class.to_s.downcase.split(":").last}_id".to_sym] ) { |param| true }
end
-
+
def create
out = connection.call("#{self.class::NAME}.create", *create_args ) { |param|
param["#{self.class::NAME}Id".to_sym]
}
@args["#{self.class.to_s.downcase.split(":").last}_id".to_sym] = out
@@ -68,20 +68,20 @@
end
def stats
@stats ||= {}
end
-
+
def get_stats from, to
@stats ||= connection.call("#{self.class::NAME}.stats", @args["#{self.class.name.to_s.split("::").last.underscore}_id".to_sym], from, to ) { |param|
{:fulltext => underscore_hash_keys(param[:fulltext]), :context => underscore_hash_keys(param[:context]) }
}
end
-
+
def update_object
out = connection.call("#{self.class::NAME}.setAttributes", *update_args ) { |param| true }
end
-
+
def create_args
raise(NoMethodError, "Please implement 'create_args' method in class: #{self.class} - should return array which will be placed into create method")
end
def update_args