23 lines
1.0 KiB
TypeScript
23 lines
1.0 KiB
TypeScript
import * as TypeGraphQL from "type-graphql";
|
|
import type { GraphQLResolveInfo } from "graphql";
|
|
import { GroupByCompanyArgs } from "./args/GroupByCompanyArgs";
|
|
import { Company } from "../../../models/Company";
|
|
import { CompanyGroupBy } from "../../outputs/CompanyGroupBy";
|
|
import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers";
|
|
|
|
@TypeGraphQL.Resolver(_of => Company)
|
|
export class GroupByCompanyResolver {
|
|
@TypeGraphQL.Query(_returns => [CompanyGroupBy], {
|
|
nullable: false
|
|
})
|
|
async groupByCompany(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: GroupByCompanyArgs): Promise<CompanyGroupBy[]> {
|
|
const { _count, _avg, _sum, _min, _max } = transformInfoIntoPrismaArgs(info);
|
|
return getPrismaFromContext(ctx).company.groupBy({
|
|
...args,
|
|
...Object.fromEntries(
|
|
Object.entries({ _count, _avg, _sum, _min, _max }).filter(([_, v]) => v != null)
|
|
),
|
|
});
|
|
}
|
|
}
|