Mercurial > pumpbridge
comparison 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 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:b73191efc65b |
---|---|
1 # Copyright (C) 2014 by Intevation GmbH | |
2 # Author: Mathias Gebbe <mgebbe@intevation.de> | |
3 # | |
4 # This file is Free Software under the Apache License, Version 2.0 | |
5 # (the "License"); and comes with ABSOLUTELY NO WARRANTY! | |
6 # You may not use this file except in compliance with the License. | |
7 # See LICENSE for details. | |
8 | |
9 async = require("async") | |
10 _ = require("underscore") | |
11 Edge = require("./edge") | |
12 | |
13 | |
14 removeEdges = (userid, network, callback) -> | |
15 delEdge = (edge, callback) -> | |
16 unless edge.to.indexOf(network) is -1 | |
17 edge.del callback | |
18 return | |
19 | |
20 async.parallel [ | |
21 (callback) -> | |
22 return Edge.search( | |
23 from: userid | |
24 , (err, edges) -> | |
25 if err | |
26 callback err | |
27 else | |
28 async.each edges, delEdge, callback | |
29 return | |
30 ) | |
31 (callback) -> | |
32 return Edge.search( | |
33 to: userid | |
34 , (err, edges) -> | |
35 if err | |
36 callback err | |
37 else | |
38 async.each edges, delEdge, callback | |
39 return | |
40 ) | |
41 ], callback | |
42 return | |
43 | |
44 addEdge = (from, to) -> | |
45 async.waterfall [(callback) -> | |
46 Edge.create | |
47 from: from | |
48 to: to | |
49 , callback | |
50 return | |
51 | |
52 ], (err, result) -> | |
53 return | |
54 | |
55 deleteEdge = (from, to) -> | |
56 async.waterfall [(callback) -> | |
57 bank = Edge.bank() | |
58 bank.del Edge.type, Edge.key(from, to), callback | |
59 return | |
60 | |
61 ], (err, result) -> | |
62 return | |
63 | |
64 exports.removeEdges = removeEdges | |
65 exports.deleteEdge = deleteEdge | |
66 exports.addEdge = addEdge |