|
123456789101112131415161718192021222324252627282930313233 |
- import { Prisma, PrismaClient } from '@prisma/client';
- import {User} from '../common';
- import {Log, LogParameterData} from './models';
-
- export interface LogService {
- create(subject: User, action: string, ...parameters: LogParameterData[]): Promise<Log>
- }
-
- export class LogServiceImpl implements LogService {
- private readonly prismaClient: PrismaClient
-
- constructor() {
- this.prismaClient = new PrismaClient()
- }
-
- async create(subject: User, action: string, ...parameters: LogParameterData[]): Promise<Log> {
- const createData: Prisma.LogCreateInput = {
- subjectUsername: subject.username,
- subjectUserId: subject.id,
- action,
- }
-
- if (parameters.length > 0) {
- createData['parameters'] = {
- create: parameters,
- }
- }
-
- return this.prismaClient.log.create({
- data: createData,
- })
- }
- }
|