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