@accounter/server
Version:
Accounter GraphQL server
34 lines (32 loc) • 1.29 kB
text/typescript
import { GraphQLError } from 'graphql';
import { dateToTimelessDateString } from '../../../shared/helpers/index.js';
import { CorporateTaxesProvider } from '../providers/corporate-taxes.provider.js';
import type { CorporateTaxesModule } from '../types.js';
export const corporateTaxesResolvers: CorporateTaxesModule.Resolvers = {
Query: {
corporateTaxByDate: async (_, { date }, { injector }) => {
try {
return await injector
.get(CorporateTaxesProvider)
.getCorporateTaxesByDateLoader.load(date)
.then(res => {
if (!res) {
console.error(`Error fetching corporate taxes for date ${date}`);
throw new Error('Corporate tax not found');
}
return res;
});
} catch (e) {
console.error('Error fetching corporate taxes', e);
throw new GraphQLError((e as Error)?.message ?? 'Error fetching corporate taxes');
}
},
},
CorporateTax: {
id: corporateTax =>
`${corporateTax.corporate_id}|${dateToTimelessDateString(corporateTax.date)}`,
corporateId: corporateTax => corporateTax.corporate_id,
date: corporateTax => dateToTimelessDateString(corporateTax.date),
taxRate: corporateTax => Number(corporateTax.tax_rate),
},
};