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 { const model = new VatClassModel(); return getOneGeneric(model, id, ctx); } @Query(() => [VatClassModel]) @Authorized([AccountTypeEnum.admin]) async vatClassGetMany(@Args() args: VatClassArgs, @Ctx() ctx: ApolloContext): Promise { const model = new VatClassModel(); const q: FilterQuery = {}; return model.getMany(q, args.pagination, ctx); } /* ███╗ ███╗██╗ ██╗████████╗ █████╗ ████████╗ ██████╗ ██████╗ ███████╗ ████╗ ████║██║ ██║╚══██╔══╝██╔══██╗╚══██╔══╝██╔═══██╗██╔══██╗██╔════╝ ██╔████╔██║██║ ██║ ██║ ███████║ ██║ ██║ ██║██████╔╝███████╗ ██║╚██╔╝██║██║ ██║ ██║ ██╔══██║ ██║ ██║ ██║██╔══██╗╚════██║ ██║ ╚═╝ ██║╚██████╔╝ ██║ ██║ ██║ ██║ ╚██████╔╝██║ ██║███████║ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ */ @Mutation(() => VatClassModel) @Authorized([AccountTypeEnum.admin]) async vatClassAddOne(@Arg('input') input: NewVatClassInput, @Ctx() ctx: ApolloContext): Promise { 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 { 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 { const model = new VatClassModel(); return deleteOneGeneric(model, id, ctx); } }