1 | Director = require "./director"
|
2 | outcome = require "outcome"
|
3 |
|
4 | module.exports = (router) ->
|
5 |
|
6 | director = new Director("pull", router)
|
7 |
|
8 | name: director.name
|
9 |
|
10 |
|
11 | |
12 |
|
13 |
|
14 | director: director
|
15 |
|
16 | |
17 |
|
18 |
|
19 | newListener: (listener) ->
|
20 |
|
21 | if !!listener.route.tags.pull
|
22 | router.request(listener.route.channel).headers(listener.route.tags).success(listener.callback).error(()->).pull();
|
23 |
|
24 |
|
25 | |
26 |
|
27 |
|
28 |
|
29 | router:
|
30 | pull: (channel, query, headers, callback) -> @_pull channel, query, headers, callback, director.name
|
31 | _pull: (channel, query, headers, callback, type) ->
|
32 |
|
33 | if typeof query == 'function'
|
34 | callback = query
|
35 | headers = null
|
36 | query = null
|
37 |
|
38 | if typeof headers == 'function'
|
39 | callback = headers
|
40 | headers = null
|
41 |
|
42 | @request(channel, query, headers)[type] callback
|
43 |
|
44 | |
45 |
|
46 |
|
47 |
|
48 | message:
|
49 | pull: (query, callback) -> @_pull query, callback, director.name
|
50 | _pull: (query, callback, type) ->
|
51 |
|
52 | if typeof query == 'function'
|
53 | callback = query
|
54 | query = null
|
55 |
|
56 |
|
57 | @query(query) if !!query
|
58 | @response(callback) if !!callback
|
59 |
|
60 |
|
61 | @dispatch type
|
62 |
|