Files
twenty/server/src/core/view/services/view.service.ts
Ronit Panda 8639cb921e Chore: corrects syntax for type only imports (#1716)
* chore: removes replaces 'import type xxx from 'xxx'' with 'import { type xxx} from 'xxx'''

* chore: remove typed imports

* chore: remove typed imports

* chore: cleanup

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
2023-09-26 11:47:35 +02:00

69 lines
1.9 KiB
TypeScript

import { Injectable } from '@nestjs/common';
import { ViewType } from '@prisma/client';
import { PrismaService } from 'src/database/prisma.service';
import seedViews from 'src/core/view/seed-data/views.json';
@Injectable()
export class ViewService {
constructor(private readonly prismaService: PrismaService) {}
// Find
findFirst = this.prismaService.client.view.findFirst;
findFirstOrThrow = this.prismaService.client.view.findFirstOrThrow;
findUnique = this.prismaService.client.view.findUnique;
findUniqueOrThrow = this.prismaService.client.view.findUniqueOrThrow;
findMany = this.prismaService.client.view.findMany;
// Create
create = this.prismaService.client.view.create;
createMany = this.prismaService.client.view.createMany;
// Update
update = this.prismaService.client.view.update;
upsert = this.prismaService.client.view.upsert;
updateMany = this.prismaService.client.view.updateMany;
// Delete
delete = this.prismaService.client.view.delete;
deleteMany = this.prismaService.client.view.deleteMany;
// Aggregate
aggregate = this.prismaService.client.view.aggregate;
// Count
count = this.prismaService.client.view.count;
// GroupBy
groupBy = this.prismaService.client.view.groupBy;
// Custom
createDefaultViews({ workspaceId }: { workspaceId: string }) {
return Promise.all(
seedViews.map(async ({ fields, ...viewInput }) => {
const view = await this.create({
data: {
...viewInput,
type: viewInput.type as ViewType,
workspace: { connect: { id: workspaceId } },
},
});
await this.prismaService.client.viewField.createMany({
data: fields.map((viewField, index) => ({
...viewField,
index,
isVisible: true,
objectId: view.objectId,
viewId: view.id,
workspaceId,
})),
});
}),
);
}
}