@accounter/server
Version:
Accounter GraphQL server
211 lines • 17.6 kB
JavaScript
import { GraphQLError } from 'graphql';
import { TagsProvider } from '../../tags/providers/tags.provider.js';
import { fetchBusiness, fetchTaxCategory } from '../helpers/admin-context.helper.js';
import { AdminContextProvider } from '../providers/admin-context.provider.js';
export const adminContextResolvers = {
Query: {
adminContext: (_, __, { injector }) => injector
.get(AdminContextProvider)
.getVerifiedAdminContext()
.then(res => {
if (!res) {
const message = 'Admin context not found';
console.error(message);
throw new GraphQLError(message);
}
return res;
})
.catch(e => {
if (e instanceof GraphQLError) {
throw e;
}
console.error(JSON.stringify(e, null, 2));
throw new GraphQLError(`Error fetching admin context`);
}),
},
Mutation: {
updateAdminContext: (_, { context }, { injector }) => injector
.get(AdminContextProvider)
.updateAdminContext({
...context,
})
.then(res => {
if (!res) {
throw new GraphQLError(`Error updating admin context`);
}
return res;
})
.catch(e => {
if (e instanceof GraphQLError) {
throw e;
}
console.error(JSON.stringify(e, null, 2));
throw new GraphQLError(`Error updating admin context`);
}),
},
AdminContextInfo: {
id: dbAdminContext => dbAdminContext.ownerId,
ownerId: dbAdminContext => dbAdminContext.ownerId,
defaultLocalCurrency: dbAdminContext => dbAdminContext.defaultLocalCurrency,
defaultForeignCurrency: dbAdminContext => dbAdminContext.defaultCryptoConversionFiatCurrency,
defaultTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'defaultTaxCategory', dbAdminContext.defaultTaxCategoryId),
locality: dbAdminContext => dbAdminContext.locality,
vatBusiness: async (dbAdminContext, _, { injector }) => fetchBusiness(injector, 'vatBusiness', dbAdminContext.authorities.vatBusinessId),
inputVatTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'inputVatTaxCategory', dbAdminContext.authorities.inputVatTaxCategoryId),
outputVatTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'outputVatTaxCategory', dbAdminContext.authorities.outputVatTaxCategoryId),
propertyOutputVatTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'propertyOutputVatTaxCategory', dbAdminContext.authorities.propertyOutputVatTaxCategoryId),
taxBusiness: async (dbAdminContext, _, { injector }) => fetchBusiness(injector, 'taxBusiness', dbAdminContext.authorities.taxBusinessId),
taxExpensesTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'taxExpensesTaxCategory', dbAdminContext.authorities.taxExpensesTaxCategoryId),
socialSecurityBusiness: async (dbAdminContext, _, { injector }) => fetchBusiness(injector, 'socialSecurityBusiness', dbAdminContext.authorities.socialSecurityBusinessId),
exchangeRateTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'exchangeRateTaxCategory', dbAdminContext.general.taxCategories.exchangeRateTaxCategoryId),
incomeExchangeRateTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'incomeExchangeRateTaxCategory', dbAdminContext.general.taxCategories.incomeExchangeRateTaxCategoryId),
exchangeRateRevaluationTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'exchangeRateRevaluationTaxCategory', dbAdminContext.general.taxCategories.exchangeRevaluationTaxCategoryId),
feeTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'feeTaxCategory', dbAdminContext.general.taxCategories.feeTaxCategoryId),
generalFeeTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'generalFeeTaxCategory', dbAdminContext.general.taxCategories.generalFeeTaxCategoryId),
fineTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'fineTaxCategory', dbAdminContext.general.taxCategories.fineTaxCategoryId),
untaxableGiftsTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'untaxableGiftsTaxCategory', dbAdminContext.general.taxCategories.untaxableGiftsTaxCategoryId),
balanceCancellationTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'balanceCancellationTaxCategory', dbAdminContext.general.taxCategories.balanceCancellationTaxCategoryId),
developmentForeignTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'developmentForeignTaxCategory', dbAdminContext.general.taxCategories.developmentForeignTaxCategoryId),
developmentLocalTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'developmentLocalTaxCategory', dbAdminContext.general.taxCategories.developmentLocalTaxCategoryId),
accumulatedDepreciationTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.depreciation.accumulatedDepreciationTaxCategoryId
? fetchTaxCategory(injector, 'accumulatedDepreciationTaxCategory', dbAdminContext.depreciation.accumulatedDepreciationTaxCategoryId)
: null,
rndDepreciationExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.depreciation.rndDepreciationExpensesTaxCategoryId
? fetchTaxCategory(injector, 'rndDepreciationExpensesTaxCategory', dbAdminContext.depreciation.rndDepreciationExpensesTaxCategoryId)
: null,
gnmDepreciationExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.depreciation.gnmDepreciationExpensesTaxCategoryId
? fetchTaxCategory(injector, 'gnmDepreciationExpensesTaxCategory', dbAdminContext.depreciation.gnmDepreciationExpensesTaxCategoryId)
: null,
marketingDepreciationExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.depreciation.marketingDepreciationExpensesTaxCategoryId
? fetchTaxCategory(injector, 'marketingDepreciationExpensesTaxCategory', dbAdminContext.depreciation.marketingDepreciationExpensesTaxCategoryId)
: null,
bankDepositInterestIncomeTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.bankDeposits.bankDepositInterestIncomeTaxCategoryId
? fetchTaxCategory(injector, 'bankDepositInterestIncomeTaxCategory', dbAdminContext.bankDeposits.bankDepositInterestIncomeTaxCategoryId)
: null,
businessTripTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.businessTrips.businessTripTaxCategoryId
? fetchTaxCategory(injector, 'businessTripTaxCategory', dbAdminContext.businessTrips.businessTripTaxCategoryId)
: null,
businessTripTag: async (dbAdminContext, _, { injector }) => {
if (!dbAdminContext.businessTrips.businessTripTagId) {
return null;
}
return injector
.get(TagsProvider)
.getTagByIDLoader.load(dbAdminContext.businessTrips.businessTripTagId)
.then(res => {
if (!res) {
throw new GraphQLError(`Business trip tag (with ID="${dbAdminContext.businessTrips.businessTripTagId}") not found`);
}
return res;
})
.catch(e => {
if (e instanceof GraphQLError) {
throw e;
}
console.error(JSON.stringify(e, null, 2));
throw new GraphQLError(`Error fetching business trip tag`);
});
},
expensesToPayTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'expensesToPayTaxCategory', dbAdminContext.crossYear.expensesToPayTaxCategoryId),
expensesInAdvanceTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'expensesInAdvanceTaxCategory', dbAdminContext.crossYear.expensesInAdvanceTaxCategoryId),
incomeToCollectTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'incomeToCollectTaxCategory', dbAdminContext.crossYear.incomeToCollectTaxCategoryId),
incomeInAdvanceTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.crossYear.incomeInAdvanceTaxCategoryId
? fetchTaxCategory(injector, 'incomeInAdvanceTaxCategory', dbAdminContext.crossYear.incomeInAdvanceTaxCategoryId)
: null,
zkufotExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.salaries.zkufotExpensesTaxCategoryId
? fetchTaxCategory(injector, 'zkufotExpensesTaxCategory', dbAdminContext.salaries.zkufotExpensesTaxCategoryId)
: null,
zkufotIncomeTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.salaries.zkufotIncomeTaxCategoryId
? fetchTaxCategory(injector, 'zkufotIncomeTaxCategory', dbAdminContext.salaries.zkufotIncomeTaxCategoryId)
: null,
socialSecurityExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.salaries.socialSecurityExpensesTaxCategoryId
? fetchTaxCategory(injector, 'socialSecurityExpensesTaxCategory', dbAdminContext.salaries.socialSecurityExpensesTaxCategoryId)
: null,
salaryExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.salaries.salaryExpensesTaxCategoryId
? fetchTaxCategory(injector, 'salaryExpensesTaxCategory', dbAdminContext.salaries.salaryExpensesTaxCategoryId)
: null,
trainingFundExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.salaries.trainingFundExpensesTaxCategoryId
? fetchTaxCategory(injector, 'trainingFundExpensesTaxCategory', dbAdminContext.salaries.trainingFundExpensesTaxCategoryId)
: null,
pensionFundExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.salaries.pensionExpensesTaxCategoryId
? fetchTaxCategory(injector, 'pensionFundExpensesTaxCategory', dbAdminContext.salaries.pensionExpensesTaxCategoryId)
: null,
compensationFundExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.salaries.compensationFundExpensesTaxCategoryId
? fetchTaxCategory(injector, 'compensationFundExpensesTaxCategory', dbAdminContext.salaries.compensationFundExpensesTaxCategoryId)
: null,
batchedEmployeesBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.salaries.batchedEmployeesBusinessId
? fetchBusiness(injector, 'batchedEmployeesBusiness', dbAdminContext.salaries.batchedEmployeesBusinessId)
: null,
batchedFundsBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.salaries.batchedFundsBusinessId
? fetchBusiness(injector, 'batchedFundsBusiness', dbAdminContext.salaries.batchedFundsBusinessId)
: null,
taxDeductionsBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.salaries.taxDeductionsBusinessId
? fetchBusiness(injector, 'taxDeductionsBusiness', dbAdminContext.salaries.taxDeductionsBusinessId)
: null,
recoveryReserveExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.salaries.recoveryReserveExpensesTaxCategoryId
? fetchTaxCategory(injector, 'recoveryReserveExpensesTaxCategory', dbAdminContext.salaries.recoveryReserveExpensesTaxCategoryId)
: null,
recoveryReserveTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.salaries.recoveryReserveTaxCategoryId
? fetchTaxCategory(injector, 'recoveryReserveTaxCategory', dbAdminContext.salaries.recoveryReserveTaxCategoryId)
: null,
vacationReserveExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.salaries.vacationReserveExpensesTaxCategoryId
? fetchTaxCategory(injector, 'vacationReserveExpensesTaxCategory', dbAdminContext.salaries.vacationReserveExpensesTaxCategoryId)
: null,
vacationReserveTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.salaries.vacationReserveTaxCategoryId
? fetchTaxCategory(injector, 'vacationReserveTaxCategory', dbAdminContext.salaries.vacationReserveTaxCategoryId)
: null,
poalimBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.financialAccounts.poalimBusinessId
? fetchBusiness(injector, 'poalimBusiness', dbAdminContext.financialAccounts.poalimBusinessId)
: null,
discountBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.financialAccounts.discountBusinessId
? fetchBusiness(injector, 'discountBusiness', dbAdminContext.financialAccounts.discountBusinessId)
: null,
otsarHahayalBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.financialAccounts.otsarHahayalBusinessId
? fetchBusiness(injector, 'otsarHahayalBusiness', dbAdminContext.financialAccounts.otsarHahayalBusinessId)
: null,
isracardBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.financialAccounts.isracardBusinessId
? fetchBusiness(injector, 'isracardBusiness', dbAdminContext.financialAccounts.isracardBusinessId)
: null,
amexBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.financialAccounts.amexBusinessId
? fetchBusiness(injector, 'amexBusiness', dbAdminContext.financialAccounts.amexBusinessId)
: null,
calBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.financialAccounts.calBusinessId
? fetchBusiness(injector, 'calBusiness', dbAdminContext.financialAccounts.calBusinessId)
: null,
otsarHahayalCreditCardBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.financialAccounts.otsarHahayalCreditCardBusinessId
? fetchBusiness(injector, 'otsarHahayalCreditCardBusiness', dbAdminContext.financialAccounts.otsarHahayalCreditCardBusinessId)
: null,
etanaBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.financialAccounts.etanaBusinessId
? fetchBusiness(injector, 'etanaBusiness', dbAdminContext.financialAccounts.etanaBusinessId)
: null,
krakenBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.financialAccounts.krakenBusinessId
? fetchBusiness(injector, 'krakenBusiness', dbAdminContext.financialAccounts.krakenBusinessId)
: null,
etherscanBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.financialAccounts.etherScanBusinessId
? fetchBusiness(injector, 'etherscanBusiness', dbAdminContext.financialAccounts.etherScanBusinessId)
: null,
swiftBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.financialAccounts.swiftBusinessId
? fetchBusiness(injector, 'swiftBusiness', dbAdminContext.financialAccounts.swiftBusinessId)
: null,
bankDepositBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.bankDeposits.bankDepositBusinessId
? fetchBusiness(injector, 'bankDepositBusiness', dbAdminContext.bankDeposits.bankDepositBusinessId)
: null,
dividendWithholdingTaxBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.dividends.dividendWithholdingTaxBusinessId
? fetchBusiness(injector, 'dividendWithholdingTaxBusiness', dbAdminContext.dividends.dividendWithholdingTaxBusinessId)
: null,
dividendTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.dividends.dividendTaxCategoryId
? fetchTaxCategory(injector, 'dividendTaxCategory', dbAdminContext.dividends.dividendTaxCategoryId)
: null,
salaryExcessExpensesTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'salaryExcessExpensesTaxCategory', dbAdminContext.general.taxCategories.salaryExcessExpensesTaxCategoryId),
ledgerLock: dbAdminContext => dbAdminContext.ledgerLock ?? null,
dateEstablished: dbAdminContext => dbAdminContext.dateEstablished ?? null,
initialAccounterYear: dbAdminContext => dbAdminContext.initialAccounterYear ?? null,
foreignSecuritiesBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.foreignSecurities.foreignSecuritiesBusinessId
? fetchBusiness(injector, 'foreignSecuritiesBusiness', dbAdminContext.foreignSecurities.foreignSecuritiesBusinessId)
: null,
foreignSecuritiesFeesCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.foreignSecurities.foreignSecuritiesFeesCategoryId
? fetchTaxCategory(injector, 'foreignSecuritiesFeesCategory', dbAdminContext.foreignSecurities.foreignSecuritiesFeesCategoryId)
: null,
},
};
//# sourceMappingURL=admin-context.resolvers.js.map