Commit aaa24afe authored by Matija Obreza's avatar Matija Obreza
Browse files

Reversed unnecessary authentication commit

parent c86eb003
Pipeline #4111 passed with stages
in 2 minutes and 56 seconds
......@@ -48,8 +48,7 @@ module.exports = {
// https://facebook.github.io/react/docs/optimizing-performance.html#use-the-production-build
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify('production'),
SSR: JSON.stringify(true)
NODE_ENV: JSON.stringify('production')
}
}),
......
......@@ -68,7 +68,7 @@ module.exports = {
}
// If authorization header is not provided, use access_token from cookie
// console.log('Cookies & Authorization', req.headers.cookie, req.headers.authorization);
// console.log('Cookies', req.headers.cookie, req);
if (! req.headers.authorization && req.headers.cookie) {
const authorization = req.headers.cookie.match(/access_token=([^;]+)/);
// console.log('Cookies', req.headers.cookie, authorization);
......
apps:
- script: server.js
args: --api-url=${CATALOG_API_URL} --client-id=${CLIENT_ID} --client-secret=${CLIENT_SECRET}
name: catalogui
exec_mode: cluster
instances: 3
log_type: raw
cwd: /var/www/genesys-catalog-ui/server
- script: server.js
args: --api-url=${CATALOG_API_URL} --client-id=${CLIENT_ID} --client-secret=${CLIENT_SECRET}
name: catalogui
exec_mode: cluster
instances: 3
log_type: raw
cwd: /var/www/genesys-catalog-ui/server
env:
NODE_ENV: production
NODE_ENV: production
......@@ -5,9 +5,11 @@ function checkAuthTokenRequest(req, dispatch) {
if (token) {
return dispatch(checkTokenRequest(token))
.catch(() => {
console.log('Server: check failed dispatching loginAppRequest');
return dispatch(loginAppRequest());
});
} else {
console.log('Server: No token, dispatching loginAppRequest');
return dispatch(loginAppRequest());
}
}
......@@ -18,9 +20,9 @@ export default function checkAuthToken(req, res, dispatch) {
.then((data) => {
res.cookie('access_token', data.access_token, { path: '/' });
if (data.authorities) {
res.cookie('authorities', JSON.stringify(data.authorities), { path: '/' });
res.cookie('authorities', JSON.stringify(data.authorities), { path: '/' });
} else {
res.clearCookie('authorities');
res.clearCookie('authorities');
}
return data;
});
......
......@@ -6,7 +6,7 @@ const httpProxy = proxy(config.apiUrl, {
timeout: config.apiTimeout,
filter: (req, res) => {
if (req.url.startsWith('/oauth/')) {
if (req.url.startsWith('/oauth/') || req.url.startsWith('/token') || req.url.startsWith('/google')) {
// console.log('Will proxy /oauth');
return true;
}
......@@ -21,10 +21,11 @@ const httpProxy = proxy(config.apiUrl, {
}
}
// console.log(`Will HTTP Proxy filter? ${typeof req.headers.authorization !== 'undefined'}`);
console.log(`Will HTTP Proxy filter? ${typeof req.headers.authorization !== 'undefined'}`);
return typeof req.headers.authorization !== 'undefined';
}
// Not proxying the request
console.log(`Not proxying ${req.url}`);
return false;
},
......
......@@ -20,9 +20,11 @@ const receiveCrops = (crops: Crop[]): IReducerAction => ({
});
export const loadCrop = (uuid: string) => (dispatch, getState) => {
const token = getState().login.access_token;
dispatch({type: GET_CROP, payload: uuid});
return CropService.getCrop(uuid)
return CropService.getCrop(token, uuid)
.then((crop) => {
return dispatch(receiveCrop(crop));
}).catch((error) => {
......@@ -41,7 +43,7 @@ export const editCrop = (uuid: string) => (dispatch, getState) => {
export const listCrops = () => (dispatch, getState) => {
return CropService.listCrops()
return CropService.listCrops(getState().login.access_token)
.then((list) => {
dispatch(receiveCrops(list));
})
......@@ -52,7 +54,7 @@ export const listCrops = () => (dispatch, getState) => {
export const saveCrop = (crop: Crop) => (dispatch, getState) => {
return CropService.saveCrop(crop)
return CropService.saveCrop(getState().login.access_token, crop)
.then((saved) => {
dispatch(receiveCrop(saved));
dispatch(push('/crops'));
......@@ -62,7 +64,7 @@ export const saveCrop = (crop: Crop) => (dispatch, getState) => {
};
export const deleteCrop = (crop: Crop) => (dispatch, getState) => {
return CropService.deleteCrop(crop)
return CropService.deleteCrop(getState().login.access_token, crop)
.then((crop) => {
dispatch(push('/crops'));
})
......
......@@ -35,8 +35,9 @@ function editDataset(uuid: string) {
function listMyDatasets(page?, results?, sortBy?, filter?, order?) {
return (dispatch, getState) => {
const token = getState().login.access_token;
return DatasetService.listMyDatasets(page, results, sortBy, filter, order)
return DatasetService.listMyDatasets(token, page, results, sortBy, filter, order)
.then((paged) => {
dispatch(receiveDatasetPage(paged, page, results, sortBy, filter, order));
})
......@@ -47,9 +48,10 @@ function listMyDatasets(page?, results?, sortBy?, filter?, order?) {
}
function listDatasetsRequest(page?, results?, sortBy?, filter?, order?) {
return (dispatch) => {
return (dispatch, getState) => {
const token = getState().login.access_token;
return DatasetService.listDatasets(page, results, sortBy, filter, order)
return DatasetService.listDatasets(token, page, results, sortBy, filter, order)
.then((paged) => {
return dispatch(receiveDatasetPage(paged, page, results, sortBy, filter, order));
})
......@@ -60,9 +62,10 @@ function listDatasetsRequest(page?, results?, sortBy?, filter?, order?) {
}
function loadDataset(uuid: string) {
return (dispatch) => {
return (dispatch, getState) => {
const token = getState().login.access_token;
return DatasetService.getDataset(uuid)
return DatasetService.getDataset(token, uuid)
.then((dataset) => {
dispatch(receiveDataset(dataset));
})
......@@ -78,7 +81,7 @@ const createDataset = () => (dispatch) => {
return dispatch(push(`/datasets/edit`));
};
const saveDataset = (dataset: Dataset) => (dispatch) => {
const saveDataset = (dataset: Dataset) => (dispatch, getState) => {
// remove normalized data here
const data = new Dataset({
......@@ -89,7 +92,9 @@ const saveDataset = (dataset: Dataset) => (dispatch) => {
descriptors: [],
});
return DatasetService.saveDataset(data)
const token = getState().login.access_token;
return DatasetService.saveDataset(token, data)
.then((saved) => {
dispatch(receiveDataset(saved));
}).catch((error) => {
......@@ -98,9 +103,11 @@ const saveDataset = (dataset: Dataset) => (dispatch) => {
};
function publishDataset(dataset: Dataset, published: boolean = true) {
return (dispatch) => {
return (dispatch, getState) => {
const token = getState().login.access_token;
return DatasetService.publishDataset(dataset, published)
return DatasetService.publishDataset(token, dataset, published)
.then((saved) => {
dispatch(receiveDataset(saved));
dispatch(showDataset(saved.uuid));
......@@ -111,9 +118,10 @@ function publishDataset(dataset: Dataset, published: boolean = true) {
}
function updateDatasetAccessionIdentifiers(dataset: Dataset, accessionIdentifiers: AccessionIdentifier[]) {
return (dispatch) => {
return (dispatch, getState) => {
const token = getState().login.access_token;
return DatasetService.updateAccessionIdentifiers(dataset, accessionIdentifiers)
return DatasetService.updateAccessionIdentifiers(token, dataset, accessionIdentifiers)
.then((saved) => {
dispatch(receiveDataset(saved));
}).catch((error) => {
......@@ -124,9 +132,10 @@ function updateDatasetAccessionIdentifiers(dataset: Dataset, accessionIdentifier
function addDescriptorsToDatasetRequest(dataset: Dataset, descriptor: Descriptor) {
return (dispatch) => {
return (dispatch, getState) => {
const token = getState().login.access_token;
return DatasetService.addDescriptorsToDataset(dataset, [descriptor.uuid])
return DatasetService.addDescriptorsToDataset(token, dataset, [descriptor.uuid])
.then((saved) => {
dispatch(receiveDataset(saved));
}).catch((error) => {
......@@ -136,9 +145,10 @@ function addDescriptorsToDatasetRequest(dataset: Dataset, descriptor: Descriptor
}
function removeDescriptorsFromDatasetRequest(dataset: Dataset, descriptor: Descriptor) {
return (dispatch) => {
return (dispatch, getState) => {
const token = getState().login.access_token;
return DatasetService.removeDescriptorsFromDataset(dataset, [descriptor.uuid])
return DatasetService.removeDescriptorsFromDataset(token, dataset, [descriptor.uuid])
.then((saved) => {
dispatch(receiveDataset(saved));
}).catch((error) => {
......@@ -153,9 +163,10 @@ export {
addDescriptorsToDatasetRequest, removeDescriptorsFromDatasetRequest,
};
const uploadRepositoryFileRequest = (dataset: Dataset, file: File) => (dispatch) => {
const uploadRepositoryFileRequest = (dataset: Dataset, file: File) => (dispatch, getState) => {
const token = getState().login.access_token;
return RepositoryFileService.saveRepositoryFile(dataset.uuid, file)
return RepositoryFileService.saveRepositoryFile(token, dataset.uuid, file)
.then((dataset) => {
dispatch(receiveDataset(dataset));
}).catch((error) => {
......@@ -163,9 +174,10 @@ const uploadRepositoryFileRequest = (dataset: Dataset, file: File) => (dispatch)
});
};
const deleteRepositoryFileRequest = (dataset: Dataset, uuid: string) => (dispatch) => {
const deleteRepositoryFileRequest = (dataset: Dataset, uuid: string) => (dispatch, getState) => {
const token = getState().login.access_token;
return RepositoryFileService.deleteRepositoryFile(dataset.uuid, uuid)
return RepositoryFileService.deleteRepositoryFile(token, dataset.uuid, uuid)
.then((dataset) => {
dispatch(receiveDataset(dataset));
}).catch((error) => {
......@@ -189,7 +201,7 @@ function addCreatorToDataset(creator: Creator, uuid: string) {
function createDatasetCreator(uuid: string) {
return (dispatch, getState) => {
console.log('createCreator');
return CreatorService.createCreator(uuid)
return CreatorService.createCreator(getState().login.access_token, uuid)
.then((obj) => {
dispatch(addCreatorToDataset(obj, uuid));
}).catch((error) => {
......@@ -208,8 +220,9 @@ function updateCreator(creator: Creator) {
}
function updateCreatorRequest(uuid: string, creator: Creator) {
return (dispatch) => {
return CreatorService.updateCreator(uuid, creator)
return (dispatch, getState) => {
const token = getState().login.access_token;
return CreatorService.updateCreator(token, uuid, creator)
.then((obj) => {
dispatch(updateCreator(obj));
}).catch((error) => {
......@@ -229,8 +242,9 @@ function removeCreator(creator: Creator, uuid: string) {
}
function deleteCreatorRequest(uuid: string, creator: Creator) {
return (dispatch) => {
return CreatorService.deleteCreator(uuid, creator)
return (dispatch, getState) => {
const token = getState().login.access_token;
return CreatorService.deleteCreator(token, uuid, creator)
.then((obj) => {
dispatch(removeCreator(obj, uuid));
}).catch((error) => {
......@@ -257,9 +271,10 @@ function addLocation(datasetUUID: string, location: Location) {
function createLocationRequest(datasetUUID: string) {
const location = new Location({});
return (dispatch) => {
return (dispatch, getState) => {
const token = getState().login.access_token;
return LocationService.saveLocation(datasetUUID, location)
return LocationService.saveLocation(token, datasetUUID, location)
.then((saved) => {
dispatch(addLocation(datasetUUID, saved));
}).catch((error) => {
......@@ -279,9 +294,10 @@ function receiveLocation(location: Location) {
function updateLocationRequest(datasetUUID: string, location: Location) {
return (dispatch) => {
return (dispatch, getState) => {
const token = getState().login.access_token;
return LocationService.saveLocation(datasetUUID, location)
return LocationService.saveLocation(token, datasetUUID, location)
.then((saved) => {
dispatch(receiveLocation(saved));
}).catch((error) => {
......@@ -301,9 +317,10 @@ function deleteLocation(datasetUUID: string, location: Location) {
}
function deleteLocationRequest(datasetUUID: string, location: Location) {
return (dispatch) => {
return (dispatch, getState) => {
const token = getState().login.access_token;
return LocationService.deleteLocation(datasetUUID, location)
return LocationService.deleteLocation(token, datasetUUID, location)
.then((saved) => {
dispatch(deleteLocation(datasetUUID, saved));
}).catch((error) => {
......
......@@ -27,12 +27,13 @@ const loadingDescriptorLists = (page, results, sortBy, filter, order) => ({
});
// Just load a descriptor list
export const loadDescriptorList = (uuid: string) => (dispatch) => {
export const loadDescriptorList = (uuid: string) => (dispatch, getState) => {
console.log('Loading descriptor list', uuid);
const token = getState().login.access_token;
dispatch({ type: GET_DESCRIPTORLIST, payload: uuid });
return DescriptorListService.loadDescriptorList(uuid)
return DescriptorListService.loadDescriptorList(token, uuid)
// receive the current descriptor list
.then((descriptorList) => {
return dispatch(receiveDescriptorList(descriptorList));
......@@ -42,12 +43,13 @@ export const loadDescriptorList = (uuid: string) => (dispatch) => {
};
// List current user's descriptor lists
export const listMyDescriptorLists = (page?, results?, sortBy?, filter?, order?) => (dispatch) => {
export const listMyDescriptorLists = (page?, results?, sortBy?, filter?, order?) => (dispatch, getState) => {
console.log('Loading my descriptor lists');
const token = getState().login.access_token;
dispatch(loadingDescriptorLists(page, results, sortBy, filter, order));
return DescriptorListService.listMyDescriptorLists(page, results, sortBy, filter, order)
return DescriptorListService.listMyDescriptorLists(token, page, results, sortBy, filter, order)
// receive the current descriptor list
.then((descriptorLists) => {
return dispatch(receiveDescriptorLists(descriptorLists, page, results, sortBy, filter, order));
......@@ -57,12 +59,13 @@ export const listMyDescriptorLists = (page?, results?, sortBy?, filter?, order?)
};
// List published descriptor lists
export const listDescriptorLists = (page?, results?, sortBy?, filter?, order?) => (dispatch) => {
export const listDescriptorLists = (page?, results?, sortBy?, filter?, order?) => (dispatch, getState) => {
console.log('Loading published descriptor lists');
const token = getState().login.access_token;
dispatch(loadingDescriptorLists(page, results, sortBy, filter, order));
return DescriptorListService.listDescriptorLists(page, results, sortBy, filter, order)
return DescriptorListService.listDescriptorLists(token, page, results, sortBy, filter, order)
// receive the current descriptor list
.then((descriptorLists) => {
return dispatch(receiveDescriptorLists(descriptorLists, page, results, sortBy, filter, order));
......@@ -78,18 +81,18 @@ export const createDescriptorList = () => (dispatch) => {
};
// Edit an existing descriptor list
export const editDescriptorList = (uuid: string) => (dispatch) => {
export const editDescriptorList = (uuid: string) => (dispatch, getState) => {
return dispatch(loadDescriptorList(uuid))
.then((descriptorList) => dispatch(push(`/descriptorlist/${descriptorList.uuid}/edit`)));
};
// Save the descriptor list
export const saveDescriptorList = (descriptorList: DescriptorList) => (dispatch) => {
export const saveDescriptorList = (descriptorList: DescriptorList) => (dispatch, getState) => {
console.log('Saving descriptor list', descriptorList);
const createOrSave = descriptorList.version ? DescriptorListService.updateDescriptorList : DescriptorListService.createDescriptorList;
return createOrSave(descriptorList)
return createOrSave(getState().login.access_token, descriptorList)
// when response is back
.then((descriptorList) => {
// receive the updated descriptor list
......@@ -102,8 +105,8 @@ export const saveDescriptorList = (descriptorList: DescriptorList) => (dispatch)
};
// Publish the descriptor list
export const publishDescriptorList = (descriptorList: DescriptorList, published?: boolean) => (dispatch) => {
return DescriptorListService.publishDescriptorList(descriptorList, published)
export const publishDescriptorList = (descriptorList: DescriptorList, published?: boolean) => (dispatch, getState) => {
return DescriptorListService.publishDescriptorList(getState().login.access_token, descriptorList, published)
.then((descriptorList) => {
// receive updates
dispatch(receiveDescriptorList(descriptorList));
......@@ -113,8 +116,8 @@ export const publishDescriptorList = (descriptorList: DescriptorList, published?
};
// Add a descriptor to the descriptor list
export const addDescriptorToDescriptorList = (descriptorList: DescriptorList, descriptor: Descriptor) => (dispatch) => {
return DescriptorListService.addDescriptor(descriptorList, [ descriptor.uuid ])
export const addDescriptorToDescriptorList = (descriptorList: DescriptorList, descriptor: Descriptor) => (dispatch, getState) => {
return DescriptorListService.addDescriptor(getState().login.access_token, descriptorList, [ descriptor.uuid ])
.then((descriptorList) => {
// receive updates
dispatch(receiveDescriptorList(descriptorList));
......@@ -122,8 +125,8 @@ export const addDescriptorToDescriptorList = (descriptorList: DescriptorList, de
};
// Remove a descriptor to the descriptor list
export const removeDescriptorFromDescriptorList = (descriptorList: DescriptorList, descriptor: Descriptor) => (dispatch) => {
return DescriptorListService.removeDescriptor(descriptorList, [ descriptor.uuid ])
export const removeDescriptorFromDescriptorList = (descriptorList: DescriptorList, descriptor: Descriptor) => (dispatch, getState) => {
return DescriptorListService.removeDescriptor(getState().login.access_token, descriptorList, [ descriptor.uuid ])
.then((descriptorList) => {
// receive updates
dispatch(receiveDescriptorList(descriptorList));
......
......@@ -36,9 +36,10 @@ export function showDescriptorsDashboard() {
export function loadDescriptor(uuid: string) {
console.log('Loading descriptor', uuid);
return (dispatch) => {
return (dispatch, getState) => {
const token = getState().login.access_token;
return DescriptorService.loadDescriptor(uuid)
return DescriptorService.loadDescriptor(token, uuid)
.then((loaded) => {
dispatch(receiveDescriptor(loaded));
}).catch((error) => {
......@@ -55,16 +56,16 @@ export const createDescriptor = () => (dispatch) => {
};
// Edit an existing descriptor list
export const editDescriptor = (uuid: string) => (dispatch) => {
export const editDescriptor = (uuid: string) => (dispatch, getState) => {
return dispatch(loadDescriptor(uuid))
.then((descriptor) => dispatch(push(`/descriptor/${descriptor.uuid}/edit`)));
};
export const saveDescriptor = (descriptor: Descriptor) => (dispatch) => {
export const saveDescriptor = (descriptor: Descriptor) => (dispatch, getState) => {
console.log('Saving descriptor', descriptor);
const createOrSave = descriptor.version && descriptor.uuid ? DescriptorService.updateDescriptor : DescriptorService.createDescriptor;
return createOrSave(descriptor)
return createOrSave(getState().login.access_token, descriptor)
.then((descriptor) => {
// receive the updated descriptor
dispatch(receiveDescriptor(descriptor));
......@@ -77,9 +78,13 @@ export const saveDescriptor = (descriptor: Descriptor) => (dispatch) => {
};
export function listMyDescriptors(page?, results?, sortBy?, filter?, order?) {
return (dispatch) => {
return (dispatch, getState) => {
const token = getState().login.access_token;
const state = getState();
return DescriptorService.listMyDescriptors(page, results, sortBy, filter, order)
const f = !filter ? state.filter.descriptorFilter : filter;
return DescriptorService.listMyDescriptors(token, page, results, sortBy, f, order)
.then((paged) => {
dereferenceReferences(paged.content, 'owner', (o) => new Partner(o));
dispatch(receiveDescriptorPage(paged));
......@@ -91,8 +96,13 @@ export function listMyDescriptors(page?, results?, sortBy?, filter?, order?) {
}
export function loadDescriptors(page?, results?, sortBy?, filter?, order?) {
return (dispatch) => {
return DescriptorService.listDescriptors(page, results, sortBy, filter, order)
return (dispatch, getState) => {
const token = getState().login.access_token;
const state = getState();
const f = !filter ? state.filter.descriptorFilter : filter;
return DescriptorService.listDescriptors(token, page, results, sortBy, f, order)
.then((paged) => {
dereferenceReferences(paged.content, 'owner', (o) => new Partner(o));
dispatch(receiveDescriptorPage(paged));
......@@ -104,8 +114,11 @@ export function loadDescriptors(page?, results?, sortBy?, filter?, order?) {
}
export function publishDescriptor(descriptor: Descriptor, published: boolean = true) {
return (dispatch) => {
return DescriptorService.publishDescriptor(descriptor, published)
return (dispatch, getState) => {
const token = getState().login.access_token;
return DescriptorService.publishDescriptor(token, descriptor, published)
.then((saved) => {
dispatch(receiveDescriptor(saved));
dispatch(showDescriptorsDashboard());
......
......@@ -3,7 +3,7 @@ import {LOGIN_URL, LOGOUT_URL, CHECK_TOKEN_URL, VERIFY_GOOGLE_TOKEN_URL} from 'c
import * as Constants from 'constants/login';
import {clearCookies, saveCookies} from 'utilities';
import {ROLE_CLIENT} from 'constants/userRoles';
import httpRequest from 'utilities/requestUtils';
import authenticatedRequest from 'utilities/requestUtils';
function loginRequest(username, password) {
return (dispatch) => {
......@@ -39,7 +39,7 @@ function logoutRequest() {
return (dispatch, getState) => {
const token = getState().login.access_token;
return httpRequest({
return authenticatedRequest(token, {
url: LOGOUT_URL,
method: 'DELETE',
params: {
......@@ -65,8 +65,10 @@ function checkTokenRequest(token) {
}
function verifyGoogleTokenRequest(accessToken, googleClientId) {
return (dispatch) => {
return httpRequest({
return (dispatch, getState) => {
const token = getState().login.access_token;
return authenticatedRequest(token, {
url: VERIFY_GOOGLE_TOKEN_URL,
method: 'GET',
params: {
......
......@@ -31,8 +31,8 @@ export const createPartner = () => (dispatch) => {
};
// Delete a record
export const deletePartner = (partner: Partner) => (dispatch) => {
return PartnerService.deletePartner(partner)
export const deletePartner = (partner: Partner) => (dispatch, getState) => {
return PartnerService.deletePartner(getState().login.access_token, partner)
.then((partner) => {
dispatch(push(`/partners`));
})
......@@ -42,12 +42,13 @@ export const deletePartner = (partner: Partner) => (dispatch) => {
};
// Just load a record
export const loadPartner = (uuid: string) => (dispatch) => {
export const loadPartner = (uuid: string) => (dispatch, getState) => {
console.log('Loading partner', uuid);
const token = getState().login.access_token;
dispatch({ type: GET_PARTNER, payload: uuid });
return PartnerService.getPartner(uuid)
return PartnerService.getPartner(token, uuid)
// receive the current partner
.then((partner) => {
return dispatch(receivePartner(partner));
......@@ -57,7 +58,7 @@ export const loadPartner = (uuid: string) => (dispatch) => {
};
// Edit an existing partner
export const editPartner = (uuid: string) => (dispatch) => {
export const editPartner = (uuid: string) => (dispatch, getState) => {
dispatch(loadPartner(uuid));
dispatch(push(`/partner/${uuid}/edit`));
};
......@@ -68,8 +69,8 @@ const showPartner = (uuid: string) => (dispatch) => {
};
// List user's partners
const loadMyPartners = () => (dispatch) => {
return PartnerService.listMyPartners(0, 50)
const loadMyPartners = () => (dispatch, getState) => {
return PartnerService.listMyPartners(getState().login.access_token, 0, 50)
.then((paged) => {
dispatch(receiveMyPartnerList(paged.content));
})
......@@ -79,9 +80,9 @@ const loadMyPartners = () => (dispatch) => {
};
// Load them
const loadPartners = (page: number, results: number, sortBy?: string, filter?: IPartnerFilter, order?: string) => (dispatch) => {
const loadPartners = (page: number, results: number, sortBy?: string, filter?: IPartnerFilter, order?: string) => (dispatch, getState) => {
return PartnerService.listPartners(page, results, sortBy, order, filter)
return PartnerService.listPartners(getState().login.access_token, page, results, sortBy, order, filter)
.then((paged) => {
// console.log('fufu', paged);
dispatch(receivePartnerPage(paged, page, results, sortBy, filter, order));
......@@ -91,9 +92,9 @@ const loadPartners = (page: number, results: number, sortBy?: string, filter?: I
});