diff src/edgecontrol.coffee @ 0:b73191efc65b

Initial import of pumpbridge (bloody bloody alpha)
author Mathias Gebbe <mgebbe@intevation.de>
date Thu, 05 Jun 2014 10:35:15 +0200
parents
children 98a070c98982
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/edgecontrol.coffee	Thu Jun 05 10:35:15 2014 +0200
@@ -0,0 +1,66 @@
+# Copyright (C) 2014 by Intevation GmbH
+# Author: Mathias Gebbe <mgebbe@intevation.de>
+#
+# This file is Free Software under the Apache License, Version 2.0
+# (the "License"); and comes with ABSOLUTELY NO WARRANTY!
+# You may not use this file except in compliance with the License.
+# See LICENSE for details.
+
+async = require("async")
+_ = require("underscore")
+Edge = require("./edge")
+
+
+removeEdges = (userid, network, callback) ->
+  delEdge = (edge, callback) ->
+    unless edge.to.indexOf(network) is -1
+      edge.del callback
+    return
+
+  async.parallel [
+    (callback) ->
+      return Edge.search(
+        from: userid
+      , (err, edges) ->
+        if err
+          callback err
+        else
+          async.each edges, delEdge, callback
+        return
+      )
+    (callback) ->
+      return Edge.search(
+        to: userid
+      , (err, edges) ->
+        if err
+          callback err
+        else
+          async.each edges, delEdge, callback
+        return
+      )
+  ], callback
+  return
+
+addEdge = (from, to) ->
+  async.waterfall [(callback) ->
+   Edge.create
+     from: from
+     to: to
+    , callback
+    return
+ 
+  ], (err, result) ->
+    return
+ 
+deleteEdge = (from, to) ->
+  async.waterfall [(callback) ->
+   bank = Edge.bank()
+   bank.del Edge.type, Edge.key(from, to), callback
+   return
+
+  ], (err, result) ->
+    return
+
+exports.removeEdges = removeEdges
+exports.deleteEdge = deleteEdge
+exports.addEdge = addEdge
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)