58 lines
2.0 KiB
JavaScript
58 lines
2.0 KiB
JavaScript
import { filter } from 'lodash/fp';
|
|
import { configFolder, appDefinitionFile, $ } from '../common';
|
|
import { TRANSACTIONS_FOLDER } from '../transactions/transactionsCommon';
|
|
import { AUTH_FOLDER, USERS_LIST_FILE, ACCESS_LEVELS_FILE } from '../authApi/authCommon';
|
|
import { initialiseRootCollections } from '../collectionApi/initialise';
|
|
import { initialiseIndex } from '../indexing/initialiseIndex';
|
|
import { getFlattenedHierarchy, isGlobalIndex, isSingleRecord } from '../templateApi/hierarchy';
|
|
|
|
|
|
export const initialiseData = async (datastore, applicationDefinition, accessLevels) => {
|
|
await datastore.createFolder(configFolder);
|
|
await datastore.createJson(appDefinitionFile, applicationDefinition);
|
|
|
|
await initialiseRootCollections(datastore, applicationDefinition.hierarchy);
|
|
await initialiseRootIndexes(datastore, applicationDefinition.hierarchy);
|
|
|
|
await initialiseRootSingleRecords(datastore, applicationDefinition.hierarchy);
|
|
|
|
await datastore.createFolder(TRANSACTIONS_FOLDER);
|
|
|
|
await datastore.createFolder(AUTH_FOLDER);
|
|
|
|
await datastore.createJson(USERS_LIST_FILE, []);
|
|
|
|
await datastore.createJson(
|
|
ACCESS_LEVELS_FILE,
|
|
accessLevels ? accessLevels : { version: 0, levels: [] });
|
|
};
|
|
|
|
const initialiseRootIndexes = async (datastore, hierarchy) => {
|
|
const flathierarchy = getFlattenedHierarchy(hierarchy);
|
|
const globalIndexes = $(flathierarchy, [
|
|
filter(isGlobalIndex),
|
|
]);
|
|
|
|
for (const index of globalIndexes) {
|
|
if (!await datastore.exists(index.nodeKey())) { await initialiseIndex(datastore, '', index); }
|
|
}
|
|
};
|
|
|
|
const initialiseRootSingleRecords = async (datastore, hierachy) => {
|
|
const flathierarchy = getFlattenedHierarchy(hierachy);
|
|
const singleRecords = $(flathierarchy, [
|
|
filter(isSingleRecord),
|
|
]);
|
|
|
|
/* for (let record of singleRecords) {
|
|
const result = getNew({ datastore: datastore, hierarchy: appDefinition.hierarchy })
|
|
(record.nodeKey(),
|
|
record.name
|
|
);
|
|
|
|
_save({ datastore: datastore, hierarchy: appDefinition.hierarchy },
|
|
result
|
|
);
|
|
} */
|
|
};
|