backend api stuff

This commit is contained in:
Jake Kasper
2025-08-21 10:33:57 -05:00
parent e333a2e32d
commit 54a29ebac6
4 changed files with 6 additions and 5 deletions

View File

@@ -3,7 +3,7 @@ const Joi = require('joi');
// User validation schemas // User validation schemas
const registerSchema = Joi.object({ const registerSchema = Joi.object({
email: Joi.string().email().required(), email: Joi.string().email().required(),
password: Joi.string().min(8).pattern(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]/).required() password: Joi.string().min(8).pattern(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&#+])[A-Za-z\d@$!%*?&#+]/).required()
.messages({ .messages({
'string.pattern.base': 'Password must contain at least one lowercase letter, one uppercase letter, one number, and one special character' 'string.pattern.base': 'Password must contain at least one lowercase letter, one uppercase letter, one number, and one special character'
}), }),
@@ -24,7 +24,7 @@ const updateUserSchema = Joi.object({
const changePasswordSchema = Joi.object({ const changePasswordSchema = Joi.object({
currentPassword: Joi.string().required(), currentPassword: Joi.string().required(),
newPassword: Joi.string().min(8).pattern(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]/).required() newPassword: Joi.string().min(8).pattern(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&#+])[A-Za-z\d@$!%*?&#+]/).required()
.messages({ .messages({
'string.pattern.base': 'Password must contain at least one lowercase letter, one uppercase letter, one number, and one special character' 'string.pattern.base': 'Password must contain at least one lowercase letter, one uppercase letter, one number, and one special character'
}) })

View File

@@ -35,7 +35,7 @@ services:
context: ./backend context: ./backend
dockerfile: Dockerfile dockerfile: Dockerfile
environment: environment:
- NODE_ENV=production - NODE_ENV=development
- DB_HOST=db - DB_HOST=db
- DB_PORT=5432 - DB_PORT=5432
- DB_NAME=${DB_NAME:-turftracker} - DB_NAME=${DB_NAME:-turftracker}

View File

@@ -161,7 +161,8 @@ export const AuthProvider = ({ children }) => {
toast.success('Account created successfully!'); toast.success('Account created successfully!');
return { success: true }; return { success: true };
} catch (error) { } catch (error) {
const errorMessage = error.response?.data?.message || 'Registration failed. Please try again.'; console.error('Registration error:', error);
const errorMessage = error.response?.data?.message || error.message || 'Registration failed. Please try again.';
dispatch({ type: actionTypes.SET_ERROR, payload: errorMessage }); dispatch({ type: actionTypes.SET_ERROR, payload: errorMessage });
toast.error(errorMessage); toast.error(errorMessage);
return { success: false, error: errorMessage }; return { success: false, error: errorMessage };

View File

@@ -151,7 +151,7 @@ const Register = () => {
message: 'Password must be at least 8 characters', message: 'Password must be at least 8 characters',
}, },
pattern: { pattern: {
value: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]/, value: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&#+])[A-Za-z\d@$!%*?&#+]/,
message: 'Password must contain uppercase, lowercase, number, and special character', message: 'Password must contain uppercase, lowercase, number, and special character',
}, },
})} })}