oom issue
This commit is contained in:
@@ -52,7 +52,10 @@ export class UserRepository {
|
||||
);
|
||||
return res.rows[0];
|
||||
} catch (error) {
|
||||
logger.error({ err: error, email }, 'Database error in findUserByEmail');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error, email },
|
||||
'Database error in findUserByEmail',
|
||||
);
|
||||
throw new Error('Failed to retrieve user from database.');
|
||||
}
|
||||
}
|
||||
@@ -127,7 +130,10 @@ export class UserRepository {
|
||||
throw new UniqueConstraintError('A user with this email address already exists.');
|
||||
}
|
||||
// The withTransaction helper logs the rollback, so we just log the context here.
|
||||
logger.error({ err: error, email }, 'Error during createUser transaction');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error, email },
|
||||
'Error during createUser transaction',
|
||||
);
|
||||
throw new Error('Failed to create user in database.');
|
||||
});
|
||||
}
|
||||
@@ -182,7 +188,10 @@ export class UserRepository {
|
||||
|
||||
return authableProfile;
|
||||
} catch (error) {
|
||||
logger.error({ err: error, email }, 'Database error in findUserWithProfileByEmail');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error, email },
|
||||
'Database error in findUserWithProfileByEmail',
|
||||
);
|
||||
throw new Error('Failed to retrieve user with profile from database.');
|
||||
}
|
||||
}
|
||||
@@ -205,7 +214,10 @@ export class UserRepository {
|
||||
return res.rows[0];
|
||||
} catch (error) {
|
||||
if (error instanceof NotFoundError) throw error;
|
||||
logger.error({ err: error, userId }, 'Database error in findUserById');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error, userId },
|
||||
'Database error in findUserById',
|
||||
);
|
||||
throw new Error('Failed to retrieve user by ID from database.');
|
||||
}
|
||||
}
|
||||
@@ -229,7 +241,10 @@ export class UserRepository {
|
||||
return res.rows[0];
|
||||
} catch (error) {
|
||||
if (error instanceof NotFoundError) throw error;
|
||||
logger.error({ err: error, userId }, 'Database error in findUserWithPasswordHashById');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error, userId },
|
||||
'Database error in findUserWithPasswordHashById',
|
||||
);
|
||||
throw new Error('Failed to retrieve user with sensitive data by ID from database.');
|
||||
}
|
||||
}
|
||||
@@ -275,7 +290,10 @@ export class UserRepository {
|
||||
if (error instanceof NotFoundError) {
|
||||
throw error;
|
||||
}
|
||||
logger.error({ err: error, userId }, 'Database error in findUserProfileById');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error, userId },
|
||||
'Database error in findUserProfileById',
|
||||
);
|
||||
throw new Error('Failed to retrieve user profile from database.');
|
||||
}
|
||||
}
|
||||
@@ -321,7 +339,10 @@ export class UserRepository {
|
||||
if (error instanceof NotFoundError) {
|
||||
throw error;
|
||||
}
|
||||
logger.error({ err: error, userId, profileData }, 'Database error in updateUserProfile');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error, userId, profileData },
|
||||
'Database error in updateUserProfile',
|
||||
);
|
||||
throw new Error('Failed to update user profile in database.');
|
||||
}
|
||||
}
|
||||
@@ -350,7 +371,10 @@ export class UserRepository {
|
||||
if (error instanceof NotFoundError) {
|
||||
throw error;
|
||||
}
|
||||
logger.error({ err: error, userId, preferences }, 'Database error in updateUserPreferences');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error, userId, preferences },
|
||||
'Database error in updateUserPreferences',
|
||||
);
|
||||
throw new Error('Failed to update user preferences in database.');
|
||||
}
|
||||
}
|
||||
@@ -368,7 +392,10 @@ export class UserRepository {
|
||||
[passwordHash, userId]
|
||||
);
|
||||
} catch (error) {
|
||||
logger.error({ err: error, userId }, 'Database error in updateUserPassword');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error, userId },
|
||||
'Database error in updateUserPassword',
|
||||
);
|
||||
throw new Error('Failed to update user password in database.');
|
||||
}
|
||||
}
|
||||
@@ -382,7 +409,10 @@ export class UserRepository {
|
||||
try {
|
||||
await this.db.query('DELETE FROM public.users WHERE user_id = $1', [userId]);
|
||||
} catch (error) {
|
||||
logger.error({ err: error, userId }, 'Database error in deleteUserById');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error, userId },
|
||||
'Database error in deleteUserById',
|
||||
);
|
||||
throw new Error('Failed to delete user from database.');
|
||||
}
|
||||
}
|
||||
@@ -400,7 +430,10 @@ export class UserRepository {
|
||||
[refreshToken, userId]
|
||||
);
|
||||
} catch (error) {
|
||||
logger.error({ err: error, userId }, 'Database error in saveRefreshToken');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error, userId },
|
||||
'Database error in saveRefreshToken',
|
||||
);
|
||||
throw new Error('Failed to save refresh token.');
|
||||
}
|
||||
}
|
||||
@@ -423,7 +456,10 @@ export class UserRepository {
|
||||
return res.rows[0];
|
||||
} catch (error) {
|
||||
if (error instanceof NotFoundError) throw error;
|
||||
logger.error({ err: error }, 'Database error in findUserByRefreshToken');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error },
|
||||
'Database error in findUserByRefreshToken',
|
||||
);
|
||||
throw new Error('Failed to find user by refresh token.'); // Generic error for other failures
|
||||
}
|
||||
}
|
||||
@@ -438,7 +474,10 @@ export class UserRepository {
|
||||
refreshToken,
|
||||
]);
|
||||
} catch (error) {
|
||||
logger.error({ err: error }, 'Database error in deleteRefreshToken');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error },
|
||||
'Database error in deleteRefreshToken',
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -461,7 +500,10 @@ export class UserRepository {
|
||||
if (error instanceof Error && 'code' in error && error.code === '23503') {
|
||||
throw new ForeignKeyConstraintError('The specified user does not exist.');
|
||||
}
|
||||
logger.error({ err: error, userId }, 'Database error in createPasswordResetToken');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error, userId },
|
||||
'Database error in createPasswordResetToken',
|
||||
);
|
||||
throw new Error('Failed to create password reset token.');
|
||||
}
|
||||
}
|
||||
@@ -478,7 +520,10 @@ export class UserRepository {
|
||||
);
|
||||
return res.rows;
|
||||
} catch (error) {
|
||||
logger.error({ err: error }, 'Database error in getValidResetTokens');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error },
|
||||
'Database error in getValidResetTokens',
|
||||
);
|
||||
throw new Error('Failed to retrieve valid reset tokens.');
|
||||
}
|
||||
}
|
||||
@@ -492,7 +537,10 @@ export class UserRepository {
|
||||
try {
|
||||
await this.db.query('DELETE FROM public.password_reset_tokens WHERE token_hash = $1', [tokenHash]);
|
||||
} catch (error) {
|
||||
logger.error({ err: error, tokenHash }, 'Database error in deleteResetToken');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error, tokenHash },
|
||||
'Database error in deleteResetToken',
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -511,7 +559,10 @@ export class UserRepository {
|
||||
);
|
||||
return res.rowCount ?? 0;
|
||||
} catch (error) {
|
||||
logger.error({ err: error }, 'Database error in deleteExpiredResetTokens');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error },
|
||||
'Database error in deleteExpiredResetTokens',
|
||||
);
|
||||
throw new Error('Failed to delete expired password reset tokens.');
|
||||
}
|
||||
}
|
||||
@@ -530,7 +581,10 @@ export class UserRepository {
|
||||
if (error instanceof Error && 'code' in error && error.code === '23503') {
|
||||
throw new ForeignKeyConstraintError('One or both users do not exist.');
|
||||
}
|
||||
logger.error({ err: error, followerId, followingId }, 'Database error in followUser');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error, followerId, followingId },
|
||||
'Database error in followUser',
|
||||
);
|
||||
throw new Error('Failed to follow user.');
|
||||
}
|
||||
}
|
||||
@@ -547,7 +601,10 @@ export class UserRepository {
|
||||
[followerId, followingId],
|
||||
);
|
||||
} catch (error) {
|
||||
logger.error({ err: error, followerId, followingId }, 'Database error in unfollowUser');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error, followerId, followingId },
|
||||
'Database error in unfollowUser',
|
||||
);
|
||||
throw new Error('Failed to unfollow user.');
|
||||
}
|
||||
}
|
||||
@@ -578,7 +635,10 @@ export class UserRepository {
|
||||
const res = await this.db.query<ActivityLogItem>(query, [userId, limit, offset]);
|
||||
return res.rows;
|
||||
} catch (error) {
|
||||
logger.error({ err: error, userId, limit, offset }, 'Database error in getUserFeed');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error, userId, limit, offset },
|
||||
'Database error in getUserFeed',
|
||||
);
|
||||
throw new Error('Failed to retrieve user feed.');
|
||||
}
|
||||
}
|
||||
@@ -600,7 +660,10 @@ export class UserRepository {
|
||||
);
|
||||
return res.rows[0];
|
||||
} catch (error) {
|
||||
logger.error({ err: error, queryData }, 'Database error in logSearchQuery');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error, queryData },
|
||||
'Database error in logSearchQuery',
|
||||
);
|
||||
throw new Error('Failed to log search query.');
|
||||
}
|
||||
}
|
||||
@@ -634,7 +697,10 @@ export async function exportUserData(userId: string, logger: Logger): Promise<{
|
||||
return { profile, watchedItems, shoppingLists };
|
||||
});
|
||||
} catch (error) {
|
||||
logger.error({ err: error, userId }, 'Database error in exportUserData');
|
||||
logger.error(
|
||||
{ err: error instanceof Error ? error.message : error, userId },
|
||||
'Database error in exportUserData',
|
||||
);
|
||||
throw new Error('Failed to export user data.');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user