34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'app/models/graph_starter/view.rb', line 34
def self.record_view(session, target, properties = {})
test_view = new(properties.merge(from_node: session, to_node: target))
return test_view.errors if !test_view.valid?
query = " MATCH (session), (target)\n WHERE ID(session) = {session_id} AND ID(target) = {target_id}\n MERGE (session)-[view_rel:VIEWED]->(target)\n ON CREATE SET\n view_rel.created_at = {timestamp},\n view_rel.count = 0\n SET\n view_rel.browser_string = {browser_string},\n view_rel.ip_address = {ip_address},\n view_rel.viewed_at = {viewed_at},\n view_rel.updated_at = {timestamp},\n view_rel.count = view_rel.count + 1\n CYPHER\n\n Neo4j::Session.current.query(query,\n session_id: session.neo_id,\n target_id: target.neo_id,\n browser_string: properties[:browser_string],\n ip_address: properties[:ip_address],\n viewed_at: Time.now,\n timestamp: Time.now.to_i)\n\nend\n"
|