Skip to content
This repository has been archived by the owner on Mar 31, 2024. It is now read-only.

Commit

Permalink
[courier/fetch] add generic function request/strategy
Browse files Browse the repository at this point in the history
  • Loading branch information
spalger committed Feb 24, 2016
1 parent 1a947a1 commit d1dfca3
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 2 deletions.
4 changes: 3 additions & 1 deletion src/ui/public/courier/courier.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import Notifier from 'ui/notify/notifier';
import DocSourceProvider from './data_source/doc_source';
import SearchSourceProvider from './data_source/search_source';
import EsSearchStrategyProvider from './fetch_types/es_search_strategy';
import GenericStrategyProvider from './fetch_types/generic_strategy';
import RequestQueueProvider from './_request_queue';
import ErrorHandlersProvider from './_error_handlers';
import FetchProvider from './fetch';
Expand All @@ -29,6 +30,7 @@ uiModules.get('kibana/courier')
var DocSource = Private(DocSourceProvider);
var SearchSource = Private(SearchSourceProvider);
var esSearchStrategy = Private(EsSearchStrategyProvider);
var genericStrategy = Private(GenericStrategyProvider);

var requestQueue = Private(RequestQueueProvider);
var errorHandlers = Private(ErrorHandlersProvider);
Expand Down Expand Up @@ -75,7 +77,7 @@ uiModules.get('kibana/courier')
* individual errors are routed to their respective requests.
*/
self.fetch = function () {
fetch.fetchQueued(esSearchStrategy).then(function () {
fetch.fetchQueued(esSearchStrategy, genericStrategy).then(function () {
searchLooper.restart();
});
};
Expand Down
19 changes: 19 additions & 0 deletions src/ui/public/courier/fetch_types/generic_request.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import _ from 'lodash';

import GenericStrategyProvider from './generic_strategy';
import AbstractRequestProvider from './abstract_request';

export default function GenericRequestProvider(Private) {
const genericStrategy = Private(GenericStrategyProvider);
const AbstractRequest = Private(AbstractRequestProvider);

return class GenericRequest extends AbstractRequest {
constructor(fn) {
super();

this.fn = fn;
this.type = 'generic';
this.strategy = genericStrategy;
}
};
};
19 changes: 19 additions & 0 deletions src/ui/public/courier/fetch_types/generic_strategy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import IsRequestProvider from '../fetch/is_request';
import AbstractStrategyProvider from './abstract_strategy';

export default function GenericStrategyProvider(Promise, Private) {
const isRequest = Private(IsRequestProvider);
const AbstractStrategy = Private(AbstractStrategyProvider);

return new class GenericStrategy extends AbstractStrategy {
execute(requests) {
return Promise.map(requests, req => {
if (isRequest(req)) {
return Promise.try(req.fn);
} else {
return req;
}
});
}
};
}
4 changes: 3 additions & 1 deletion src/ui/public/courier/looper/search.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
import FetchProvider from '../fetch';
import EsSearchStrategyProvider from '../fetch_types/es_search_strategy';
import GenericStrategyProvider from '../fetch_types/generic_strategy';
import RequestQueueProvider from '../_request_queue';
import LooperProvider from './_looper';

export default function SearchLooperService(Private, Promise, Notifier, $rootScope) {
var fetch = Private(FetchProvider);
var esSearchStrategy = Private(EsSearchStrategyProvider);
var genericStrategy = Private(GenericStrategyProvider);
var requestQueue = Private(RequestQueueProvider);

var Looper = Private(LooperProvider);
Expand All @@ -18,7 +20,7 @@ export default function SearchLooperService(Private, Promise, Notifier, $rootSco
var searchLooper = new Looper(null, function () {
$rootScope.$broadcast('courier:searchRefresh');
return fetch.these(
requestQueue.getInactive(esSearchStrategy)
requestQueue.getInactive(esSearchStrategy, genericStrategy)
);
});

Expand Down

0 comments on commit d1dfca3

Please sign in to comment.