72 lines
4.2 KiB
TypeScript
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);
|
|
}
|
|
}
|