@@ -4,25 +4,41 @@ module EventFactory
44 class << self
55 # Creates and returns an event from the dequeued message from the events SQS queue.
66 def create_from_sqs ( message )
7- now = Time . now . utc
8-
97 Event . new (
108 uuid : message [ "uuid" ] || SecureRandom . uuid ,
119 subj_id : DoiUtilities . normalize_doi ( message [ "subjId" ] ) || message [ "subjId" ] ,
1210 obj_id : DoiUtilities . normalize_doi ( message [ "objId" ] ) || message [ "objId" ] ,
1311 source_id : message [ "sourceId" ] ,
1412 aasm_state : "waiting" ,
1513 source_token : message [ "sourceToken" ] ,
16- created_at : now ,
17- updated_at : now ,
1814 total : message [ "total" ] || 1 ,
19- occurred_at : message [ "occurred_at" ] || now ,
15+ occurred_at : message [ "occurred_at" ] || Time . now . utc ,
2016 message_action : "create" ,
2117 relation_type_id : message [ "relation_type_id" ] || "references" ,
2218 subj : message [ "subj" ] . to_json ,
2319 obj : message [ "obj" ] . to_json ,
2420 license : message [ "license" ] || "https://creativecommons.org/publicdomain/zero/1.0/" ,
2521 )
2622 end
23+
24+ def update_from_sqs ( event , message )
25+ event . uuid = message [ "uuid" ] if message [ "uuid" ] . present?
26+ event . source_id = message [ "sourceId" ] if message [ "sourceId" ] . present?
27+ event . source_token = message [ "sourceToken" ] if message [ "sourceToken" ] . present?
28+ event . total = message [ "total" ] if message [ "total" ] . present?
29+ event . occurred_at = message [ "occurred_at" ] if message [ "occurred_at" ] . present?
30+ event . relation_type_id = message [ "relation_type_id" ] if message [ "relation_type_id" ] . present?
31+ event . subj = message [ "subj" ] . to_json if message [ "subj" ] . present?
32+ event . obj = message [ "obj" ] . to_json if message [ "obj" ] . present?
33+ event . license = message [ "license" ] if message [ "license" ] . present?
34+
35+ if message [ "subj_id" ] . present?
36+ event . subj_id = DoiUtilities . normalize_doi ( message [ "subjId" ] ) || message [ "subjId" ]
37+ end
38+
39+ if [ "obj_id" ] . present?
40+ event . obj_id = DoiUtilities . normalize_doi ( message [ "objId" ] ) || message [ "objId" ]
41+ end
42+ end
2743 end
2844end
0 commit comments