feature(database-connection): First implementation
This commit is contained in:
35
backend/src/database/database.service.ts
Normal file
35
backend/src/database/database.service.ts
Normal 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));
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user