Current state
This commit is contained in:
@ -1,8 +1,10 @@
|
||||
import { PrismaClient } from '@prisma/client'; // Database
|
||||
import config from "./config.js";
|
||||
import { PrismaClient, Prisma } from '@prisma/client'; // Database
|
||||
import { Response } from 'express';
|
||||
import config from './config.js';
|
||||
import log from './log.js';
|
||||
|
||||
// TODO: Add errorhandling with some sort of message.
|
||||
export const prisma = new PrismaClient({
|
||||
const prisma = new PrismaClient({
|
||||
datasources: {
|
||||
db: {
|
||||
url: config.global.db_connection_string
|
||||
@ -10,3 +12,75 @@ export const prisma = new PrismaClient({
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// FIXME: any
|
||||
export function handlePrismaError(errorObj: any, res: Response) {
|
||||
|
||||
log.core.debug(errorObj);
|
||||
res.status(500).json({ status: 'ERROR', meta: errorObj.meta, errorcode: errorObj.code, message: errorObj.message });
|
||||
|
||||
|
||||
// if(errorObj instanceof Prisma.PrismaClientKnownRequestError)
|
||||
|
||||
// switch (errorObj.code) {
|
||||
// // P2002 -> "Unique constraint failed on the {constraint}"
|
||||
// // https://www.prisma.io/docs/reference/api-reference/error-reference
|
||||
// case 'P2002': //
|
||||
// log.db.error('');
|
||||
// break;
|
||||
|
||||
|
||||
// // P2003 -> "Foreign key constraint failed on the field: {field_name}"
|
||||
// // https://www.prisma.io/docs/reference/api-reference/error-reference
|
||||
// // FIXME: Is this errormessage right?
|
||||
// case 'P2003': //
|
||||
// log.db.error('');
|
||||
// break;
|
||||
// case 'xxx': //
|
||||
// log.db.error('');
|
||||
// break;
|
||||
// case 'xxx':
|
||||
// log.db.error('');
|
||||
// break;
|
||||
// case 'xxx':
|
||||
// log.db.error('');
|
||||
// break;
|
||||
// case 'xxx':
|
||||
// log.db.error('');
|
||||
// break;
|
||||
// case 'xxx':
|
||||
// log.db.error('');
|
||||
// break;
|
||||
// case 'xxx':
|
||||
// log.db.error('');
|
||||
// break;
|
||||
// case 'xxx':
|
||||
// log.db.error('');
|
||||
// break;
|
||||
|
||||
|
||||
// default:
|
||||
// break;
|
||||
// }
|
||||
|
||||
// // Check if an entry already exists.
|
||||
// if (errorcode === 'P2002') {
|
||||
// // P2002 -> "Unique constraint failed on the {constraint}"
|
||||
// // https://www.prisma.io/docs/reference/api-reference/error-reference
|
||||
// res.status(409).json({ status: 'ERROR', errorcode: 'EXISTING', message: 'Item already exists' });
|
||||
// } else if (errorcode == 'P2003') {
|
||||
// // P2003 -> "Foreign key constraint failed on the field: {field_name}"
|
||||
// // https://www.prisma.io/docs/reference/api-reference/error-reference
|
||||
// // FIXME: Is this errormessage right?
|
||||
// res.status(404).json({ status: 'ERROR', errorcode: 'NOT_EXISTING', message: 'Item does not exist' });
|
||||
// } else if (errorcode == 'P2000') {
|
||||
// // P2000 -> "The provided value for the column is too long for the column's type. Column: {column_name}"
|
||||
// // https://www.prisma.io/docs/reference/api-reference/error-reference
|
||||
// res.status(404).json({ status: 'ERROR', errorcode: 'VALIDATION_ERROR', message: 'One or more fields exceed the maximum length restriction' });
|
||||
// } else {
|
||||
// log.db.error(err);
|
||||
// res.status(500).json({ status: 'ERROR', errorcode: 'DB_ERROR', error: err, message: 'An error occurred during the database operation' });
|
||||
// }
|
||||
}
|
||||
|
||||
export default prisma;
|
||||
|
Reference in New Issue
Block a user