lib/magent/channel.rb in magent-0.1.2 vs lib/magent/channel.rb in magent-0.1.3

- old
+ new

@@ -6,14 +6,32 @@ def failed(info) error_collection.save(info.merge({:channel_id => @name, :created_at => Time.now.utc})) end + def error_count + error_collection.find({:channel_id => @name}).count() + end + def errors(conds = {}) page = conds.delete(:page) || 1 per_page = conds.delete(:per_page) || 10 - error_collection.find({:channel_id => @name}, {:offset => (page-1)*per_page, :limit => per_page, :sort => ["created_at"]}) + error_collection.find({:channel_id => @name}, {:skip => (page-1)*per_page, :limit => per_page, :sort => [["created_at", "descending"]]}) + end + + def remove_error(error_id) + object_id = error_id + if error_id.kind_of?(String) + object_id = Mongo::ObjectID.from_string(error_id) + end + + self.error_collection.remove(:_id => object_id, :channel_id => @name) + end + + def retry_error(error) + remove_error(error["_id"]) + enqueue(error["method"], error["payload"]) end def error_collection @error_collection ||= Magent.database.collection("errors") end