UNPKG

1.14 kBtext/coffeescriptView Raw
1Director = require "./director"
2outcome = require "outcome"
3
4module.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 extend the router
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 extend the message builder
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