Skip to content

Commit 0492a5a

Browse files
committed
FIX api service manager
1 parent 75a8df4 commit 0492a5a

21 files changed

+101
-92
lines changed

src/index.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import voltran from './universal/partials/withBaseComponent';
2-
import { SERVICES } from './universal/utils/constants';
3-
import { ClientApiManager, ServerApiManager } from './universal/core/api';
2+
import apiService, { ClientApiManager, ServerApiManager } from './universal/core/apiService';
43

54
export default voltran;
6-
export { SERVICES, ClientApiManager, ServerApiManager };
5+
export { ClientApiManager, ServerApiManager, apiService };

src/renderMultiple.js

Lines changed: 14 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -63,32 +63,24 @@ function getRenderer(name, req) {
6363
}
6464

6565
function iterateServicesMap(servicesMap, callback) {
66-
Object.getOwnPropertySymbols(servicesMap).forEach(serviceName => {
67-
const endPoints = servicesMap[serviceName];
66+
Object.getOwnPropertyNames(servicesMap).forEach(serviceName => {
67+
const requests = servicesMap[serviceName];
6868

69-
Object.keys(endPoints).forEach(endPointName => {
70-
callback(serviceName, endPointName);
71-
});
69+
callback(serviceName, requests);
7270
});
7371
}
7472

75-
function reduceServicesMap(servicesMap, callback, initialValue) {
76-
return Object.getOwnPropertySymbols(servicesMap).map(serviceName => {
77-
const endPoints = servicesMap[serviceName];
78-
79-
return Object.keys(endPoints).reduce((obj, endPointName) => {
80-
return callback(serviceName, endPointName, obj);
81-
}, initialValue);
73+
function reduceServicesMap(servicesMap, callback, obj) {
74+
return Object.getOwnPropertyNames(servicesMap).map(serviceName => {
75+
return callback(serviceName, obj);
8276
});
8377
}
8478

8579
function getHashes(renderers) {
8680
return renderers
8781
.filter(renderer => renderer.servicesMap)
8882
.reduce((hashes, renderer) => {
89-
iterateServicesMap(renderer.servicesMap, (serviceName, endPointName) => {
90-
const requests = renderer.servicesMap[serviceName][endPointName];
91-
83+
iterateServicesMap(renderer.servicesMap, (serviceName, requests) => {
9284
requests.forEach(request => {
9385
if (hashes[request.hash]) {
9486
hashes[request.hash].occurrence += 1;
@@ -121,12 +113,8 @@ function incWinnerScore(winner, hashes) {
121113
hashes[winner.hash].score += 1;
122114
}
123115

124-
function putWinnerMap(serviceName, endPointName, winnerMap, winner) {
125-
if (winnerMap[serviceName]) {
126-
winnerMap[serviceName][endPointName] = winner;
127-
} else {
128-
winnerMap[serviceName] = { [endPointName]: winner };
129-
}
116+
function putWinnerMap(serviceName, winnerMap, winner) {
117+
winnerMap[serviceName] = winner;
130118
}
131119

132120
async function setInitialStates(renderers) {
@@ -135,12 +123,10 @@ async function setInitialStates(renderers) {
135123
const promises = renderers
136124
.filter(renderer => renderer.servicesMap)
137125
.reduce((promises, renderer) => {
138-
iterateServicesMap(renderer.servicesMap, (serviceName, endPointName) => {
139-
const requests = renderer.servicesMap[serviceName][endPointName];
140-
126+
iterateServicesMap(renderer.servicesMap, (serviceName, requests) => {
141127
const winner = getWinner(requests, hashes);
142128
incWinnerScore(winner, hashes);
143-
putWinnerMap(serviceName, endPointName, renderer.winnerMap, winner);
129+
putWinnerMap(serviceName, renderer.winnerMap, winner);
144130

145131
if (!promises[winner.hash]) {
146132
promises[winner.hash] = callback => {
@@ -176,9 +162,9 @@ async function setInitialStates(renderers) {
176162
renderer.setInitialState(
177163
reduceServicesMap(
178164
renderer.winnerMap,
179-
(serviceName, endPointName, obj) => {
180-
const request = renderer.winnerMap[serviceName][endPointName];
181-
obj[endPointName] = results[request.hash];
165+
(serviceName, obj) => {
166+
const request = renderer.winnerMap[serviceName];
167+
obj[serviceName] = results[request.hash];
182168
return obj;
183169
},
184170
{}

src/universal/core/api/ClientApiManager.js

Lines changed: 0 additions & 11 deletions
This file was deleted.

src/universal/core/api/ClientApiManagerCache.js

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/universal/core/api/ServerApiManagerCache.js

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/universal/core/api/index.js

Lines changed: 0 additions & 2 deletions
This file was deleted.

src/universal/core/api/ApiManager.js renamed to src/universal/core/apiService/apiManager/BaseApiManager.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ import {
33
CONTENT_TYPE_HEADER,
44
JSON_CONTENT_TYPE,
55
REQUEST_TYPES_WITH_BODY
6-
} from '../../utils/constants';
6+
} from '../../../utils/constants';
77

88
function createBaseConfig() {
99
return {};
1010
}
1111

12-
class ApiManager {
12+
class BaseApiManager {
1313
constructor(customConfig) {
1414
const headers = {
1515
common: {
@@ -40,4 +40,4 @@ class ApiManager {
4040
}
4141
}
4242

43-
export default ApiManager;
43+
export default BaseApiManager;
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import createApiClient from '../utils/createApiClient';
2+
import BaseApiManager from './BaseApiManager';
3+
4+
export default (config, timeout) => {
5+
const apiManager = new BaseApiManager({
6+
baseURL: config.clientUrl || config.url || config.serverUrl || '/',
7+
timeout
8+
});
9+
10+
return createApiClient(apiManager);
11+
};

src/universal/core/api/ServerApiManager.js renamed to src/universal/core/apiService/apiManager/ServerApiManager.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import ApiManager from './ApiManager';
2-
import { createApiClient } from '../../common/network/apiUtils';
1+
import createApiClient from '../utils/createApiClient';
2+
import BaseApiManager from './BaseApiManager';
33

44
import http from 'http';
55
import https from 'https';
@@ -10,9 +10,9 @@ const BASE_HTTP_AGENT_CONFIG = {
1010
};
1111

1212
export default (config, timeout) => {
13-
const apiManager = new ApiManager({
13+
const apiManager = new BaseApiManager({
1414
timeout,
15-
baseURL: config.serverUrl,
15+
baseURL: config.serverUrl || config.url || config.clientUrl || '/',
1616
httpAgent: new http.Agent(BASE_HTTP_AGENT_CONFIG),
1717
httpsAgent: new https.Agent(BASE_HTTP_AGENT_CONFIG)
1818
});
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export { default as BaseApiManager } from './BaseApiManager';
2+
export { default as ClientApiManager } from './ClientApiManager';
3+
export { default as ServerApiManager } from './ServerApiManager';

0 commit comments

Comments
 (0)