UNPKG

@accounter/server

Version:

The test suite is split into three Vitest projects for efficiency and isolation:

204 lines • 16.2 kB
import { GraphQLError } from 'graphql'; import { dateToTimelessDateString } from '../../../shared/helpers/index.js'; 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: (_, { ownerId }, { injector, adminContext: { defaultAdminBusinessId } }) => injector .get(AdminContextProvider) .getAdminContextLoader.load(ownerId ?? defaultAdminBusinessId) .then(res => { if (!res) { const message = 'Admin context not found'; console.error(`${message} for owner id "${ownerId}"`); 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[0]) { throw new GraphQLError(`Error updating admin context`); } return res[0]; }) .catch(e => { if (e instanceof GraphQLError) { throw e; } console.error(JSON.stringify(e, null, 2)); throw new GraphQLError(`Error updating admin context`); }), }, AdminContext: { id: dbAdminContext => dbAdminContext.owner_id, ownerId: dbAdminContext => dbAdminContext.owner_id, defaultLocalCurrency: dbAdminContext => dbAdminContext.default_local_currency, defaultForeignCurrency: dbAdminContext => dbAdminContext.default_fiat_currency_for_crypto_conversions, defaultTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'defaultTaxCategory', dbAdminContext.default_tax_category_id), locality: dbAdminContext => dbAdminContext.locality, vatBusiness: async (dbAdminContext, _, { injector }) => fetchBusiness(injector, 'vatBusiness', dbAdminContext.vat_business_id), inputVatTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'inputVatTaxCategory', dbAdminContext.input_vat_tax_category_id), outputVatTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'outputVatTaxCategory', dbAdminContext.output_vat_tax_category_id), propertyOutputVatTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'propertyOutputVatTaxCategory', dbAdminContext.property_output_vat_tax_category_id), taxBusiness: async (dbAdminContext, _, { injector }) => fetchBusiness(injector, 'taxBusiness', dbAdminContext.tax_business_id), taxExpensesTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'taxExpensesTaxCategory', dbAdminContext.tax_expenses_tax_category_id), socialSecurityBusiness: async (dbAdminContext, _, { injector }) => fetchBusiness(injector, 'socialSecurityBusiness', dbAdminContext.social_security_business_id), exchangeRateTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'exchangeRateTaxCategory', dbAdminContext.exchange_rate_tax_category_id), incomeExchangeRateTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'incomeExchangeRateTaxCategory', dbAdminContext.income_exchange_rate_tax_category_id), exchangeRateRevaluationTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'exchangeRateRevaluationTaxCategory', dbAdminContext.exchange_rate_revaluation_tax_category_id), feeTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'feeTaxCategory', dbAdminContext.fee_tax_category_id), generalFeeTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'generalFeeTaxCategory', dbAdminContext.general_fee_tax_category_id), fineTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'fineTaxCategory', dbAdminContext.fine_tax_category_id), untaxableGiftsTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'untaxableGiftsTaxCategory', dbAdminContext.untaxable_gifts_tax_category_id), balanceCancellationTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'balanceCancellationTaxCategory', dbAdminContext.balance_cancellation_tax_category_id), developmentForeignTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'developmentForeignTaxCategory', dbAdminContext.development_foreign_tax_category_id), developmentLocalTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'developmentLocalTaxCategory', dbAdminContext.development_local_tax_category_id), accumulatedDepreciationTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.accumulated_depreciation_tax_category_id ? fetchTaxCategory(injector, 'accumulatedDepreciationTaxCategory', dbAdminContext.accumulated_depreciation_tax_category_id) : null, rndDepreciationExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.rnd_depreciation_expenses_tax_category_id ? fetchTaxCategory(injector, 'rndDepreciationExpensesTaxCategory', dbAdminContext.rnd_depreciation_expenses_tax_category_id) : null, gnmDepreciationExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.gnm_depreciation_expenses_tax_category_id ? fetchTaxCategory(injector, 'gnmDepreciationExpensesTaxCategory', dbAdminContext.gnm_depreciation_expenses_tax_category_id) : null, marketingDepreciationExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.marketing_depreciation_expenses_tax_category_id ? fetchTaxCategory(injector, 'marketingDepreciationExpensesTaxCategory', dbAdminContext.marketing_depreciation_expenses_tax_category_id) : null, bankDepositInterestIncomeTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.bank_deposit_interest_income_tax_category_id ? fetchTaxCategory(injector, 'bankDepositInterestIncomeTaxCategory', dbAdminContext.bank_deposit_interest_income_tax_category_id) : null, businessTripTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.business_trip_tax_category_id ? fetchTaxCategory(injector, 'businessTripTaxCategory', dbAdminContext.business_trip_tax_category_id) : null, businessTripTag: async (dbAdminContext, _, { injector }) => { if (!dbAdminContext.business_trip_tag_id) { return null; } return injector .get(TagsProvider) .getTagByIDLoader.load(dbAdminContext.business_trip_tag_id) .then(res => { if (!res) { throw new GraphQLError(`Business trip tag (with ID="${dbAdminContext.business_trip_tag_id}") 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.expenses_to_pay_tax_category_id), expensesInAdvanceTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'expensesInAdvanceTaxCategory', dbAdminContext.expenses_in_advance_tax_category_id), incomeToCollectTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'incomeToCollectTaxCategory', dbAdminContext.income_to_collect_tax_category_id), incomeInAdvanceTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.income_in_advance_tax_category_id ? fetchTaxCategory(injector, 'incomeInAdvanceTaxCategory', dbAdminContext.income_in_advance_tax_category_id) : null, zkufotExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.zkufot_expenses_tax_category_id ? fetchTaxCategory(injector, 'zkufotExpensesTaxCategory', dbAdminContext.zkufot_expenses_tax_category_id) : null, zkufotIncomeTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.zkufot_income_tax_category_id ? fetchTaxCategory(injector, 'zkufotIncomeTaxCategory', dbAdminContext.zkufot_income_tax_category_id) : null, socialSecurityExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.social_security_expenses_tax_category_id ? fetchTaxCategory(injector, 'socialSecurityExpensesTaxCategory', dbAdminContext.social_security_expenses_tax_category_id) : null, salaryExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.salary_expenses_tax_category_id ? fetchTaxCategory(injector, 'salaryExpensesTaxCategory', dbAdminContext.salary_expenses_tax_category_id) : null, trainingFundExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.training_fund_expenses_tax_category_id ? fetchTaxCategory(injector, 'trainingFundExpensesTaxCategory', dbAdminContext.training_fund_expenses_tax_category_id) : null, pensionFundExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.pension_fund_expenses_tax_category_id ? fetchTaxCategory(injector, 'pensionFundExpensesTaxCategory', dbAdminContext.pension_fund_expenses_tax_category_id) : null, compensationFundExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.compensation_fund_expenses_tax_category_id ? fetchTaxCategory(injector, 'compensationFundExpensesTaxCategory', dbAdminContext.compensation_fund_expenses_tax_category_id) : null, batchedEmployeesBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.batched_employees_business_id ? fetchBusiness(injector, 'batchedEmployeesBusiness', dbAdminContext.batched_employees_business_id) : null, batchedFundsBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.batched_funds_business_id ? fetchBusiness(injector, 'batchedFundsBusiness', dbAdminContext.batched_funds_business_id) : null, taxDeductionsBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.tax_deductions_business_id ? fetchBusiness(injector, 'taxDeductionsBusiness', dbAdminContext.tax_deductions_business_id) : null, recoveryReserveExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.recovery_reserve_expenses_tax_category_id ? fetchTaxCategory(injector, 'recoveryReserveExpensesTaxCategory', dbAdminContext.recovery_reserve_expenses_tax_category_id) : null, recoveryReserveTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.recovery_reserve_tax_category_id ? fetchTaxCategory(injector, 'recoveryReserveTaxCategory', dbAdminContext.recovery_reserve_tax_category_id) : null, vacationReserveExpensesTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.vacation_reserve_expenses_tax_category_id ? fetchTaxCategory(injector, 'vacationReserveExpensesTaxCategory', dbAdminContext.vacation_reserve_expenses_tax_category_id) : null, vacationReserveTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.vacation_reserve_tax_category_id ? fetchTaxCategory(injector, 'vacationReserveTaxCategory', dbAdminContext.vacation_reserve_tax_category_id) : null, poalimBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.poalim_business_id ? fetchBusiness(injector, 'poalimBusiness', dbAdminContext.poalim_business_id) : null, discountBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.discount_business_id ? fetchBusiness(injector, 'discountBusiness', dbAdminContext.discount_business_id) : null, isracardBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.isracard_business_id ? fetchBusiness(injector, 'isracardBusiness', dbAdminContext.isracard_business_id) : null, amexBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.amex_business_id ? fetchBusiness(injector, 'amexBusiness', dbAdminContext.amex_business_id) : null, calBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.cal_business_id ? fetchBusiness(injector, 'calBusiness', dbAdminContext.cal_business_id) : null, etanaBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.etana_business_id ? fetchBusiness(injector, 'etanaBusiness', dbAdminContext.etana_business_id) : null, krakenBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.kraken_business_id ? fetchBusiness(injector, 'krakenBusiness', dbAdminContext.kraken_business_id) : null, etherscanBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.etherscan_business_id ? fetchBusiness(injector, 'etherscanBusiness', dbAdminContext.etherscan_business_id) : null, swiftBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.swift_business_id ? fetchBusiness(injector, 'swiftBusiness', dbAdminContext.swift_business_id) : null, bankDepositBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.bank_deposit_business_id ? fetchBusiness(injector, 'bankDepositBusiness', dbAdminContext.bank_deposit_business_id) : null, dividendWithholdingTaxBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.dividend_withholding_tax_business_id ? fetchBusiness(injector, 'dividendWithholdingTaxBusiness', dbAdminContext.dividend_withholding_tax_business_id) : null, dividendTaxCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.dividend_tax_category_id ? fetchTaxCategory(injector, 'dividendTaxCategory', dbAdminContext.dividend_tax_category_id) : null, salaryExcessExpensesTaxCategory: async (dbAdminContext, _, { injector }) => fetchTaxCategory(injector, 'salaryExcessExpensesTaxCategory', dbAdminContext.salary_excess_expenses_tax_category_id), ledgerLock: dbAdminContext => dbAdminContext.ledger_lock ? dateToTimelessDateString(dbAdminContext.ledger_lock) : null, foreignSecuritiesBusiness: async (dbAdminContext, _, { injector }) => dbAdminContext.foreign_securities_business_id ? fetchBusiness(injector, 'foreignSecuritiesBusiness', dbAdminContext.foreign_securities_business_id) : null, foreignSecuritiesFeesCategory: async (dbAdminContext, _, { injector }) => dbAdminContext.foreign_securities_fees_category_id ? fetchTaxCategory(injector, 'foreignSecuritiesFeesCategory', dbAdminContext.foreign_securities_fees_category_id) : null, }, }; //# sourceMappingURL=admin-context.resolvers.js.map