Class: NetworkMakerWorker

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::Worker
Defined in:
app/workers/network_maker_worker.rb

Instance Method Summary collapse

Instance Method Details

#performObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'app/workers/network_maker_worker.rb', line 8

def perform
  @G = Graph.new('JOGL database directed graph', 'DiGraph', directed = true,  = { created_at: Time.now })

  # Creating all the nodes

  Skill.all.each do |skill|
    @G.add_node(skill,
                skill.skill_name)
  end

  Ressource.all.each do |ressource|
    @G.add_node(ressource,
                ressource.ressource_name)
  end

  Interest.all.each do |interest|
    @G.add_node(interest,
                interest.interest_name)
  end

  User.all.each do |user|
    @G.add_node(user,
                user.nickname,
                 = {
                  first_name: user.first_name,
                  last_name: user.last_name,
                  status: user.active_status,
                  created_at: user.created_at,
                  updated_at: user.updated_at
                })
  end

  Post.all.each do |post|
    @G.add_node(post,
                post.id,
                 = { created_at: post.created_at, updated_at: post.updated_at })
  end

  Comment.all.each do |comment|
    @G.add_node(comment,
                comment.id,
                 = { created_at: comment.created_at, updated_at: comment.updated_at })
  end

  Need.all.each do |need|
    @G.add_node(need,
                need.title,
                 = { created_at: need.created_at,
                             updated_at: need.updated_at })
  end

  Project.all.each do |project|
    @G.add_node(project,
                project.title,
                 = {
                  short_title: project.short_title,
                  short_description: project.short_description,
                  status: project.status,
                  created_at: project.created_at,
                  updated_at: project.updated_at
                })
  end

  Workgroup.all.each do |workgroup|
    @G.add_node(workgroup,
                workgroup.title,
                 = {
                  short_title: workgroup.short_title,
                  short_description: workgroup.short_description,
                  status: workgroup.status,
                  created_at: workgroup.created_at,
                  updated_at: workgroup.updated_at
                })
  end

  Challenge.all.each do |challenge|
    @G.add_node(challenge,
                challenge.title,
                 = {
                  short_title: challenge.short_title,
                  short_description: challenge.short_description,
                  status: challenge.status,
                  created_at: challenge.created_at,
                  updated_at: challenge.updated_at
                })
  end

  Program.all.each do |program|
    @G.add_node(program,
                program.title,
                 = {
                  short_title: program.short_title,
                  short_description: program.short_description,
                  status: program.status,
                  created_at: program.created_at,
                  updated_at: program.updated_at
                })
  end

  RecsysDatum.all.each do |edge|
    source = edge.sourceable_node
    target = edge.targetable_node
    next if source.nil? || target.nil?

    @G.add_edge(source, target, edge.relation_type, true,  = {
                  created_at: edge.created_at,
                  updated_at: edge.updated_at,
                  value: edge.value
                })
  end

  # @G.render
  network = Network.create(json_network: @G.render)
  network.save!
end