backend/services/module-payments/functions/vat/vat.resolver.admin.ts
2025-05-14 21:45:16 +02:00

72 lines
4.2 KiB
TypeScript

import { Resolver, Query, FieldResolver, Root, Arg, Mutation, Ctx, Args, Authorized, ResolverInterface } from 'type-graphql';
import { v4 as uuid } from 'uuid';
import _ from 'lodash';
import { FilterQuery } from 'mongodb';
import { ApolloError } from 'apollo-server-lambda';
import VatClassModel, { VatClassArgs, NewVatClassInput, EditVatClassInput } from './vat.model';
import { ApolloContext } from '@seed/interfaces/context';
import { createBaseResolver } from '@seed/graphql/baseResolvers/BaseResolver';
import { AccountTypeEnum } from '@src/accounts/account.components';
import { getOneGeneric, addOneGeneric, editOneGeneric, deleteOneGeneric, permissionsAddOne, permissionsRemoveOne } from '@seed/graphql/BaseService';
// const VatBaseResolver = createBaseResolver('Vat', VatModel, VatArgs, NewVatInput, EditVatInput, [AccountTypeEnum.admin]);
@Resolver(VatClassModel)
export default class VatAdminResolver {
/*
██████╗ ██╗ ██╗███████╗██████╗ ██╗ ██╗
██╔═══██╗██║ ██║██╔════╝██╔══██╗╚██╗ ██╔╝
██║ ██║██║ ██║█████╗ ██████╔╝ ╚████╔╝
██║▄▄ ██║██║ ██║██╔══╝ ██╔══██╗ ╚██╔╝
╚██████╔╝╚██████╔╝███████╗██║ ██║ ██║
╚══▀▀═╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝ ╚═╝
*/
@Query(() => VatClassModel)
@Authorized([AccountTypeEnum.admin])
async vatClassGetOne(@Arg('id') id: string, @Ctx() ctx: ApolloContext): Promise<VatClassModel> {
const model = new VatClassModel();
return getOneGeneric(model, id, ctx);
}
@Query(() => [VatClassModel])
@Authorized([AccountTypeEnum.admin])
async vatClassGetMany(@Args() args: VatClassArgs, @Ctx() ctx: ApolloContext): Promise<VatClassModel[]> {
const model = new VatClassModel();
const q: FilterQuery<VatClassModel> = {};
return model.getMany(q, args.pagination, ctx);
}
/*
███╗ ███╗██╗ ██╗████████╗ █████╗ ████████╗ ██████╗ ██████╗ ███████╗
████╗ ████║██║ ██║╚══██╔══╝██╔══██╗╚══██╔══╝██╔═══██╗██╔══██╗██╔════╝
██╔████╔██║██║ ██║ ██║ ███████║ ██║ ██║ ██║██████╔╝███████╗
██║╚██╔╝██║██║ ██║ ██║ ██╔══██║ ██║ ██║ ██║██╔══██╗╚════██║
██║ ╚═╝ ██║╚██████╔╝ ██║ ██║ ██║ ██║ ╚██████╔╝██║ ██║███████║
╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝
*/
@Mutation(() => VatClassModel)
@Authorized([AccountTypeEnum.admin])
async vatClassAddOne(@Arg('input') input: NewVatClassInput, @Ctx() ctx: ApolloContext): Promise<VatClassModel> {
const model = new VatClassModel();
return addOneGeneric(model, input, ctx);
}
@Mutation(() => VatClassModel)
@Authorized([AccountTypeEnum.admin])
async vatClassEditOne(@Arg('id') id: string, @Arg('input') input: EditVatClassInput, @Ctx() ctx: ApolloContext): Promise<VatClassModel> {
const model = new VatClassModel();
return editOneGeneric(model, id, input, ctx);
}
@Mutation(() => VatClassModel)
@Authorized([AccountTypeEnum.admin])
async vatClassDeleteOne(@Arg('id') id: string, @Ctx() ctx: ApolloContext): Promise<VatClassModel> {
const model = new VatClassModel();
return deleteOneGeneric(model, id, ctx);
}
}