* algolia integration skeleton * Configuration Defaults * Implemented partial entries with lazy loading of complete file * Moved backend selection logic to actioncreators * basic pagination for entries * general search skeleton * Basic search result listing * Redo search for different search terms * search results pagination * Changing integration config & handling * Changing integration config & handling * new integration config model
29 lines
794 B
JavaScript
29 lines
794 B
JavaScript
import Algolia from './providers/algolia/implementation';
|
|
import { Map } from 'immutable';
|
|
|
|
export function resolveIntegrations(interationsConfig) {
|
|
let integrationInstances = Map({});
|
|
interationsConfig.get('providers').forEach((providerData, providerName) => {
|
|
switch (providerName) {
|
|
case 'algolia':
|
|
integrationInstances = integrationInstances.set('algolia', new Algolia(providerData));
|
|
break;
|
|
}
|
|
});
|
|
return integrationInstances;
|
|
}
|
|
|
|
|
|
export const getIntegrationProvider = (function() {
|
|
let integrations = null;
|
|
|
|
return (interationsConfig, provider) => {
|
|
if (integrations) {
|
|
return integrations.get(provider);
|
|
} else {
|
|
integrations = resolveIntegrations(interationsConfig);
|
|
return integrations.get(provider);
|
|
}
|
|
};
|
|
})();
|