feature(database-connection): First implementation

This commit is contained in:
2021-01-08 17:15:50 +01:00
parent bce2c8964e
commit ceea2a7616
15 changed files with 276 additions and 181 deletions

View File

@@ -0,0 +1,35 @@
import { Injectable } from '@nestjs/common';
import { PrismaClient } from '@prisma/client';
import logger from 'src/logger/Logger';
import { TableEntry } from 'src/models/TableEntry';
import { TimeTrackerPredicate } from './timetracking.predicate';
@Injectable()
export class DatabaseService {
// private host = process.env.MYSQL_HOST
// private port = process.env.MYSQL_PORT
// private credentials = {
// username: process.env.MYSQL_USERNAME,
// password: process.env.MYSQL_PASSWORD
// }
// private database = process.env.MYSQL_DATABASE
constructor(
private readonly prismaClient: PrismaClient,
private readonly timetrackerPredicate: TimeTrackerPredicate
) {}
public fetchStats(): Promise<TableEntry[]> {
return new Promise((resolve, reject) => {
this.prismaClient.timetracker.findMany({
include: {
user: true,
ranks: true
}
})
.then(this.timetrackerPredicate.process)
.then(result => resolve(result))
.catch(err => reject(err));
});
}
}