diff --git a/app/models/complaint.rb b/app/models/complaint.rb index b87bc2abf9ee70470efcbc804fd1fd19c5b94346..bdb9d8939b4fec87022e0165ce624e415aeb957d 100644 --- a/app/models/complaint.rb +++ b/app/models/complaint.rb @@ -2,8 +2,12 @@ class Complaint include ActiveModel::Model include OrientDbSerializable - attr_accessor :user, :object, :message, :description - validates_presence_of :user, :object, :message + attr_accessor :user, :object, :message, :description, :created_at + validates_presence_of :user, :object, :message, :created_at + + def initialize(params={}) + super(params.merge(defaults)) + end def self.copyrights ComplaintMessage.new("Objeto viola direitos autorais") @@ -22,6 +26,19 @@ class Complaint end def to_orientdb_hash - super.merge("user" => @user.rid, "object" => @object.id, "message" => @message.to_s) + super.merge("message" => @message.to_s) + end + + private + + def excluded_orientdb_properties + ['user', 'object', '@class'] + end + + def defaults + { + created_at: DateTime.now.strftime("%Y-%m-%d %H:%M:%S") + } end + end diff --git a/test/models/complaint_test.rb b/test/models/complaint_test.rb index 7c4d13ca6cc7f80b151a8982ead6ab27a39337e4..02a3bb18a66da317ecefcd4b2db5dd8cc9278388 100644 --- a/test/models/complaint_test.rb +++ b/test/models/complaint_test.rb @@ -10,10 +10,11 @@ class ComplaintTest < ActiveSupport::TestCase user: User.new(rid: '#14:15'), object: LearningObject.new(id: '#16:43'), message: Complaint.copyrights, - description: 'teste' + description: 'teste', + created_at: DateTime.now.strftime("%Y-%m-%d %H:%M:%S") ) - expected_hash = {"@class" => "Complaint", "user" => complaint.user.rid, "object" => complaint.object.id, "description" => complaint.description, "message" => complaint.message.to_s} + expected_hash = {"created_at" => complaint.created_at.to_s, "description" => complaint.description, "message" => complaint.message.to_s} assert_equal(expected_hash, complaint.to_orientdb_hash) end