Files
bigcapital/server/src/services/Settings/SettingsService.ts
a.bouhuolia 1f6aca63e2 fix(Items): Remove bulk actions.
fix(Settings): Parse the fetched settings from the storage.
2021-03-22 11:35:21 +02:00

54 lines
1.3 KiB
TypeScript

import { Service, Inject } from 'typedi';
import TenancyService from 'services/Tenancy/TenancyService';
@Service()
export default class SettingsService {
@Inject()
tenancy: TenancyService;
@Inject('logger')
logger: any;
/**
* Increment next number based on the given find query.
* @param {number} tenantId
* @param {any} findQuery
*/
async incrementNextNumber(tenantId: number, findQuery: any): Promise<void> {
const settings = this.tenancy.settings(tenantId);
this.logger.info('[settings] increment the next number.', {
tenantId,
findQuery,
});
const currentNumber = settings.find(findQuery);
if (currentNumber) {
const nextNumber = parseInt(currentNumber.value, 10) + 1;
settings.set(findQuery, nextNumber);
await settings.save();
}
}
/**
* Validates the given options is defined or either not.
* @param {Array} options
* @return {Boolean}
*/
validateNotDefinedSettings(tenantId: number, options) {
const notDefined = [];
const settings = this.tenancy.settings(tenantId);
options.forEach((option) => {
const setting = settings.config.getMetaConfig(option.key, option.group);
if (!setting) {
notDefined.push(option);
}
});
return notDefined;
}
}