| rev | 
   line source | 
| 
bsw/jbe@1309
 | 
     1 function _G.ontomap_get_instances(event)
 | 
| 
bsw/jbe@1309
 | 
     2   if true then return {} end 
 | 
| 
bsw/jbe@1309
 | 
     3   local url = config.ontomap.base_url .. "instances/Issue?geometries=true&descriptions=true"
 | 
| 
bsw/jbe@1309
 | 
     4   print("OnToMap>>")
 | 
| 
bsw/jbe@1309
 | 
     5   
 | 
| 
bsw/jbe@1309
 | 
     6   local output, err, status = extos.pfilter(doc, "curl", "-X", "GET", "-H", "Content-Type: application/json", "--cert", config.ontomap.client_cert_file, "-d", "@-", url)
 | 
| 
bsw/jbe@1309
 | 
     7   print(output)
 | 
| 
bsw/jbe@1309
 | 
     8   
 | 
| 
bsw/jbe@1309
 | 
     9   local data = json.import(output)
 | 
| 
bsw/jbe@1309
 | 
    10   
 | 
| 
bsw/jbe@1309
 | 
    11   if not data then
 | 
| 
bsw/jbe@1309
 | 
    12     return {}
 | 
| 
bsw/jbe@1309
 | 
    13   end
 | 
| 
bsw/jbe@1309
 | 
    14 
 | 
| 
bsw/jbe@1309
 | 
    15   if data.type ~= "FeatureCollection" or not data.features then
 | 
| 
bsw/jbe@1309
 | 
    16     return {}
 | 
| 
bsw/jbe@1309
 | 
    17   end
 | 
| 
bsw/jbe@1309
 | 
    18   
 | 
| 
bsw/jbe@1309
 | 
    19   local instances = {}
 | 
| 
bsw/jbe@1309
 | 
    20   for i, feature in ipairs(data.features) do
 | 
| 
bsw/jbe@1309
 | 
    21     if feature.geometry then
 | 
| 
bsw/jbe@1309
 | 
    22       table.insert(instances, {
 | 
| 
bsw/jbe@1309
 | 
    23         application = feature.applicationName,
 | 
| 
bsw/jbe@1309
 | 
    24         title = feature.hasName,
 | 
| 
bsw/jbe@1309
 | 
    25         description = slot.use_temporary(function()
 | 
| 
bsw/jbe@1309
 | 
    26           ui.link{ external = feature.properties.external_url, text = feature.properties.hasName or "" }
 | 
| 
bsw/jbe@1309
 | 
    27           ui.container{ content = feature.hasDescription }
 | 
| 
bsw/jbe@1309
 | 
    28         end),
 | 
| 
bsw/jbe@1309
 | 
    29         lon = feature.geometry.coordinates[1],
 | 
| 
bsw/jbe@1309
 | 
    30         lat = feature.geometry.coordinates[2],
 | 
| 
bsw/jbe@1309
 | 
    31         label = "IMC" .. feature.properties.hasID,
 | 
| 
bsw/jbe@1309
 | 
    32         type = "Improve My City"
 | 
| 
bsw/jbe@1309
 | 
    33       })
 | 
| 
bsw/jbe@1309
 | 
    34       print(feature.applicationName, feature.properties.hasName, feature.properties.hasDescription)
 | 
| 
bsw/jbe@1309
 | 
    35     end
 | 
| 
bsw/jbe@1309
 | 
    36   end
 | 
| 
bsw/jbe@1309
 | 
    37   return instances
 | 
| 
bsw/jbe@1309
 | 
    38 
 | 
| 
bsw/jbe@1309
 | 
    39 end
 | 
| 
bsw/jbe@1309
 | 
    40 
 | 
| 
bsw/jbe@1309
 | 
    41 
 | 
| 
bsw/jbe@1309
 | 
    42 local function new_log_event(event, actor, activity_type)
 | 
| 
bsw/jbe@1309
 | 
    43   local e = json.object{
 | 
| 
bsw/jbe@1309
 | 
    44     activity_type = activity_type,
 | 
| 
bsw/jbe@1309
 | 
    45     activity_objects = json.array(),
 | 
| 
bsw/jbe@1309
 | 
    46     references = json.array(),
 | 
| 
bsw/jbe@1309
 | 
    47     visibility_details = json.array(),
 | 
| 
bsw/jbe@1309
 | 
    48     details = json.object()
 | 
| 
bsw/jbe@1309
 | 
    49   }
 | 
| 
bsw/jbe@1309
 | 
    50   e.actor = actor
 | 
| 
bsw/jbe@1309
 | 
    51   e.timestamp = math.floor(event.occurrence_epoch * 1000)
 | 
| 
bsw/jbe@1309
 | 
    52   return e
 | 
| 
bsw/jbe@1309
 | 
    53 end
 | 
| 
bsw/jbe@1309
 | 
    54 
 | 
| 
bsw/jbe@1309
 | 
    55 local function new_activity_object(attr)
 | 
| 
bsw/jbe@1309
 | 
    56   return json.object{
 | 
| 
bsw/jbe@1309
 | 
    57     type = "Feature",
 | 
| 
bsw/jbe@1309
 | 
    58     geometry = attr.geometry or json.null,
 | 
| 
bsw/jbe@1309
 | 
    59     properties = json.object{
 | 
| 
bsw/jbe@1309
 | 
    60       hasType = attr.type,
 | 
| 
bsw/jbe@1309
 | 
    61       external_url = attr.url
 | 
| 
bsw/jbe@1309
 | 
    62     }
 | 
| 
bsw/jbe@1309
 | 
    63   }
 | 
| 
bsw/jbe@1309
 | 
    64 end
 | 
| 
bsw/jbe@1309
 | 
    65 
 | 
| 
bsw@1519
 | 
    66 local function new_reference_object(url, application, type)
 | 
| 
bsw/jbe@1309
 | 
    67   return json.object{
 | 
| 
bsw/jbe@1309
 | 
    68     application = application or config.ontomap.application_ident,
 | 
| 
bsw@1519
 | 
    69     external_url = url,
 | 
| 
bsw@1519
 | 
    70     type = type
 | 
| 
bsw/jbe@1309
 | 
    71   }
 | 
| 
bsw/jbe@1309
 | 
    72 end
 | 
| 
bsw/jbe@1309
 | 
    73 
 | 
| 
bsw/jbe@1309
 | 
    74 local function log_to_ontomap(log_events)
 | 
| 
bsw/jbe@1309
 | 
    75   if json.type(log_events) == "object" then
 | 
| 
bsw/jbe@1309
 | 
    76     log_events = json.array{ log_events }
 | 
| 
bsw/jbe@1309
 | 
    77   end
 | 
| 
bsw/jbe@1309
 | 
    78   for i, log_event in ipairs(log_events) do
 | 
| 
bsw/jbe@1309
 | 
    79     if #(log_event.activity_objects) == 0 then
 | 
| 
bsw/jbe@1309
 | 
    80       log_event.activity_objects = nil
 | 
| 
bsw/jbe@1309
 | 
    81     end
 | 
| 
bsw/jbe@1309
 | 
    82     if #(log_event.references) == 0 then
 | 
| 
bsw/jbe@1309
 | 
    83       log_event.references = nil
 | 
| 
bsw/jbe@1309
 | 
    84     end
 | 
| 
bsw/jbe@1309
 | 
    85     if #(log_event.visibility_details) == 0 then
 | 
| 
bsw/jbe@1309
 | 
    86       log_event.visibility_details = nil
 | 
| 
bsw/jbe@1309
 | 
    87     end
 | 
| 
bsw/jbe@1309
 | 
    88     if not (next(log_event.details)) then -- TODO
 | 
| 
bsw/jbe@1309
 | 
    89       log_event.details = nil
 | 
| 
bsw/jbe@1309
 | 
    90     end
 | 
| 
bsw/jbe@1309
 | 
    91   end
 | 
| 
bsw/jbe@1309
 | 
    92 
 | 
| 
bsw/jbe@1309
 | 
    93   local doc = json.export(json.object{
 | 
| 
bsw/jbe@1309
 | 
    94     event_list = log_events
 | 
| 
bsw/jbe@1309
 | 
    95   }, "  ")
 | 
| 
bsw/jbe@1309
 | 
    96     
 | 
| 
bsw/jbe@1309
 | 
    97   local url = config.ontomap.base_url .. "logger/events"
 | 
| 
bsw/jbe@1309
 | 
    98   print("OnToMap<<")
 | 
| 
bsw/jbe@1309
 | 
    99   print(doc)
 | 
| 
bsw/jbe@1309
 | 
   100   
 | 
| 
bsw/jbe@1309
 | 
   101   local output, err, status = extos.pfilter(doc, "curl", "-X", "POST", "-H", "Content-Type: application/json", "--cert", config.ontomap.client_cert_file, "-d", "@-", url)
 | 
| 
bsw/jbe@1309
 | 
   102   
 | 
| 
bsw/jbe@1309
 | 
   103   print("---------")
 | 
| 
bsw/jbe@1309
 | 
   104   print(output)
 | 
| 
bsw/jbe@1309
 | 
   105   print("---------")
 | 
| 
bsw/jbe@1309
 | 
   106   
 | 
| 
bsw/jbe@1309
 | 
   107   if err then
 | 
| 
bsw/jbe@1309
 | 
   108     -- TODO log error
 | 
| 
bsw/jbe@1309
 | 
   109   end
 | 
| 
bsw/jbe@1309
 | 
   110 end
 | 
| 
bsw/jbe@1309
 | 
   111 
 | 
| 
bsw/jbe@1309
 | 
   112 local function url_for(relation, id)
 | 
| 
bsw/jbe@1309
 | 
   113   return config.absolute_base_url .. relation .. "/show/" .. id .. ".html"
 | 
| 
bsw/jbe@1309
 | 
   114 end
 | 
| 
bsw/jbe@1309
 | 
   115 
 | 
| 
bsw/jbe@1309
 | 
   116 
 | 
| 
bsw/jbe@1309
 | 
   117 local function unit_updated(event, event_type)
 | 
| 
bsw/jbe@1309
 | 
   118   local log_event = new_log_event(event, 0, event_type == "created" and "object_created" or "object_updated")
 | 
| 
bsw/jbe@1309
 | 
   119   table.insert(log_event.activity_objects, new_activity_object{
 | 
| 
bsw/jbe@1309
 | 
   120     type = "unit",
 | 
| 
bsw/jbe@1309
 | 
   121     url = url_for("unit", event.unit_id)
 | 
| 
bsw/jbe@1309
 | 
   122   })
 | 
| 
bsw/jbe@1309
 | 
   123   log_event.details.active = event.unit.active
 | 
| 
bsw/jbe@1309
 | 
   124   log_event.details.name = event.unit.name
 | 
| 
bsw/jbe@1309
 | 
   125   log_event.details.description = event.unit.description
 | 
| 
bsw/jbe@1309
 | 
   126   log_event.details.external_reference = event.unit.external_reference
 | 
| 
bsw/jbe@1309
 | 
   127   log_event.details.region = event.unit.region
 | 
| 
bsw/jbe@1309
 | 
   128   log_to_ontomap(log_event)
 | 
| 
bsw/jbe@1309
 | 
   129 end
 | 
| 
bsw/jbe@1309
 | 
   130 
 | 
| 
bsw/jbe@1309
 | 
   131 local function area_updated(event, event_type)
 | 
| 
bsw/jbe@1309
 | 
   132   local log_event = new_log_event(event, 0, event_type == "created" and "object_created" or "object_updated")
 | 
| 
bsw/jbe@1309
 | 
   133   table.insert(log_event.activity_objects, new_activity_object{
 | 
| 
bsw/jbe@1309
 | 
   134     type = "area",
 | 
| 
bsw/jbe@1309
 | 
   135     url = url_for("area", event.area_id)
 | 
| 
bsw/jbe@1309
 | 
   136   })
 | 
| 
bsw/jbe@1309
 | 
   137   table.insert(log_event.references, new_reference_object(
 | 
| 
bsw/jbe@1309
 | 
   138     url_for("unit", event.area.unit_id)
 | 
| 
bsw/jbe@1309
 | 
   139   ))
 | 
| 
bsw/jbe@1309
 | 
   140   log_event.details.active = event.area.active
 | 
| 
bsw/jbe@1309
 | 
   141   log_event.details.name = event.area.name
 | 
| 
bsw/jbe@1309
 | 
   142   log_event.details.description = event.area.description
 | 
| 
bsw/jbe@1309
 | 
   143   log_event.details.external_reference = event.area.external_reference
 | 
| 
bsw/jbe@1309
 | 
   144   log_event.details.region = event.area.region
 | 
| 
bsw/jbe@1309
 | 
   145   log_to_ontomap(log_event)
 | 
| 
bsw/jbe@1309
 | 
   146 end
 | 
| 
bsw/jbe@1309
 | 
   147 
 | 
| 
bsw/jbe@1309
 | 
   148 local function policy_updated(event, event_type)
 | 
| 
bsw/jbe@1309
 | 
   149   local log_event = new_log_event(event, 0, event_type == "created" and "object_created" or "object_updated")
 | 
| 
bsw/jbe@1309
 | 
   150   table.insert(log_event.activity_objects, new_activity_object{
 | 
| 
bsw/jbe@1309
 | 
   151     type = "policy",
 | 
| 
bsw/jbe@1309
 | 
   152     url = url_for("policy", event.policy_id)
 | 
| 
bsw/jbe@1309
 | 
   153   })
 | 
| 
bsw/jbe@1309
 | 
   154   log_event.details.active = event.policy.active
 | 
| 
bsw/jbe@1309
 | 
   155   log_event.details.name = event.policy.name
 | 
| 
bsw/jbe@1309
 | 
   156   log_event.details.description = event.policy.description
 | 
| 
bsw/jbe@1309
 | 
   157   log_to_ontomap(log_event)
 | 
| 
bsw/jbe@1309
 | 
   158 end
 | 
| 
bsw/jbe@1309
 | 
   159 
 | 
| 
bsw/jbe@1309
 | 
   160 local mapper = {
 | 
| 
bsw/jbe@1309
 | 
   161   
 | 
| 
bsw/jbe@1309
 | 
   162   unit_created = function(event)
 | 
| 
bsw/jbe@1309
 | 
   163     unit_updated(event, "created") 
 | 
| 
bsw/jbe@1309
 | 
   164   end,
 | 
| 
bsw/jbe@1309
 | 
   165 
 | 
| 
bsw/jbe@1309
 | 
   166   unit_updated = function(event)
 | 
| 
bsw/jbe@1309
 | 
   167     unit_updated(event, "updated") 
 | 
| 
bsw/jbe@1309
 | 
   168   end,
 | 
| 
bsw/jbe@1309
 | 
   169   
 | 
| 
bsw/jbe@1309
 | 
   170   area_created = function(event)
 | 
| 
bsw/jbe@1309
 | 
   171     area_updated(event, "created")
 | 
| 
bsw/jbe@1309
 | 
   172   end,
 | 
| 
bsw/jbe@1309
 | 
   173 
 | 
| 
bsw/jbe@1309
 | 
   174   area_updated = function(event)
 | 
| 
bsw/jbe@1309
 | 
   175     area_updated(event, "updated")
 | 
| 
bsw/jbe@1309
 | 
   176   end,
 | 
| 
bsw/jbe@1309
 | 
   177 
 | 
| 
bsw/jbe@1309
 | 
   178   policy_created = function(event)
 | 
| 
bsw/jbe@1309
 | 
   179     policy_updated(event, "created")
 | 
| 
bsw/jbe@1309
 | 
   180   end,
 | 
| 
bsw/jbe@1309
 | 
   181   
 | 
| 
bsw/jbe@1309
 | 
   182   policy_updated = function(event)
 | 
| 
bsw/jbe@1309
 | 
   183     policy_updated(event, "updated")
 | 
| 
bsw/jbe@1309
 | 
   184   end,
 | 
| 
bsw/jbe@1309
 | 
   185 
 | 
| 
bsw/jbe@1309
 | 
   186   issue_state_changed = function(event)
 | 
| 
bsw/jbe@1309
 | 
   187     local log_event = new_log_event(event, 0, "issue_status_updated")
 | 
| 
bsw/jbe@1309
 | 
   188     table.insert(log_event.references, new_reference_object(
 | 
| 
bsw/jbe@1309
 | 
   189       url_for("issue", event.issue_id)
 | 
| 
bsw/jbe@1309
 | 
   190     ))
 | 
| 
bsw/jbe@1309
 | 
   191     log_event.details.new_issue_state = event.state
 | 
| 
bsw/jbe@1309
 | 
   192     log_to_ontomap(log_event)
 | 
| 
bsw/jbe@1309
 | 
   193   end,
 | 
| 
bsw/jbe@1309
 | 
   194 
 | 
| 
bsw/jbe@1309
 | 
   195   initiative_created_in_new_issue = function(event)
 | 
| 
bsw/jbe@1309
 | 
   196     local log_events = json.array()
 | 
| 
bsw/jbe@1309
 | 
   197   
 | 
| 
bsw/jbe@1309
 | 
   198     local log_event = new_log_event(event, 0, "object_created")
 | 
| 
bsw/jbe@1309
 | 
   199     table.insert(log_event.activity_objects, new_activity_object{
 | 
| 
bsw/jbe@1309
 | 
   200       type = "issue",
 | 
| 
bsw/jbe@1309
 | 
   201       url = url_for("issue", event.issue_id)
 | 
| 
bsw/jbe@1309
 | 
   202     })
 | 
| 
bsw/jbe@1309
 | 
   203     table.insert(log_event.references, new_reference_object(
 | 
| 
bsw/jbe@1309
 | 
   204       url_for("policy", event.issue.policy_id)
 | 
| 
bsw/jbe@1309
 | 
   205     ))
 | 
| 
bsw/jbe@1309
 | 
   206     log_event.details.new_issue_state = event.state
 | 
| 
bsw/jbe@1309
 | 
   207     table.insert(log_events, log_event)
 | 
| 
bsw@1519
 | 
   208 
 | 
| 
bsw/jbe@1309
 | 
   209     local log_event = new_log_event(event, event.member_id, "object_created")
 | 
| 
bsw@1519
 | 
   210 
 | 
| 
bsw@1519
 | 
   211     local location = event.initiative.location
 | 
| 
bsw@1527
 | 
   212     if location and location.marker_link then
 | 
| 
bsw@1519
 | 
   213       local marker_link = location.marker_link
 | 
| 
bsw@1519
 | 
   214       location.marker_link = nil
 | 
| 
bsw@1519
 | 
   215       table.insert(log_event.references, new_reference_object(
 | 
| 
bsw@1519
 | 
   216         marker_link, config.firstlife.application_ident, "BELONGS_TO"
 | 
| 
bsw@1519
 | 
   217       ))
 | 
| 
bsw@1549
 | 
   218     elseif event.initiative.external_reference then
 | 
| 
bsw@1549
 | 
   219       table.insert(log_event.references, new_reference_object(
 | 
| 
bsw@1549
 | 
   220         event.initiative.external_reference, config.firstlife.application_ident, "BELONGS_TO"
 | 
| 
bsw@1549
 | 
   221       ))
 | 
| 
bsw@1519
 | 
   222     end 
 | 
| 
bsw@1519
 | 
   223     
 | 
| 
bsw@1519
 | 
   224     local activity_object = new_activity_object{
 | 
| 
bsw/jbe@1309
 | 
   225       type = "initiative",
 | 
| 
bsw/jbe@1309
 | 
   226       url = url_for("initiative", event.initiative_id),
 | 
| 
bsw@1519
 | 
   227       geometry = location
 | 
| 
bsw@1519
 | 
   228     }
 | 
| 
bsw@1519
 | 
   229     activity_object.properties.name = event.initiative.name
 | 
| 
bsw@1519
 | 
   230     table.insert(log_event.activity_objects, activity_object)
 | 
| 
bsw/jbe@1309
 | 
   231     table.insert(log_event.references, new_reference_object(
 | 
| 
bsw/jbe@1309
 | 
   232       url_for("issue", event.issue_id)
 | 
| 
bsw/jbe@1309
 | 
   233     ))
 | 
| 
bsw/jbe@1309
 | 
   234     table.insert(log_events, log_event)
 | 
| 
bsw/jbe@1309
 | 
   235 
 | 
| 
bsw/jbe@1309
 | 
   236     log_to_ontomap(log_events)
 | 
| 
bsw/jbe@1309
 | 
   237   end,
 | 
| 
bsw/jbe@1309
 | 
   238 
 | 
| 
bsw/jbe@1309
 | 
   239   initiative_created_in_existing_issue = function(event)
 | 
| 
bsw/jbe@1309
 | 
   240     local log_event = new_log_event(event, event.member_id, "object_created")
 | 
| 
bsw@1519
 | 
   241     local location = event.initiative.location
 | 
| 
bsw@1519
 | 
   242     if location and location.marker_link then
 | 
| 
bsw@1519
 | 
   243       local marker_link = location.marker_link
 | 
| 
bsw@1519
 | 
   244       location.marker_link = nil
 | 
| 
bsw@1519
 | 
   245       table.insert(log_event.references, new_reference_object(
 | 
| 
bsw@1519
 | 
   246         marker_link, config.firstlife.application_ident, "BELONGS_TO"
 | 
| 
bsw@1519
 | 
   247       ))
 | 
| 
bsw@1549
 | 
   248     elseif event.initiative.external_reference then
 | 
| 
bsw@1549
 | 
   249       table.insert(log_event.references, new_reference_object(
 | 
| 
bsw@1549
 | 
   250         event.initiative.external_reference, config.firstlife.application_ident, "BELONGS_TO"
 | 
| 
bsw@1549
 | 
   251       ))
 | 
| 
bsw@1519
 | 
   252     end 
 | 
| 
bsw@1519
 | 
   253     local activity_object = new_activity_object{
 | 
| 
bsw/jbe@1309
 | 
   254       type = "initiative",
 | 
| 
bsw/jbe@1309
 | 
   255       url = url_for("initiative", event.initiative_id),
 | 
| 
bsw@1519
 | 
   256       geometry = location
 | 
| 
bsw@1519
 | 
   257     }
 | 
| 
bsw@1519
 | 
   258     activity_object.properties.name = event.initiative.name
 | 
| 
bsw@1519
 | 
   259     table.insert(log_event.activity_objects, activity_object)
 | 
| 
bsw/jbe@1309
 | 
   260     table.insert(log_event.references, new_reference_object(
 | 
| 
bsw/jbe@1309
 | 
   261       url_for("issue", event.issue_id)
 | 
| 
bsw/jbe@1309
 | 
   262     ))
 | 
| 
bsw/jbe@1309
 | 
   263     log_to_ontomap(log_event)
 | 
| 
bsw/jbe@1309
 | 
   264   end,
 | 
| 
bsw/jbe@1309
 | 
   265 
 | 
| 
bsw/jbe@1309
 | 
   266   initiative_revoked = function(event)
 | 
| 
bsw/jbe@1309
 | 
   267     -- TODO -> which activity?
 | 
| 
bsw/jbe@1309
 | 
   268   end,
 | 
| 
bsw/jbe@1309
 | 
   269 
 | 
| 
bsw/jbe@1309
 | 
   270   new_draft_created = function(event)
 | 
| 
bsw/jbe@1309
 | 
   271     local log_event = new_log_event(event, event.member_id, "object_updated")
 | 
| 
bsw/jbe@1309
 | 
   272     table.insert(log_event.activity_objects, new_activity_object{
 | 
| 
bsw/jbe@1309
 | 
   273       type = "initiative",
 | 
| 
bsw/jbe@1309
 | 
   274       url = url_for("initiative", event.issue_id)
 | 
| 
bsw/jbe@1309
 | 
   275     })
 | 
| 
bsw/jbe@1309
 | 
   276     table.insert(log_event.references, new_reference_object(
 | 
| 
bsw/jbe@1309
 | 
   277       url_for("issue", event.issue_id)
 | 
| 
bsw/jbe@1309
 | 
   278     ))
 | 
| 
bsw/jbe@1309
 | 
   279     log_event.details.name = event.initiative.name
 | 
| 
bsw/jbe@1309
 | 
   280     log_event.details.location = event.initiative.current_draft.location
 | 
| 
bsw/jbe@1309
 | 
   281     log_to_ontomap(log_event)
 | 
| 
bsw/jbe@1309
 | 
   282   end,
 | 
| 
bsw/jbe@1309
 | 
   283 
 | 
| 
bsw/jbe@1309
 | 
   284   interest = function(event)
 | 
| 
bsw/jbe@1309
 | 
   285     local activity_type = event.boolean_value and "interest_added" or "interest_removed"
 | 
| 
bsw/jbe@1309
 | 
   286     local log_event = new_log_event(event, event.member_id, activity_type)
 | 
| 
bsw/jbe@1309
 | 
   287     table.insert(log_event.references, new_reference_object(
 | 
| 
bsw/jbe@1309
 | 
   288       url_for("issue", event.issue_id)
 | 
| 
bsw/jbe@1309
 | 
   289     ))
 | 
| 
bsw/jbe@1309
 | 
   290     log_to_ontomap(log_event)
 | 
| 
bsw/jbe@1309
 | 
   291   end,
 | 
| 
bsw/jbe@1309
 | 
   292 
 | 
| 
bsw/jbe@1309
 | 
   293   initiator = function(event)
 | 
| 
bsw/jbe@1309
 | 
   294     local activity_type = event.boolean_value and "initiator_added" or "initiator_removed"
 | 
| 
bsw/jbe@1309
 | 
   295     local log_event = new_log_event(event, event.member_id, activity_type)
 | 
| 
bsw/jbe@1309
 | 
   296     table.insert(log_event.references, new_reference_object(
 | 
| 
bsw/jbe@1309
 | 
   297       url_for("initiative", event.initiative_id)
 | 
| 
bsw/jbe@1309
 | 
   298     ))
 | 
| 
bsw/jbe@1309
 | 
   299     log_to_ontomap(log_event)
 | 
| 
bsw/jbe@1309
 | 
   300   end,
 | 
| 
bsw/jbe@1309
 | 
   301 
 | 
| 
bsw/jbe@1309
 | 
   302   support = function(event)
 | 
| 
bsw/jbe@1309
 | 
   303     local activity_type = event.boolean_value and "support_added" or "support_removed"
 | 
| 
bsw/jbe@1309
 | 
   304     local log_event = new_log_event(event, event.member_id, activity_type)
 | 
| 
bsw/jbe@1309
 | 
   305     table.insert(log_event.references, new_reference_object(
 | 
| 
bsw/jbe@1309
 | 
   306       url_for("initiative", event.initiative_id)
 | 
| 
bsw/jbe@1309
 | 
   307     ))
 | 
| 
bsw/jbe@1309
 | 
   308     log_event.details.draft_id = event.draft_id
 | 
| 
bsw/jbe@1309
 | 
   309     log_to_ontomap(log_event)
 | 
| 
bsw/jbe@1309
 | 
   310   end,
 | 
| 
bsw/jbe@1309
 | 
   311 
 | 
| 
bsw/jbe@1309
 | 
   312   support_updated = function(event)
 | 
| 
bsw/jbe@1309
 | 
   313     local log_event = new_log_event(event, event.member_id, "support_updated")
 | 
| 
bsw/jbe@1309
 | 
   314     table.insert(log_event.references, new_reference_object(
 | 
| 
bsw/jbe@1309
 | 
   315       url_for("initiative", event.initiative_id)
 | 
| 
bsw/jbe@1309
 | 
   316     ))
 | 
| 
bsw/jbe@1309
 | 
   317     log_event.details.draft_id = event.draft_id
 | 
| 
bsw/jbe@1309
 | 
   318     log_to_ontomap(log_event)
 | 
| 
bsw/jbe@1309
 | 
   319   end,
 | 
| 
bsw/jbe@1309
 | 
   320 
 | 
| 
bsw/jbe@1309
 | 
   321   suggestion_created = function(event)
 | 
| 
bsw/jbe@1309
 | 
   322     local log_event = new_log_event(event, event.member_id, "object_created")
 | 
| 
bsw/jbe@1309
 | 
   323     table.insert(log_event.activity_objects, new_activity_object{
 | 
| 
bsw/jbe@1309
 | 
   324       type = "suggestion",
 | 
| 
bsw/jbe@1309
 | 
   325       url = url_for("suggestion", event.suggestion_id)
 | 
| 
bsw/jbe@1309
 | 
   326     })
 | 
| 
bsw/jbe@1309
 | 
   327     table.insert(log_event.references, new_reference_object(
 | 
| 
bsw/jbe@1309
 | 
   328       url_for("initiative", event.initiative_id)
 | 
| 
bsw/jbe@1309
 | 
   329     ))
 | 
| 
bsw/jbe@1309
 | 
   330     log_to_ontomap(log_event)
 | 
| 
bsw/jbe@1309
 | 
   331   end,
 | 
| 
bsw/jbe@1309
 | 
   332 
 | 
| 
bsw/jbe@1309
 | 
   333   suggestion_removed = function(event)
 | 
| 
bsw/jbe@1309
 | 
   334     local log_event = new_log_event(event, 0, "object_removed")
 | 
| 
bsw/jbe@1309
 | 
   335     table.insert(log_event.activity_objects, new_activity_object{
 | 
| 
bsw/jbe@1309
 | 
   336       type = "suggestion",
 | 
| 
bsw/jbe@1309
 | 
   337       url = url_for("suggestion", event.suggestion_id)
 | 
| 
bsw/jbe@1309
 | 
   338     })
 | 
| 
bsw/jbe@1309
 | 
   339     table.insert(log_event.references, new_reference_object(
 | 
| 
bsw/jbe@1309
 | 
   340       url_for("initiative", event.initiative_id)
 | 
| 
bsw/jbe@1309
 | 
   341     ))
 | 
| 
bsw/jbe@1309
 | 
   342     log_to_ontomap(log_event)
 | 
| 
bsw/jbe@1309
 | 
   343   end,
 | 
| 
bsw/jbe@1309
 | 
   344 
 | 
| 
bsw/jbe@1309
 | 
   345   suggestion_rated = function(event)
 | 
| 
bsw/jbe@1309
 | 
   346     local log_event = new_log_event(event, event.member_id, "suggestion_rated")
 | 
| 
bsw/jbe@1309
 | 
   347     table.insert(log_event.references, new_reference_object(
 | 
| 
bsw/jbe@1309
 | 
   348       url_for("suggestion", event.suggestion_id)
 | 
| 
bsw/jbe@1309
 | 
   349     ))
 | 
| 
bsw/jbe@1309
 | 
   350     log_event.details.degree = event.numeric_value
 | 
| 
bsw/jbe@1309
 | 
   351     log_event.details.fulfilled = event.boolean_value or json.null
 | 
| 
bsw/jbe@1309
 | 
   352     log_to_ontomap(log_event)
 | 
| 
bsw/jbe@1309
 | 
   353   end,
 | 
| 
bsw/jbe@1309
 | 
   354 
 | 
| 
bsw/jbe@1309
 | 
   355   delegation = function(event)
 | 
| 
bsw/jbe@1309
 | 
   356     -- TODO
 | 
| 
bsw/jbe@1309
 | 
   357   end,
 | 
| 
bsw/jbe@1309
 | 
   358 
 | 
| 
bsw/jbe@1309
 | 
   359   member_activated = function(event)
 | 
| 
bsw/jbe@1309
 | 
   360     local log_event = new_log_event(event, event.member_id, "account_registered")
 | 
| 
bsw/jbe@1309
 | 
   361     log_to_ontomap(log_event)
 | 
| 
bsw/jbe@1309
 | 
   362   end,
 | 
| 
bsw/jbe@1309
 | 
   363 
 | 
| 
bsw/jbe@1309
 | 
   364   member_removed = function(event)
 | 
| 
bsw/jbe@1309
 | 
   365     -- TODO -> which activity to log?
 | 
| 
bsw/jbe@1309
 | 
   366   end,
 | 
| 
bsw/jbe@1309
 | 
   367 
 | 
| 
bsw/jbe@1309
 | 
   368   member_active = function(event)
 | 
| 
bsw/jbe@1309
 | 
   369     -- TODO -> which activity to log?
 | 
| 
bsw/jbe@1309
 | 
   370   end,
 | 
| 
bsw/jbe@1309
 | 
   371 
 | 
| 
bsw/jbe@1309
 | 
   372   member_name_updated = function(event)
 | 
| 
bsw/jbe@1309
 | 
   373     local log_event = new_log_event(event, event.member_id, "screen_name_changed")
 | 
| 
bsw/jbe@1309
 | 
   374     log_event.details.screen_name = event.text_value
 | 
| 
bsw/jbe@1309
 | 
   375     log_to_ontomap(log_event)
 | 
| 
bsw/jbe@1309
 | 
   376   end,
 | 
| 
bsw/jbe@1309
 | 
   377 
 | 
| 
bsw/jbe@1309
 | 
   378   member_profile_updated = function(event)
 | 
| 
bsw/jbe@1309
 | 
   379     local log_event = new_log_event(event, event.member_id, "profile_updated")
 | 
| 
bsw/jbe@1309
 | 
   380     log_to_ontomap(log_event)
 | 
| 
bsw/jbe@1309
 | 
   381   end,
 | 
| 
bsw/jbe@1309
 | 
   382 
 | 
| 
bsw/jbe@1309
 | 
   383   member_image_updated = function(event)
 | 
| 
bsw/jbe@1309
 | 
   384     local log_event = new_log_event(event, event.member_id, "avatar_changed")
 | 
| 
bsw/jbe@1309
 | 
   385     log_to_ontomap(log_event)
 | 
| 
bsw/jbe@1309
 | 
   386   end,
 | 
| 
bsw/jbe@1309
 | 
   387 
 | 
| 
bsw/jbe@1309
 | 
   388   contact = function(event)
 | 
| 
bsw/jbe@1309
 | 
   389     local activity_type = event.boolean_value and "contact_published" or "contact_unpublished"
 | 
| 
bsw/jbe@1309
 | 
   390     local log_event = new_log_event(event, event.member_id, activity_type)
 | 
| 
bsw/jbe@1309
 | 
   391     log_event.details.other_member_id = event.other_member_id
 | 
| 
bsw/jbe@1309
 | 
   392     log_to_ontomap(log_event)
 | 
| 
bsw/jbe@1309
 | 
   393   end
 | 
| 
bsw/jbe@1309
 | 
   394 
 | 
| 
bsw/jbe@1309
 | 
   395 }
 | 
| 
bsw/jbe@1309
 | 
   396 
 | 
| 
bsw/jbe@1309
 | 
   397 function _G.ontomap_log_event(event)
 | 
| 
bsw/jbe@1309
 | 
   398 
 | 
| 
bsw/jbe@1309
 | 
   399   if mapper[event.event] then
 | 
| 
bsw/jbe@1309
 | 
   400     local e = Event:new_selector()
 | 
| 
bsw/jbe@1309
 | 
   401       :add_where{ "id = ?", event.id }
 | 
| 
bsw/jbe@1309
 | 
   402       :add_field("extract(epoch from occurrence)", "occurrence_epoch")
 | 
| 
bsw/jbe@1309
 | 
   403       :optional_object_mode()
 | 
| 
bsw/jbe@1309
 | 
   404       :exec()
 | 
| 
bsw/jbe@1309
 | 
   405     if e then
 | 
| 
bsw/jbe@1309
 | 
   406       mapper[event.event](e)
 | 
| 
bsw/jbe@1309
 | 
   407     end
 | 
| 
bsw/jbe@1309
 | 
   408   end
 | 
| 
bsw/jbe@1309
 | 
   409 
 | 
| 
bsw/jbe@1309
 | 
   410 
 | 
| 
bsw/jbe@1309
 | 
   411 end
 |