Class: GraphStarter::View

Inherits:
Object
  • Object
show all
Includes:
Neo4j::ActiveRel
Defined in:
app/models/graph_starter/view.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.record_view(session, target, properties = {}) ⇒ Object



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"

Instance Method Details

#increment_destination_view_countObject



28
29
30
31
32
# File 'app/models/graph_starter/view.rb', line 28

def increment_destination_view_count
  to_node.view_count ||= 0
  to_node.view_count += 1
  to_node.save
end

#set_viewed_atObject



22
23
24
# File 'app/models/graph_starter/view.rb', line 22

def set_viewed_at
  self.viewed_at ||= Time.now
end