- Updated availability admin page to use apiFetch for fetching and modifying blocked dates. - Enhanced menu generator page to ensure all expected arrays are initialized to avoid rendering issues. - Added path to cookies in login and logout routes for better cookie management. - Improved availability blocked API to log request headers and handle both date and id for deletion. - Updated menu generator API to include tags in the response structure and ensure expected arrays are present. - Enhanced middleware to handle authentication more robustly, including detailed logging and handling of various request types. - Added Playwright test to verify that toggling availability does not log out the admin user. - Created apiFetch utility to standardize API requests with credentials included.
2430 lines
129 KiB
Plaintext
2430 lines
129 KiB
Plaintext
2025-10-29T08:49:22: > Ready on http://localhost:3000
|
|
2025-10-29T08:53:47: > Ready on http://localhost:3000
|
|
2025-10-29T09:14:28: > Ready on http://localhost:3000
|
|
2025-10-29T09:23:18: > Ready on http://localhost:3000
|
|
2025-10-30T19:09:51: > Ready on http://localhost:3000
|
|
2025-10-30T19:31:44: > Ready on http://localhost:3000
|
|
2025-10-30T19:34:15: > Ready on http://localhost:3000
|
|
2025-10-30T19:38:44: > Ready on http://localhost:3000
|
|
2025-10-30T19:40:45: > Ready on http://localhost:3000
|
|
2025-10-30T19:42:05: > Ready on http://localhost:3000
|
|
2025-10-30T19:50:39: > Ready on http://localhost:3000
|
|
2025-10-30T19:54:37: > Ready on http://localhost:3000
|
|
2025-10-30T19:58:29: > Ready on http://localhost:3000
|
|
2025-10-31T19:17:21: > Ready on http://localhost:3000
|
|
2025-10-31T20:05:46: > Ready on http://localhost:3000
|
|
2025-10-31T20:42:18: > Ready on http://localhost:3000
|
|
2025-10-31T20:54:03: > Ready on http://localhost:3000
|
|
2025-10-31T21:04:52: > Ready on http://localhost:3000
|
|
2025-10-31T21:07:41: > Ready on http://localhost:3000
|
|
2025-10-31T21:31:48: > Ready on http://localhost:3000
|
|
2025-10-31T21:34:11: > Ready on http://localhost:3000
|
|
2025-10-31T21:39:45: > Ready on http://localhost:3000
|
|
2025-10-31T21:40:36: > Ready on http://localhost:3000
|
|
2025-10-31T21:45:41: > Ready on http://localhost:3000
|
|
2025-10-31T21:47:51: > Ready on http://localhost:3000
|
|
2025-10-31T21:50:59: > Ready on http://localhost:3000
|
|
2025-10-31T21:58:30: > Ready on http://localhost:3000
|
|
2025-10-31T22:14:18: > Ready on http://localhost:3000
|
|
2025-10-31T22:17:17: > Ready on http://localhost:3000
|
|
2025-10-31T22:21:03: > Ready on http://localhost:3000
|
|
2025-10-31T22:22:22: > Ready on http://localhost:3000
|
|
2025-11-03T23:05:19: > Ready on http://localhost:3000
|
|
2025-11-05T08:26:13: > Ready on http://localhost:3000
|
|
2025-11-05T08:58:07: > Ready on http://localhost:3000
|
|
2025-11-05T09:00:21: > Ready on http://localhost:3000
|
|
2025-11-05T09:25:53: > Ready on http://localhost:3000
|
|
2025-11-05T09:27:59: > Ready on http://localhost:3000
|
|
2025-11-05T09:37:13: > Ready on http://localhost:3000
|
|
2025-11-05T09:41:45: > Ready on http://localhost:3000
|
|
2025-11-05T09:47:57: > Ready on http://localhost:3000
|
|
2025-11-05T09:54:05: > Ready on http://localhost:3000
|
|
2025-11-05T09:58:17: > Ready on http://localhost:3000
|
|
2025-11-05T10:08:38: > Ready on http://localhost:3000
|
|
2025-11-05T10:12:46: > Ready on http://localhost:3000
|
|
2025-11-05T10:16:21: > Ready on http://localhost:3000
|
|
2025-11-05T10:18:24: > Ready on http://localhost:3000
|
|
2025-11-05T10:25:45: > Ready on http://localhost:3000
|
|
2025-11-05T10:33:36: > Ready on http://localhost:3000
|
|
2025-11-05T10:44:48: > Ready on http://localhost:3000
|
|
2025-11-05T13:03:54: > Ready on http://localhost:3000
|
|
2025-11-05T13:13:52: > Ready on http://localhost:3000
|
|
2025-11-05T13:15:35: > Ready on http://localhost:3000
|
|
2025-11-05T13:19:52: > Ready on http://localhost:3000
|
|
2025-11-05T13:26:22: > Ready on http://localhost:3000
|
|
2025-11-05T13:40:32: > Ready on http://localhost:3000
|
|
2025-11-05T13:51:31: > Ready on http://localhost:3000
|
|
2025-11-05T13:57:37: > Ready on http://localhost:3000
|
|
2025-11-05T14:00:08: > Ready on http://localhost:3000
|
|
2025-11-05T14:05:54: > Ready on http://localhost:3000
|
|
2025-11-05T14:11:22: > Ready on http://localhost:3000
|
|
2025-11-05T14:12:29: > Ready on http://localhost:3000
|
|
2025-11-05T14:15:42: > Ready on http://localhost:3000
|
|
2025-11-05T14:22:07: > Ready on http://localhost:3000
|
|
2025-11-05T14:26:53: > Ready on http://localhost:3000
|
|
2025-11-05T14:32:02: > Ready on http://localhost:3000
|
|
2025-11-05T14:33:33: > Ready on http://localhost:3000
|
|
2025-11-05T14:34:21: > Ready on http://localhost:3000
|
|
2025-11-05T14:49:28: Middleware - Path: /admin
|
|
2025-11-05T14:49:28: Middleware - Token present: true
|
|
2025-11-05T14:49:28: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-05T14:49:28: Middleware - Invalid token: [Error: The edge runtime does not support Node.js 'crypto' module.
|
|
Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime]
|
|
2025-11-05T14:49:29: Middleware - Path: /admin
|
|
2025-11-05T14:49:29: Middleware - Token present: true
|
|
2025-11-05T14:49:29: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-05T14:49:29: Middleware - Invalid token: [Error: The edge runtime does not support Node.js 'crypto' module.
|
|
Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime]
|
|
2025-11-05T14:52:40: > Ready on http://localhost:3000
|
|
2025-11-05T14:52:56: Middleware - Path: /admin
|
|
2025-11-05T14:52:56: Middleware - Token present: true
|
|
2025-11-05T14:52:56: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-05T14:52:56: Middleware - Token valid, user: brotha
|
|
2025-11-05T14:52:56: Middleware - Path: /admin/availability
|
|
2025-11-05T14:52:56: Middleware - Token present: true
|
|
2025-11-05T14:52:56: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-05T14:52:56: Middleware - Path: /admin/bookings
|
|
2025-11-05T14:52:56: Middleware - Token present: true
|
|
2025-11-05T14:52:56: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-05T14:52:56: Middleware - Token valid, user: brotha
|
|
2025-11-05T14:52:56: Middleware - Token valid, user: brotha
|
|
2025-11-05T14:52:57: Middleware - Path: /admin
|
|
2025-11-05T14:52:57: Middleware - Token present: true
|
|
2025-11-05T14:52:57: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-05T14:52:57: Middleware - Token valid, user: brotha
|
|
2025-11-05T14:53:56: Middleware - Path: /admin
|
|
2025-11-05T14:53:56: Middleware - Token present: false
|
|
2025-11-05T14:53:56: Middleware - Token value: undefined...
|
|
2025-11-05T14:53:56: Middleware - No token, redirecting to login
|
|
2025-11-05T14:54:33: Middleware - Path: /admin
|
|
2025-11-05T14:54:33: Middleware - Token present: true
|
|
2025-11-05T14:54:33: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-05T14:54:33: Middleware - Token valid, user: brotha
|
|
2025-11-05T15:00:18: Middleware - Path: /admin
|
|
2025-11-05T15:00:18: Middleware - Token present: true
|
|
2025-11-05T15:00:18: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-05T15:00:18: Middleware - Token valid, user: brotha
|
|
2025-11-05T15:00:18: Middleware - Path: /admin/availability
|
|
2025-11-05T15:00:18: Middleware - Token present: true
|
|
2025-11-05T15:00:18: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-05T15:00:18: Middleware - Path: /admin/bookings
|
|
2025-11-05T15:00:18: Middleware - Token present: true
|
|
2025-11-05T15:00:18: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-05T15:00:18: Middleware - Token valid, user: brotha
|
|
2025-11-05T15:00:18: Middleware - Token valid, user: brotha
|
|
2025-11-07T07:40:24: > Ready on http://localhost:3000
|
|
2025-11-07T08:57:58: Middleware - Path: /admin
|
|
2025-11-07T08:57:58: Middleware - Token present: true
|
|
2025-11-07T08:57:58: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T08:57:58: Middleware - Token valid, user: brotha
|
|
2025-11-07T08:57:58: Middleware - Path: /admin/availability
|
|
2025-11-07T08:57:58: Middleware - Token present: true
|
|
2025-11-07T08:57:58: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T08:57:58: Middleware - Path: /admin/bookings
|
|
2025-11-07T08:57:58: Middleware - Token present: true
|
|
2025-11-07T08:57:58: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T08:57:58: Middleware - Token valid, user: brotha
|
|
2025-11-07T08:57:58: Middleware - Token valid, user: brotha
|
|
2025-11-07T09:00:04: Middleware - Path: /admin
|
|
2025-11-07T09:00:04: Middleware - Token present: true
|
|
2025-11-07T09:00:04: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T09:00:04: Middleware - Token valid, user: brotha
|
|
2025-11-07T09:01:41: > Ready on http://localhost:3000
|
|
2025-11-07T09:02:27: === API LOGIN REQUEST START ===
|
|
2025-11-07T09:02:27: Timestamp: 2025-11-07T08:02:27.169Z
|
|
2025-11-07T09:02:27: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T09:02:27: Connecting to database...
|
|
2025-11-07T09:02:27: Database connected
|
|
2025-11-07T09:02:27: Querying user from database: brotha
|
|
2025-11-07T09:02:27: Query result: found 1 users
|
|
2025-11-07T09:02:27: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T09:02:27: Verifying password with salt...
|
|
2025-11-07T09:02:27: Password valid: true
|
|
2025-11-07T09:02:27: Creating JWT token...
|
|
2025-11-07T09:02:27: JWT token created, length: 239
|
|
2025-11-07T09:02:27: Setting authToken cookie...
|
|
2025-11-07T09:02:27: Cookie set successfully
|
|
2025-11-07T09:02:27: === API LOGIN SUCCESS ===
|
|
2025-11-07T09:02:27: Database connection closed
|
|
2025-11-07T09:02:46: === API LOGIN REQUEST START ===
|
|
2025-11-07T09:02:46: Timestamp: 2025-11-07T08:02:46.950Z
|
|
2025-11-07T09:02:46: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T09:02:46: Connecting to database...
|
|
2025-11-07T09:02:46: Database connected
|
|
2025-11-07T09:02:46: Querying user from database: brotha
|
|
2025-11-07T09:02:46: Query result: found 1 users
|
|
2025-11-07T09:02:46: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T09:02:46: Verifying password with salt...
|
|
2025-11-07T09:02:47: Password valid: true
|
|
2025-11-07T09:02:47: Creating JWT token...
|
|
2025-11-07T09:02:47: JWT token created, length: 239
|
|
2025-11-07T09:02:47: Setting authToken cookie...
|
|
2025-11-07T09:02:47: Cookie set successfully
|
|
2025-11-07T09:02:47: === API LOGIN SUCCESS ===
|
|
2025-11-07T09:02:47: Database connection closed
|
|
2025-11-07T09:02:47: Middleware - Path: /admin
|
|
2025-11-07T09:02:47: Middleware - Token present: true
|
|
2025-11-07T09:02:47: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T09:02:47: Middleware - Token valid, user: brotha
|
|
2025-11-07T09:03:46: > Ready on http://localhost:3000
|
|
2025-11-07T09:04:22: === API LOGIN REQUEST START ===
|
|
2025-11-07T09:04:22: Timestamp: 2025-11-07T08:04:22.360Z
|
|
2025-11-07T09:04:22: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T09:04:22: Connecting to database...
|
|
2025-11-07T09:04:22: Database connected
|
|
2025-11-07T09:04:22: Querying user from database: brotha
|
|
2025-11-07T09:04:22: Query result: found 1 users
|
|
2025-11-07T09:04:22: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T09:04:22: Verifying password with salt...
|
|
2025-11-07T09:04:22: Password valid: true
|
|
2025-11-07T09:04:22: Creating JWT token...
|
|
2025-11-07T09:04:22: JWT token created, length: 239
|
|
2025-11-07T09:04:22: Setting authToken cookie...
|
|
2025-11-07T09:04:22: Cookie set successfully
|
|
2025-11-07T09:04:22: === API LOGIN SUCCESS ===
|
|
2025-11-07T09:04:22: Database connection closed
|
|
2025-11-07T09:04:22: Middleware - Path: /admin
|
|
2025-11-07T09:04:22: Middleware - Token present: true
|
|
2025-11-07T09:04:22: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T09:04:22: Middleware - Token valid, user: brotha
|
|
2025-11-07T09:04:22: Middleware - Path: /admin/availability
|
|
2025-11-07T09:04:22: Middleware - Token present: true
|
|
2025-11-07T09:04:22: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T09:04:22: Middleware - Token valid, user: brotha
|
|
2025-11-07T09:04:33: Middleware - Path: /admin/availability
|
|
2025-11-07T09:04:33: Middleware - Token present: true
|
|
2025-11-07T09:04:33: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T09:04:33: Middleware - Token valid, user: brotha
|
|
2025-11-07T09:06:58: > Ready on http://localhost:3000
|
|
2025-11-07T09:09:53: > Ready on http://localhost:3000
|
|
2025-11-07T09:12:14: Middleware - Path: /admin
|
|
2025-11-07T09:12:14: Middleware - Token present: true
|
|
2025-11-07T09:12:14: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T09:12:14: Middleware - Token valid, user: brotha
|
|
2025-11-07T09:14:03: > Ready on http://localhost:3000
|
|
2025-11-07T09:19:57: > Ready on http://localhost:3000
|
|
2025-11-07T09:39:02: > Ready on http://localhost:3000
|
|
2025-11-07T09:44:40: > Ready on http://localhost:3000
|
|
2025-11-07T09:44:53: > Ready on http://localhost:3000
|
|
2025-11-07T09:45:19: === BOOKING REQUEST ===
|
|
2025-11-07T09:45:19: Request body: {
|
|
"name": "Test Booking",
|
|
"email": "test@test.dk",
|
|
"phone": "12345678",
|
|
"address": "København",
|
|
"party_size": 20,
|
|
"date": "2025-11-15",
|
|
"start_time": "18:00",
|
|
"duration_hours": 3,
|
|
"menu_id": "klassisk-3-retter",
|
|
"include_service": true,
|
|
"include_cleanup": true,
|
|
"message": "Test booking"
|
|
}
|
|
2025-11-07T09:45:19: Booking time: { date: '2025-11-15', start: '18:00:00', end: '21:00:00', duration: 3 }
|
|
2025-11-07T09:45:19: Blocked dates check: { cnt: 0 }
|
|
2025-11-07T09:45:19: Checking availability for weekday: 6
|
|
2025-11-07T09:45:19: Available slots for weekday: []
|
|
2025-11-07T09:45:19: Time slot covered by availability: false
|
|
2025-11-07T09:45:19: ERROR: Requested time is outside of availability
|
|
2025-11-07T09:46:02: > Ready on http://localhost:3000
|
|
2025-11-07T09:50:55: === BOOKING REQUEST ===
|
|
2025-11-07T09:50:55: Request body: {
|
|
"name": "sfds",
|
|
"email": "dsffds",
|
|
"phone": "214214124",
|
|
"address": "2400",
|
|
"party_size": 15,
|
|
"date": "2025-11-04",
|
|
"start_time": "08:00",
|
|
"duration_hours": 3,
|
|
"menu_id": "italiensk-aften",
|
|
"package_id": null,
|
|
"include_service": true,
|
|
"include_cleanup": true,
|
|
"message": ""
|
|
}
|
|
2025-11-07T09:50:55: Booking time: { date: '2025-11-04', start: '08:00:00', end: '11:00:00', duration: 3 }
|
|
2025-11-07T09:50:55: Blocked dates check: { cnt: 0 }
|
|
2025-11-07T09:50:55: Checking availability for weekday: 2
|
|
2025-11-07T09:50:55: Available slots for weekday: [
|
|
{
|
|
id: 'da219369-491d-4d34-a6ea-3f51808c0611',
|
|
weekday: 2,
|
|
start_time: '08:00:00',
|
|
end_time: '16:00:00',
|
|
note: 'arbejde',
|
|
created_at: 2025-10-29T10:29:01.000Z
|
|
}
|
|
]
|
|
2025-11-07T09:50:55: Time slot covered by availability: true
|
|
2025-11-07T09:50:55: Overlapping bookings check: { cnt: 1 }
|
|
2025-11-07T09:50:55: ERROR: Time slot already booked
|
|
2025-11-07T09:58:35: > Ready on http://localhost:3000
|
|
2025-11-07T09:59:54: === API: GET /api/availability/weekly ===
|
|
2025-11-07T09:59:54: === API: GET /api/availability/blocked ===
|
|
2025-11-07T09:59:54: ✓ Weekly availability fetched: 2 slots
|
|
2025-11-07T09:59:54: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T10:00:14: === BOOKING REQUEST ===
|
|
2025-11-07T10:00:14: Request body: {
|
|
"name": "bobbo",
|
|
"email": "bobo",
|
|
"phone": "1255151",
|
|
"address": "2400",
|
|
"party_size": 15,
|
|
"date": "2025-11-04",
|
|
"start_time": "10:00",
|
|
"duration_hours": 3,
|
|
"menu_id": "italiensk-aften",
|
|
"package_id": null,
|
|
"include_service": true,
|
|
"include_cleanup": false,
|
|
"message": ""
|
|
}
|
|
2025-11-07T10:00:14: Booking time: { date: '2025-11-04', start: '10:00:00', end: '13:00:00', duration: 3 }
|
|
2025-11-07T10:00:14: Blocked dates check: { cnt: 0 }
|
|
2025-11-07T10:00:14: Checking availability for weekday: 2
|
|
2025-11-07T10:00:14: Available slots for weekday: [
|
|
{
|
|
id: 'da219369-491d-4d34-a6ea-3f51808c0611',
|
|
weekday: 2,
|
|
start_time: '08:00:00',
|
|
end_time: '16:00:00',
|
|
note: 'arbejde',
|
|
created_at: 2025-10-29T10:29:01.000Z
|
|
}
|
|
]
|
|
2025-11-07T10:00:14: Time slot covered by availability: true
|
|
2025-11-07T10:00:14: Overlapping bookings check: { cnt: 1 }
|
|
2025-11-07T10:00:14: ERROR: Time slot already booked
|
|
2025-11-07T10:00:26: === BOOKING REQUEST ===
|
|
2025-11-07T10:00:26: Request body: {
|
|
"name": "bobbo",
|
|
"email": "bobo",
|
|
"phone": "1255151",
|
|
"address": "2400",
|
|
"party_size": 15,
|
|
"date": "2025-11-04",
|
|
"start_time": "11:00",
|
|
"duration_hours": 3,
|
|
"menu_id": "italiensk-aften",
|
|
"package_id": null,
|
|
"include_service": true,
|
|
"include_cleanup": false,
|
|
"message": ""
|
|
}
|
|
2025-11-07T10:00:26: Booking time: { date: '2025-11-04', start: '11:00:00', end: '14:00:00', duration: 3 }
|
|
2025-11-07T10:00:26: Blocked dates check: { cnt: 0 }
|
|
2025-11-07T10:00:26: Checking availability for weekday: 2
|
|
2025-11-07T10:00:26: Available slots for weekday: [
|
|
{
|
|
id: 'da219369-491d-4d34-a6ea-3f51808c0611',
|
|
weekday: 2,
|
|
start_time: '08:00:00',
|
|
end_time: '16:00:00',
|
|
note: 'arbejde',
|
|
created_at: 2025-10-29T10:29:01.000Z
|
|
}
|
|
]
|
|
2025-11-07T10:00:26: Time slot covered by availability: true
|
|
2025-11-07T10:00:26: Overlapping bookings check: { cnt: 0 }
|
|
2025-11-07T10:00:26: === BOOKING SUCCESS ===
|
|
2025-11-07T10:00:26: Booking ID: 77b5b617-25d0-46c2-b0f4-42a1b92e0924
|
|
2025-11-07T10:00:26: Total price: 5250
|
|
2025-11-07T10:00:38: Middleware - Path: /admin/bookings
|
|
2025-11-07T10:00:38: Middleware - Token present: true
|
|
2025-11-07T10:00:38: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T10:00:38: Middleware - Token valid, user: brotha
|
|
2025-11-07T10:00:38: === API: GET /api/bookings ===
|
|
2025-11-07T10:00:38: Query params: { date: null }
|
|
2025-11-07T10:00:38: ✓ All bookings fetched. Count: 2
|
|
2025-11-07T10:04:54: > Ready on http://localhost:3000
|
|
2025-11-07T10:27:43: === BOOKING REQUEST ===
|
|
2025-11-07T10:27:43: Request body: {
|
|
"name": "gffdgdgf",
|
|
"email": "dfgdfgdgf",
|
|
"phone": "24124124",
|
|
"address": "2400",
|
|
"party_size": 15,
|
|
"date": "2025-11-04",
|
|
"start_time": "10:30",
|
|
"duration_hours": 3,
|
|
"menu_id": "italiensk-aften",
|
|
"package_id": null,
|
|
"include_service": true,
|
|
"include_cleanup": false,
|
|
"message": "fafssfsf"
|
|
}
|
|
2025-11-07T10:27:43: Booking time: { date: '2025-11-04', start: '10:30:00', end: '13:30:00', duration: 3 }
|
|
2025-11-07T10:27:43: Blocked dates check: { cnt: 0 }
|
|
2025-11-07T10:27:43: Checking availability for weekday: 2
|
|
2025-11-07T10:27:43: Available slots for weekday: [
|
|
{
|
|
id: 'da219369-491d-4d34-a6ea-3f51808c0611',
|
|
weekday: 2,
|
|
start_time: '08:00:00',
|
|
end_time: '16:00:00',
|
|
note: 'arbejde',
|
|
created_at: 2025-10-29T10:29:01.000Z
|
|
}
|
|
]
|
|
2025-11-07T10:27:43: Time slot covered by availability: true
|
|
2025-11-07T10:27:43: Overlapping bookings check: { cnt: 2 }
|
|
2025-11-07T10:27:43: ERROR: Time slot already booked
|
|
2025-11-07T10:28:06: === BOOKING REQUEST ===
|
|
2025-11-07T10:28:06: Request body: {
|
|
"name": "gffdgdgf",
|
|
"email": "dfgdfgdgf",
|
|
"phone": "24124124",
|
|
"address": "2400",
|
|
"party_size": 15,
|
|
"date": "2025-11-18",
|
|
"start_time": "10:00",
|
|
"duration_hours": 3,
|
|
"menu_id": "brunch-luksus",
|
|
"package_id": null,
|
|
"include_service": true,
|
|
"include_cleanup": false,
|
|
"message": "fafssfsf"
|
|
}
|
|
2025-11-07T10:28:06: Booking time: { date: '2025-11-18', start: '10:00:00', end: '13:00:00', duration: 3 }
|
|
2025-11-07T10:28:06: Blocked dates check: { cnt: 0 }
|
|
2025-11-07T10:28:06: Checking availability for weekday: 2
|
|
2025-11-07T10:28:06: Available slots for weekday: [
|
|
{
|
|
id: 'da219369-491d-4d34-a6ea-3f51808c0611',
|
|
weekday: 2,
|
|
start_time: '08:00:00',
|
|
end_time: '16:00:00',
|
|
note: 'arbejde',
|
|
created_at: 2025-10-29T10:29:01.000Z
|
|
}
|
|
]
|
|
2025-11-07T10:28:06: Time slot covered by availability: true
|
|
2025-11-07T10:28:06: Overlapping bookings check: { cnt: 0 }
|
|
2025-11-07T10:28:06: === BOOKING SUCCESS ===
|
|
2025-11-07T10:28:06: Booking ID: f09136a1-7766-42a7-8f67-f02200137c98
|
|
2025-11-07T10:28:06: Total price: 10175
|
|
2025-11-07T10:31:38: > Ready on http://localhost:3000
|
|
2025-11-07T10:44:13: > Ready on http://localhost:3000
|
|
2025-11-07T10:45:42: === API: GET /api/availability/weekly ===
|
|
2025-11-07T10:45:42: ✓ Weekly availability fetched: 2 slots
|
|
2025-11-07T10:48:04: Middleware - Path: /admin/bookings
|
|
2025-11-07T10:48:04: Middleware - Token present: true
|
|
2025-11-07T10:48:04: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T10:48:04: Middleware - Token valid, user: brotha
|
|
2025-11-07T10:48:08: === API: GET /api/availability/weekly ===
|
|
2025-11-07T10:48:08: === API: GET /api/availability/blocked ===
|
|
2025-11-07T10:48:08: ✓ Weekly availability fetched: 2 slots
|
|
2025-11-07T10:48:08: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T10:48:18: > Ready on http://localhost:3000
|
|
2025-11-07T10:48:24: === API: GET /api/availability/weekly ===
|
|
2025-11-07T10:48:24: === API: GET /api/availability/blocked ===
|
|
2025-11-07T10:48:24: ✓ Weekly availability fetched: 2 slots
|
|
2025-11-07T10:48:24: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T10:49:46: > Ready on http://localhost:3000
|
|
2025-11-07T10:52:03: Middleware - Path: /admin/bookings
|
|
2025-11-07T10:52:03: Middleware - Token present: true
|
|
2025-11-07T10:52:03: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T10:52:03: Middleware - Token valid, user: brotha
|
|
2025-11-07T10:52:03: === API: GET /api/bookings ===
|
|
2025-11-07T10:52:03: Query params: { date: null }
|
|
2025-11-07T10:52:03: Middleware - Path: /admin
|
|
2025-11-07T10:52:03: Middleware - Token present: true
|
|
2025-11-07T10:52:03: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T10:52:03: Middleware - Path: /admin/availability
|
|
2025-11-07T10:52:03: Middleware - Token present: true
|
|
2025-11-07T10:52:03: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T10:52:03: Middleware - Token valid, user: brotha
|
|
2025-11-07T10:52:03: Middleware - Token valid, user: brotha
|
|
2025-11-07T10:52:03: ✓ All bookings fetched. Count: 3
|
|
2025-11-07T10:52:58: > Ready on http://localhost:3000
|
|
2025-11-07T10:54:04: === API: GET /api/availability/weekly ===
|
|
2025-11-07T10:54:04: === API: GET /api/availability/blocked ===
|
|
2025-11-07T10:54:04: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T10:54:04: ✓ Weekly availability fetched: 2 slots
|
|
2025-11-07T11:00:22: > Ready on http://localhost:3000
|
|
2025-11-07T12:15:32: Middleware - Path: /admin/bookings
|
|
2025-11-07T12:15:32: Middleware - Token present: true
|
|
2025-11-07T12:15:32: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:15:32: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:15:33: === API: GET /api/bookings ===
|
|
2025-11-07T12:15:33: Query params: { date: null }
|
|
2025-11-07T12:15:33: ✓ All bookings fetched. Count: 3
|
|
2025-11-07T12:15:37: === API: DELETE /api/bookings ===
|
|
2025-11-07T12:15:37: Request body: { id: '67f4eeb2-14dd-4b0d-b093-972986305e00' }
|
|
2025-11-07T12:15:37: Delete result - Affected rows: 1
|
|
2025-11-07T12:15:37: ✓ Booking deleted successfully: 67f4eeb2-14dd-4b0d-b093-972986305e00
|
|
2025-11-07T12:16:00: Middleware - Path: /admin
|
|
2025-11-07T12:16:00: Middleware - Token present: true
|
|
2025-11-07T12:16:00: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:16:00: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:21:13: > Ready on http://localhost:3000
|
|
2025-11-07T12:24:11: === API: GET /api/availability/weekly ===
|
|
2025-11-07T12:24:11: ✓ Weekly availability fetched: 2 slots
|
|
2025-11-07T12:24:44: Middleware - Path: /admin
|
|
2025-11-07T12:24:44: Middleware - Token present: true
|
|
2025-11-07T12:24:44: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:24:44: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:24:44: === API: GET /api/menus ===
|
|
2025-11-07T12:24:44: Middleware - Path: /admin/availability
|
|
2025-11-07T12:24:44: Middleware - Token present: true
|
|
2025-11-07T12:24:44: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:24:44: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T12:24:44: Middleware - Token present: true
|
|
2025-11-07T12:24:44: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:24:44: Middleware - Path: /admin/bookings
|
|
2025-11-07T12:24:44: Middleware - Token present: true
|
|
2025-11-07T12:24:44: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:24:44: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:24:44: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:24:45: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:24:45: ✓ Menus fetched: 9
|
|
2025-11-07T12:24:48: === API: GET /api/bookings ===
|
|
2025-11-07T12:24:48: Query params: { date: null }
|
|
2025-11-07T12:24:48: ✓ All bookings fetched. Count: 2
|
|
2025-11-07T12:24:51: Middleware - Path: /admin
|
|
2025-11-07T12:24:51: Middleware - Token present: true
|
|
2025-11-07T12:24:51: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:24:51: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:25:05: Middleware - Path: /admin/availability
|
|
2025-11-07T12:25:05: Middleware - Token present: true
|
|
2025-11-07T12:25:05: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:25:05: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:25:08: === API LOGIN REQUEST START ===
|
|
2025-11-07T12:25:08: Timestamp: 2025-11-07T11:25:08.262Z
|
|
2025-11-07T12:25:08: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T12:25:08: Connecting to database...
|
|
2025-11-07T12:25:08: Database connected
|
|
2025-11-07T12:25:08: Querying user from database: brotha
|
|
2025-11-07T12:25:08: Query result: found 1 users
|
|
2025-11-07T12:25:08: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T12:25:08: Verifying password with salt...
|
|
2025-11-07T12:25:08: Password valid: true
|
|
2025-11-07T12:25:08: Creating JWT token...
|
|
2025-11-07T12:25:08: JWT token created, length: 239
|
|
2025-11-07T12:25:08: Setting authToken cookie...
|
|
2025-11-07T12:25:08: Cookie set successfully
|
|
2025-11-07T12:25:08: === API LOGIN SUCCESS ===
|
|
2025-11-07T12:25:08: Database connection closed
|
|
2025-11-07T12:25:15: === API LOGIN REQUEST START ===
|
|
2025-11-07T12:25:15: Timestamp: 2025-11-07T11:25:15.696Z
|
|
2025-11-07T12:25:15: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T12:25:15: Connecting to database...
|
|
2025-11-07T12:25:15: Database connected
|
|
2025-11-07T12:25:15: Querying user from database: brotha
|
|
2025-11-07T12:25:15: Query result: found 1 users
|
|
2025-11-07T12:25:15: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T12:25:15: Verifying password with salt...
|
|
2025-11-07T12:25:15: Password valid: true
|
|
2025-11-07T12:25:15: Creating JWT token...
|
|
2025-11-07T12:25:15: JWT token created, length: 239
|
|
2025-11-07T12:25:15: Setting authToken cookie...
|
|
2025-11-07T12:25:15: Cookie set successfully
|
|
2025-11-07T12:25:15: === API LOGIN SUCCESS ===
|
|
2025-11-07T12:25:15: Database connection closed
|
|
2025-11-07T12:25:15: Middleware - Path: /admin
|
|
2025-11-07T12:25:15: Middleware - Token present: true
|
|
2025-11-07T12:25:15: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:25:15: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:25:20: === API LOGIN REQUEST START ===
|
|
2025-11-07T12:25:20: Timestamp: 2025-11-07T11:25:20.540Z
|
|
2025-11-07T12:25:20: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T12:25:20: Connecting to database...
|
|
2025-11-07T12:25:20: Database connected
|
|
2025-11-07T12:25:20: Querying user from database: brotha
|
|
2025-11-07T12:25:20: Query result: found 1 users
|
|
2025-11-07T12:25:20: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T12:25:20: Verifying password with salt...
|
|
2025-11-07T12:25:20: Password valid: true
|
|
2025-11-07T12:25:20: Creating JWT token...
|
|
2025-11-07T12:25:20: JWT token created, length: 239
|
|
2025-11-07T12:25:20: Setting authToken cookie...
|
|
2025-11-07T12:25:20: Cookie set successfully
|
|
2025-11-07T12:25:20: === API LOGIN SUCCESS ===
|
|
2025-11-07T12:25:20: Database connection closed
|
|
2025-11-07T12:26:05: === API: GET /api/bookings ===
|
|
2025-11-07T12:26:05: Query params: { date: null }
|
|
2025-11-07T12:26:05: ✓ All bookings fetched. Count: 2
|
|
2025-11-07T12:26:11: > Ready on http://localhost:3000
|
|
2025-11-07T12:26:21: Middleware - Path: /admin/availability
|
|
2025-11-07T12:26:21: Middleware - Token present: true
|
|
2025-11-07T12:26:21: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:26:21: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:26:24: Middleware - Path: /admin
|
|
2025-11-07T12:26:24: Middleware - Token present: true
|
|
2025-11-07T12:26:24: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:26:24: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:26:24: Middleware - Path: /admin/availability
|
|
2025-11-07T12:26:24: Middleware - Token present: true
|
|
2025-11-07T12:26:24: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:26:24: Middleware - Path: /admin/bookings
|
|
2025-11-07T12:26:24: Middleware - Token present: true
|
|
2025-11-07T12:26:24: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:26:24: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:26:24: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:26:24: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T12:26:24: Middleware - Token present: true
|
|
2025-11-07T12:26:24: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:26:24: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:26:30: Middleware - Path: /admin/bookings
|
|
2025-11-07T12:26:30: Middleware - Token present: true
|
|
2025-11-07T12:26:30: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:26:30: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:26:31: Middleware - Path: /admin/bookings
|
|
2025-11-07T12:26:31: Middleware - Token present: true
|
|
2025-11-07T12:26:31: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:26:31: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:33:35: > Ready on http://localhost:3000
|
|
2025-11-07T12:34:41: === API: GET /api/availability/weekly ===
|
|
2025-11-07T12:34:41: ✓ Weekly availability fetched: 2 slots
|
|
2025-11-07T12:36:00: === BOOKING REQUEST ===
|
|
2025-11-07T12:36:00: Request body: {
|
|
"name": "bob",
|
|
"email": "bobo",
|
|
"phone": "453535345",
|
|
"address": "rødovre",
|
|
"party_size": 15,
|
|
"date": "2025-11-20",
|
|
"start_time": "16:00",
|
|
"duration_hours": 3,
|
|
"menu_id": "italiensk-aften",
|
|
"package_id": null,
|
|
"include_service": true,
|
|
"include_cleanup": false,
|
|
"message": "gdssgdsgdgsd",
|
|
"_t": 1762515328337
|
|
}
|
|
2025-11-07T12:36:00: Booking time: { date: '2025-11-20', start: '16:00:00', end: '19:00:00', duration: 3 }
|
|
2025-11-07T12:36:00: Blocked dates check: { cnt: 0 }
|
|
2025-11-07T12:36:00: Checking availability for weekday: 4
|
|
2025-11-07T12:36:00: Available slots for weekday: [
|
|
{
|
|
id: 'b8d32131-a424-48c2-8ddd-c9263cb7a085',
|
|
weekday: 4,
|
|
start_time: '16:00:00',
|
|
end_time: '20:00:00',
|
|
note: '',
|
|
created_at: 2025-10-31T20:00:18.000Z
|
|
}
|
|
]
|
|
2025-11-07T12:36:00: Time slot covered by availability: true
|
|
2025-11-07T12:36:00: Overlapping bookings check: { cnt: 0 }
|
|
2025-11-07T12:36:00: === BOOKING SUCCESS ===
|
|
2025-11-07T12:36:00: Booking ID: 7cb35696-fb64-42bc-b592-7034538951ac
|
|
2025-11-07T12:36:00: Total price: 5750
|
|
2025-11-07T12:36:07: Middleware - Path: /admin
|
|
2025-11-07T12:36:07: Middleware - Token present: true
|
|
2025-11-07T12:36:07: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:36:07: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:36:07: === API: GET /api/menus ===
|
|
2025-11-07T12:36:07: ✓ Menus fetched: 9
|
|
2025-11-07T12:37:31: > Ready on http://localhost:3000
|
|
2025-11-07T12:38:18: === API: GET /api/bookings ===
|
|
2025-11-07T12:38:18: Query params: { date: null }
|
|
2025-11-07T12:38:18: ✓ All bookings fetched. Count: 3
|
|
2025-11-07T12:38:24: === API: GET /api/availability/blocked ===
|
|
2025-11-07T12:38:24: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T12:38:29: Middleware - Path: /admin/availability
|
|
2025-11-07T12:38:29: Middleware - Token present: false
|
|
2025-11-07T12:38:29: Middleware - Token value: undefined...
|
|
2025-11-07T12:38:29: Middleware - No token, redirecting to login
|
|
2025-11-07T12:38:35: Middleware - Path: /admin/availability
|
|
2025-11-07T12:38:35: Middleware - Token present: false
|
|
2025-11-07T12:38:35: Middleware - Token value: undefined...
|
|
2025-11-07T12:38:35: Middleware - No token, redirecting to login
|
|
2025-11-07T12:44:56: Middleware - Path: /admin
|
|
2025-11-07T12:44:56: Middleware - Token present: true
|
|
2025-11-07T12:44:56: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:44:56: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:44:56: === API: GET /api/menus ===
|
|
2025-11-07T12:44:56: ✓ Menus fetched: 9
|
|
2025-11-07T12:44:59: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T12:44:59: Middleware - Token present: true
|
|
2025-11-07T12:44:59: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:44:59: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:44:59: Middleware - Path: /admin
|
|
2025-11-07T12:44:59: Middleware - Token present: true
|
|
2025-11-07T12:44:59: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:44:59: Middleware - Path: /admin/availability
|
|
2025-11-07T12:44:59: Middleware - Token present: true
|
|
2025-11-07T12:44:59: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:44:59: Middleware - Path: /admin/bookings
|
|
2025-11-07T12:44:59: Middleware - Token present: true
|
|
2025-11-07T12:44:59: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:44:59: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:44:59: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:44:59: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:45:03: === Menu Generator API ===
|
|
2025-11-07T12:45:03: Request: { prompt: '', courses: 3, style: '', dietary: '' }
|
|
2025-11-07T12:45:03: Calling OpenAI API...
|
|
2025-11-07T12:45:19: ✓ OpenAI response received
|
|
2025-11-07T12:45:19: ✓ Menu generated successfully
|
|
2025-11-07T12:45:20: === API: GET /api/bookings ===
|
|
2025-11-07T12:45:20: Query params: { date: null }
|
|
2025-11-07T12:45:20: ✓ All bookings fetched. Count: 3
|
|
2025-11-07T12:48:23: > Ready on http://localhost:3000
|
|
2025-11-07T12:52:14: Middleware - Path: /admin
|
|
2025-11-07T12:52:14: Middleware - Token present: true
|
|
2025-11-07T12:52:14: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:52:14: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:52:15: === API: GET /api/menus ===
|
|
2025-11-07T12:52:15: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T12:52:15: Middleware - Token present: true
|
|
2025-11-07T12:52:15: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:52:15: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T12:52:15: Middleware - Token present: true
|
|
2025-11-07T12:52:15: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T12:52:15: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:52:15: Middleware - Token valid, user: brotha
|
|
2025-11-07T12:52:15: ✓ Menus fetched: 9
|
|
2025-11-07T12:54:59: > Ready on http://localhost:3000
|
|
2025-11-07T13:05:29: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T13:05:29: Middleware - Token present: true
|
|
2025-11-07T13:05:29: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T13:05:29: Middleware - Token valid, user: brotha
|
|
2025-11-07T13:05:29: Middleware - Path: /admin
|
|
2025-11-07T13:05:29: Middleware - Token present: true
|
|
2025-11-07T13:05:29: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T13:05:29: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T13:05:29: Middleware - Token present: true
|
|
2025-11-07T13:05:29: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T13:05:29: Middleware - Path: /admin/availability
|
|
2025-11-07T13:05:29: Middleware - Token present: true
|
|
2025-11-07T13:05:29: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T13:05:29: Middleware - Path: /admin/bookings
|
|
2025-11-07T13:05:29: Middleware - Token present: true
|
|
2025-11-07T13:05:29: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T13:05:29: Middleware - Token valid, user: brotha
|
|
2025-11-07T13:05:29: Middleware - Token valid, user: brotha
|
|
2025-11-07T13:05:29: Middleware - Token valid, user: brotha
|
|
2025-11-07T13:05:29: Middleware - Token valid, user: brotha
|
|
2025-11-07T13:06:19: > Ready on http://localhost:3000
|
|
2025-11-07T13:07:55: > Ready on http://localhost:3000
|
|
2025-11-07T13:09:28: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T13:09:28: Middleware - Token present: true
|
|
2025-11-07T13:09:28: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T13:09:28: Middleware - Token valid, user: brotha
|
|
2025-11-07T13:09:29: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T13:09:29: Middleware - Token present: true
|
|
2025-11-07T13:09:29: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T13:09:29: Middleware - Path: /admin
|
|
2025-11-07T13:09:29: Middleware - Token present: true
|
|
2025-11-07T13:09:29: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T13:09:29: Middleware - Token valid, user: brotha
|
|
2025-11-07T13:09:29: Middleware - Token valid, user: brotha
|
|
2025-11-07T13:09:43: === Menu Generator API ===
|
|
2025-11-07T13:09:43: Request: {
|
|
prompt: 'gerne noget bbq',
|
|
courses: 3,
|
|
style: 'fødselsdag',
|
|
dietary: ''
|
|
}
|
|
2025-11-07T13:09:43: Calling OpenAI API...
|
|
2025-11-07T13:09:53: ✓ OpenAI response received
|
|
2025-11-07T13:09:53: ✓ Menu generated successfully
|
|
2025-11-07T13:13:05: > Ready on http://localhost:3000
|
|
2025-11-07T13:13:49: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T13:13:49: Middleware - Token present: true
|
|
2025-11-07T13:13:49: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T13:13:49: Middleware - Token valid, user: brotha
|
|
2025-11-07T13:13:55: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T13:13:55: Middleware - Token present: true
|
|
2025-11-07T13:13:55: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T13:13:55: Middleware - Token valid, user: brotha
|
|
2025-11-07T13:13:55: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T13:13:55: Middleware - Token present: true
|
|
2025-11-07T13:13:55: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T13:13:55: Middleware - Token valid, user: brotha
|
|
2025-11-07T13:17:13: > Ready on http://localhost:3000
|
|
2025-11-07T13:19:47: === API: GET /api/availability/weekly ===
|
|
2025-11-07T13:19:47: === API: GET /api/availability/blocked ===
|
|
2025-11-07T13:19:47: ✓ Weekly availability fetched: 2 slots
|
|
2025-11-07T13:19:47: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T13:19:51: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T13:19:51: Middleware - Token present: true
|
|
2025-11-07T13:19:51: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T13:19:51: Middleware - Token valid, user: brotha
|
|
2025-11-07T13:23:30: > Ready on http://localhost:3000
|
|
2025-11-07T13:30:41: > Ready on http://localhost:3000
|
|
2025-11-07T13:42:01: > Ready on http://localhost:3000
|
|
2025-11-07T13:44:24: > Ready on http://localhost:3000
|
|
2025-11-07T13:49:59: > Ready on http://localhost:3000
|
|
2025-11-07T13:52:59: > Ready on http://localhost:3000
|
|
2025-11-07T13:53:23: === API: GET /api/availability/weekly ===
|
|
2025-11-07T13:53:23: ✓ Weekly availability fetched: 2 slots
|
|
2025-11-07T13:53:23: === API: POST /api/availability/weekly ===
|
|
2025-11-07T13:53:23: Request body: {
|
|
weekday: 5,
|
|
start_time: '10:00',
|
|
end_time: '22:00',
|
|
note: 'automated test slot'
|
|
}
|
|
2025-11-07T13:53:23: Overlap check: { overlaps: 0 }
|
|
2025-11-07T13:53:23: ✓ Weekly availability created: d9cac104-0341-402f-ba59-3c413034cda1
|
|
2025-11-07T13:53:23: === API: GET /api/availability/blocked ===
|
|
2025-11-07T13:53:23: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T13:53:23: === BOOKING REQUEST ===
|
|
2025-11-07T13:53:23: Request body: {
|
|
"name": "Test User",
|
|
"email": "test@example.com",
|
|
"phone": "0000",
|
|
"party_size": 10,
|
|
"date": "2025-11-21",
|
|
"start_time": "12:00",
|
|
"duration_hours": 3,
|
|
"message": "Automated test"
|
|
}
|
|
2025-11-07T13:53:23: Booking time: { date: '2025-11-21', start: '12:00:00', end: '15:00:00', duration: 3 }
|
|
2025-11-07T13:53:23: Blocked dates check: { cnt: 0 }
|
|
2025-11-07T13:53:23: Checking availability for weekday: 5
|
|
2025-11-07T13:53:23: Available slots for weekday: [
|
|
{
|
|
id: 'd9cac104-0341-402f-ba59-3c413034cda1',
|
|
weekday: 5,
|
|
start_time: '10:00:00',
|
|
end_time: '22:00:00',
|
|
note: 'automated test slot',
|
|
created_at: 2025-11-07T12:53:23.000Z
|
|
}
|
|
]
|
|
2025-11-07T13:53:23: Time slot covered by availability: true
|
|
2025-11-07T13:53:23: Overlapping bookings check: { cnt: 0 }
|
|
2025-11-07T13:53:23: === BOOKING SUCCESS ===
|
|
2025-11-07T13:53:23: Booking ID: e166b8b6-d33f-4382-8c1c-9e2dc0ec0e06
|
|
2025-11-07T13:53:23: Total price: 500
|
|
2025-11-07T13:53:23: === BOOKING REQUEST ===
|
|
2025-11-07T13:53:23: Request body: {
|
|
"name": "Test User",
|
|
"email": "test@example.com",
|
|
"phone": "0000",
|
|
"party_size": 10,
|
|
"date": "2025-11-21",
|
|
"start_time": "13:00",
|
|
"duration_hours": 2,
|
|
"message": "Automated test"
|
|
}
|
|
2025-11-07T13:53:23: Booking time: { date: '2025-11-21', start: '13:00:00', end: '15:00:00', duration: 2 }
|
|
2025-11-07T13:53:23: Blocked dates check: { cnt: 0 }
|
|
2025-11-07T13:53:23: Checking availability for weekday: 5
|
|
2025-11-07T13:53:23: Available slots for weekday: [
|
|
{
|
|
id: 'd9cac104-0341-402f-ba59-3c413034cda1',
|
|
weekday: 5,
|
|
start_time: '10:00:00',
|
|
end_time: '22:00:00',
|
|
note: 'automated test slot',
|
|
created_at: 2025-11-07T12:53:23.000Z
|
|
}
|
|
]
|
|
2025-11-07T13:53:23: Time slot covered by availability: true
|
|
2025-11-07T13:53:23: Overlapping bookings check: { cnt: 1 }
|
|
2025-11-07T13:53:23: ERROR: Time slot already booked
|
|
2025-11-07T13:54:04: === API: GET /api/menus ===
|
|
2025-11-07T13:54:04: ✓ Menus fetched: 16
|
|
2025-11-07T13:54:04: === BOOKING REQUEST ===
|
|
2025-11-07T13:54:04: Request body: {
|
|
"name": "Test Booking",
|
|
"email": "test@warme.dk",
|
|
"phone": "12345678",
|
|
"address": "Test Address 123",
|
|
"party_size": 8,
|
|
"date": "2025-11-21",
|
|
"start_time": "18:00",
|
|
"duration_hours": 4,
|
|
"menu_id": "fusion-menu",
|
|
"include_service": true,
|
|
"include_cleanup": true,
|
|
"message": "Full flow test booking"
|
|
}
|
|
2025-11-07T13:54:04: Booking time: { date: '2025-11-21', start: '18:00:00', end: '22:00:00', duration: 4 }
|
|
2025-11-07T13:54:04: Blocked dates check: { cnt: 0 }
|
|
2025-11-07T13:54:04: Checking availability for weekday: 5
|
|
2025-11-07T13:54:04: Available slots for weekday: [
|
|
{
|
|
id: 'd9cac104-0341-402f-ba59-3c413034cda1',
|
|
weekday: 5,
|
|
start_time: '10:00:00',
|
|
end_time: '22:00:00',
|
|
note: 'automated test slot',
|
|
created_at: 2025-11-07T12:53:23.000Z
|
|
}
|
|
]
|
|
2025-11-07T13:54:04: Time slot covered by availability: true
|
|
2025-11-07T13:54:04: Overlapping bookings check: { cnt: 0 }
|
|
2025-11-07T13:54:04: === BOOKING SUCCESS ===
|
|
2025-11-07T13:54:04: Booking ID: 121db4ae-ee58-454e-988a-36350e8fa182
|
|
2025-11-07T13:54:04: Total price: 7760
|
|
2025-11-07T13:54:04: === API: GET /api/bookings ===
|
|
2025-11-07T13:54:04: Query params: { date: null }
|
|
2025-11-07T13:54:04: ✓ All bookings fetched. Count: 5
|
|
2025-11-07T13:54:04: === API: DELETE /api/bookings ===
|
|
2025-11-07T13:54:04: Request body: { id: '121db4ae-ee58-454e-988a-36350e8fa182' }
|
|
2025-11-07T13:54:04: Delete result - Affected rows: 1
|
|
2025-11-07T13:54:04: ✓ Booking deleted successfully: 121db4ae-ee58-454e-988a-36350e8fa182
|
|
2025-11-07T13:54:40: === API: GET /api/menus ===
|
|
2025-11-07T13:54:40: ✓ Menus fetched: 16
|
|
2025-11-07T13:54:51: Middleware - Path: /admin/menus
|
|
2025-11-07T13:54:51: Middleware - Token present: false
|
|
2025-11-07T13:54:51: Middleware - Token value: undefined...
|
|
2025-11-07T13:54:51: Middleware - No token, redirecting to login
|
|
2025-11-07T13:58:55: === API: GET /api/availability/weekly ===
|
|
2025-11-07T13:58:55: === API: GET /api/availability/blocked ===
|
|
2025-11-07T13:58:55: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T13:58:55: ✓ Weekly availability fetched: 3 slots
|
|
2025-11-07T13:59:23: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T13:59:23: Middleware - Token present: true
|
|
2025-11-07T13:59:23: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T13:59:23: Middleware - Token valid, user: brotha
|
|
2025-11-07T13:59:23: Middleware - Path: /admin
|
|
2025-11-07T13:59:23: Middleware - Token present: true
|
|
2025-11-07T13:59:23: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T13:59:23: Middleware - Token valid, user: brotha
|
|
2025-11-07T13:59:26: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T13:59:26: Middleware - Token present: true
|
|
2025-11-07T13:59:26: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T13:59:26: Middleware - Token valid, user: brotha
|
|
2025-11-07T13:59:26: Middleware - Path: /admin/menus
|
|
2025-11-07T13:59:26: Middleware - Token present: true
|
|
2025-11-07T13:59:26: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T13:59:26: Middleware - Token valid, user: brotha
|
|
2025-11-07T13:59:27: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T13:59:27: Middleware - Token present: true
|
|
2025-11-07T13:59:27: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T13:59:27: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:06:08: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:06:08: Middleware - Token present: true
|
|
2025-11-07T14:06:08: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:06:08: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:06:08: Middleware - Path: /admin/menus
|
|
2025-11-07T14:06:08: Middleware - Token present: true
|
|
2025-11-07T14:06:08: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:06:08: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:06:12: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:06:12: Middleware - Token present: true
|
|
2025-11-07T14:06:12: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:06:12: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:06:12: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:06:12: Middleware - Token present: true
|
|
2025-11-07T14:06:12: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:06:12: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:06:12: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:06:12: Middleware - Token present: true
|
|
2025-11-07T14:06:12: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:06:12: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:10:05: === API: GET /api/menus ===
|
|
2025-11-07T14:10:05: ✓ Menus fetched: 16
|
|
2025-11-07T14:10:12: === API: GET /api/availability/weekly ===
|
|
2025-11-07T14:10:12: ✓ Weekly availability fetched: 3 slots
|
|
2025-11-07T14:10:17: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:10:17: Middleware - Token present: true
|
|
2025-11-07T14:10:17: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:10:17: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:10:18: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:10:18: Middleware - Token present: true
|
|
2025-11-07T14:10:18: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:10:18: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:10:18: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:10:18: Middleware - Token present: true
|
|
2025-11-07T14:10:18: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:10:18: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:10:18: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:10:18: Middleware - Token present: true
|
|
2025-11-07T14:10:18: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:10:18: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:14:24: > Ready on http://localhost:3000
|
|
2025-11-07T14:14:53: === API: GET /api/menus ===
|
|
2025-11-07T14:14:53: ✓ Menus fetched: 16
|
|
2025-11-07T14:14:53: === API: GET /api/availability/weekly ===
|
|
2025-11-07T14:14:53: ✓ Weekly availability fetched: 3 slots
|
|
2025-11-07T14:14:53: === Menu Generator API ===
|
|
2025-11-07T14:14:53: Request: {
|
|
prompt: 'test',
|
|
courses: 3,
|
|
style: undefined,
|
|
dietary: undefined,
|
|
sidesRequest: undefined,
|
|
generateImage: undefined
|
|
}
|
|
2025-11-07T14:14:53: Calling OpenAI API...
|
|
2025-11-07T14:15:10: ✓ OpenAI response received
|
|
2025-11-07T14:15:10: ✓ Menu generated successfully
|
|
2025-11-07T14:15:10: === Menu Generator API ===
|
|
2025-11-07T14:15:10: Request: {
|
|
prompt: undefined,
|
|
courses: undefined,
|
|
style: undefined,
|
|
dietary: undefined,
|
|
sidesRequest: undefined,
|
|
generateImage: true
|
|
}
|
|
2025-11-07T14:15:10: Generating image for menu...
|
|
2025-11-07T14:15:31: ✓ Image generated successfully
|
|
2025-11-07T14:15:31: === API: POST /api/contact ===
|
|
2025-11-07T14:15:31: Contact form submission: {
|
|
name: 'Test',
|
|
email: 'test@test.com',
|
|
hasPhone: false,
|
|
hasAddress: false,
|
|
messageLength: 4,
|
|
hasTimestamp: false
|
|
}
|
|
2025-11-07T14:15:31: SMTP config: {
|
|
host: 'smtp.office365.com',
|
|
port: 587,
|
|
user: 'not set',
|
|
to: 'christian@warme.dk'
|
|
}
|
|
2025-11-07T14:15:31: === API LOGIN REQUEST START ===
|
|
2025-11-07T14:15:31: Timestamp: 2025-11-07T13:15:31.630Z
|
|
2025-11-07T14:15:31: Request body received: { username: undefined, passwordLength: 5 }
|
|
2025-11-07T14:15:31: ERROR: Missing username or password
|
|
2025-11-07T14:15:31: === API: GET /api/bookings ===
|
|
2025-11-07T14:15:31: Query params: { date: null }
|
|
2025-11-07T14:15:31: ✓ All bookings fetched. Count: 4
|
|
2025-11-07T14:15:31: === BOOKING REQUEST ===
|
|
2025-11-07T14:15:31: Request body: {
|
|
"date": "2025-12-01",
|
|
"guests": 10
|
|
}
|
|
2025-11-07T14:15:31: ERROR: Missing required fields
|
|
2025-11-07T14:15:31: === API: GET /api/availability/blocked ===
|
|
2025-11-07T14:15:31: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T14:15:55: === API: GET /api/menus ===
|
|
2025-11-07T14:15:55: ✓ Menus fetched: 16
|
|
2025-11-07T14:15:55: === API: GET /api/availability/weekly ===
|
|
2025-11-07T14:15:55: ✓ Weekly availability fetched: 3 slots
|
|
2025-11-07T14:15:55: === Menu Generator API ===
|
|
2025-11-07T14:15:55: Request: {
|
|
prompt: 'test',
|
|
courses: 3,
|
|
style: undefined,
|
|
dietary: undefined,
|
|
sidesRequest: undefined,
|
|
generateImage: undefined
|
|
}
|
|
2025-11-07T14:15:55: Calling OpenAI API...
|
|
2025-11-07T14:16:14: ✓ OpenAI response received
|
|
2025-11-07T14:16:14: ✓ Menu generated successfully
|
|
2025-11-07T14:16:14: === Menu Generator API ===
|
|
2025-11-07T14:16:14: Request: {
|
|
prompt: undefined,
|
|
courses: undefined,
|
|
style: undefined,
|
|
dietary: undefined,
|
|
sidesRequest: undefined,
|
|
generateImage: true
|
|
}
|
|
2025-11-07T14:16:14: Generating image for menu...
|
|
2025-11-07T14:16:34: ✓ Image generated successfully
|
|
2025-11-07T14:16:34: === API: POST /api/contact ===
|
|
2025-11-07T14:16:34: Contact form submission: {
|
|
name: 'Test',
|
|
email: 'test@test.com',
|
|
hasPhone: false,
|
|
hasAddress: false,
|
|
messageLength: 4,
|
|
hasTimestamp: false
|
|
}
|
|
2025-11-07T14:16:34: SMTP config: {
|
|
host: 'smtp.office365.com',
|
|
port: 587,
|
|
user: 'not set',
|
|
to: 'christian@warme.dk'
|
|
}
|
|
2025-11-07T14:16:34: === API LOGIN REQUEST START ===
|
|
2025-11-07T14:16:34: Timestamp: 2025-11-07T13:16:34.095Z
|
|
2025-11-07T14:16:34: Request body received: { username: undefined, passwordLength: 5 }
|
|
2025-11-07T14:16:34: ERROR: Missing username or password
|
|
2025-11-07T14:16:34: === API: GET /api/bookings ===
|
|
2025-11-07T14:16:34: Query params: { date: null }
|
|
2025-11-07T14:16:34: ✓ All bookings fetched. Count: 4
|
|
2025-11-07T14:16:34: === BOOKING REQUEST ===
|
|
2025-11-07T14:16:34: Request body: {
|
|
"date": "2025-12-01",
|
|
"guests": 10
|
|
}
|
|
2025-11-07T14:16:34: ERROR: Missing required fields
|
|
2025-11-07T14:16:34: === API: GET /api/availability/blocked ===
|
|
2025-11-07T14:16:34: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T14:16:40: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:16:40: Middleware - Token present: false
|
|
2025-11-07T14:16:40: Middleware - Token value: undefined...
|
|
2025-11-07T14:16:40: Middleware - No token, redirecting to login
|
|
2025-11-07T14:16:57: === API LOGIN REQUEST START ===
|
|
2025-11-07T14:16:57: Timestamp: 2025-11-07T13:16:57.327Z
|
|
2025-11-07T14:16:57: Request body received: { username: 'brotha', passwordLength: 10 }
|
|
2025-11-07T14:16:57: Connecting to database...
|
|
2025-11-07T14:16:57: Database connected
|
|
2025-11-07T14:16:57: Querying user from database: brotha
|
|
2025-11-07T14:16:57: Query result: found 1 users
|
|
2025-11-07T14:16:57: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T14:16:57: Verifying password with salt...
|
|
2025-11-07T14:16:57: Password valid: false
|
|
2025-11-07T14:16:57: ERROR: Invalid password for user: brotha
|
|
2025-11-07T14:16:57: Database connection closed
|
|
2025-11-07T14:17:03: === API LOGIN REQUEST START ===
|
|
2025-11-07T14:17:03: Timestamp: 2025-11-07T13:17:03.495Z
|
|
2025-11-07T14:17:03: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T14:17:03: Connecting to database...
|
|
2025-11-07T14:17:03: Database connected
|
|
2025-11-07T14:17:03: Querying user from database: brotha
|
|
2025-11-07T14:17:03: Query result: found 1 users
|
|
2025-11-07T14:17:03: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T14:17:03: Verifying password with salt...
|
|
2025-11-07T14:17:03: Password valid: true
|
|
2025-11-07T14:17:03: Creating JWT token...
|
|
2025-11-07T14:17:03: JWT token created, length: 239
|
|
2025-11-07T14:17:03: Setting authToken cookie...
|
|
2025-11-07T14:17:03: Cookie set successfully
|
|
2025-11-07T14:17:03: === API LOGIN SUCCESS ===
|
|
2025-11-07T14:17:03: Database connection closed
|
|
2025-11-07T14:17:03: Middleware - Path: /admin
|
|
2025-11-07T14:17:03: Middleware - Token present: false
|
|
2025-11-07T14:17:03: Middleware - Token value: undefined...
|
|
2025-11-07T14:17:03: Middleware - No token, redirecting to login
|
|
2025-11-07T14:17:35: === API LOGIN REQUEST START ===
|
|
2025-11-07T14:17:35: Timestamp: 2025-11-07T13:17:35.219Z
|
|
2025-11-07T14:17:35: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T14:17:35: Connecting to database...
|
|
2025-11-07T14:17:35: Database connected
|
|
2025-11-07T14:17:35: Querying user from database: brotha
|
|
2025-11-07T14:17:35: Query result: found 1 users
|
|
2025-11-07T14:17:35: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T14:17:35: Verifying password with salt...
|
|
2025-11-07T14:17:35: Password valid: true
|
|
2025-11-07T14:17:35: Creating JWT token...
|
|
2025-11-07T14:17:35: JWT token created, length: 239
|
|
2025-11-07T14:17:35: Setting authToken cookie...
|
|
2025-11-07T14:17:35: Cookie set successfully
|
|
2025-11-07T14:17:35: === API LOGIN SUCCESS ===
|
|
2025-11-07T14:17:35: Database connection closed
|
|
2025-11-07T14:17:40: === API LOGIN REQUEST START ===
|
|
2025-11-07T14:17:40: Timestamp: 2025-11-07T13:17:40.194Z
|
|
2025-11-07T14:17:40: Request body received: { username: 'brotha', passwordLength: 7 }
|
|
2025-11-07T14:17:40: Connecting to database...
|
|
2025-11-07T14:17:40: Database connected
|
|
2025-11-07T14:17:40: Querying user from database: brotha
|
|
2025-11-07T14:17:40: Query result: found 1 users
|
|
2025-11-07T14:17:40: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T14:17:40: Verifying password with salt...
|
|
2025-11-07T14:17:40: Password valid: false
|
|
2025-11-07T14:17:40: ERROR: Invalid password for user: brotha
|
|
2025-11-07T14:17:40: Database connection closed
|
|
2025-11-07T14:18:01: === API LOGIN REQUEST START ===
|
|
2025-11-07T14:18:01: Timestamp: 2025-11-07T13:18:01.684Z
|
|
2025-11-07T14:18:01: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T14:18:01: Connecting to database...
|
|
2025-11-07T14:18:01: Database connected
|
|
2025-11-07T14:18:01: Querying user from database: brotha
|
|
2025-11-07T14:18:01: Query result: found 1 users
|
|
2025-11-07T14:18:01: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T14:18:01: Verifying password with salt...
|
|
2025-11-07T14:18:01: Password valid: true
|
|
2025-11-07T14:18:01: Creating JWT token...
|
|
2025-11-07T14:18:01: JWT token created, length: 239
|
|
2025-11-07T14:18:01: Setting authToken cookie...
|
|
2025-11-07T14:18:01: Cookie set successfully
|
|
2025-11-07T14:18:01: === API LOGIN SUCCESS ===
|
|
2025-11-07T14:18:01: Database connection closed
|
|
2025-11-07T14:18:26: === API LOGIN REQUEST START ===
|
|
2025-11-07T14:18:26: Timestamp: 2025-11-07T13:18:26.617Z
|
|
2025-11-07T14:18:26: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T14:18:26: Connecting to database...
|
|
2025-11-07T14:18:26: Database connected
|
|
2025-11-07T14:18:26: Querying user from database: brotha
|
|
2025-11-07T14:18:26: Query result: found 1 users
|
|
2025-11-07T14:18:26: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T14:18:26: Verifying password with salt...
|
|
2025-11-07T14:18:26: Password valid: true
|
|
2025-11-07T14:18:26: Creating JWT token...
|
|
2025-11-07T14:18:26: JWT token created, length: 239
|
|
2025-11-07T14:18:26: Setting authToken cookie...
|
|
2025-11-07T14:18:26: Cookie set successfully
|
|
2025-11-07T14:18:26: === API LOGIN SUCCESS ===
|
|
2025-11-07T14:18:26: Database connection closed
|
|
2025-11-07T14:18:42: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:18:42: Middleware - Token present: true
|
|
2025-11-07T14:18:42: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:18:42: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:18:43: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:18:43: Middleware - Token present: true
|
|
2025-11-07T14:18:43: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:18:43: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:20:43: === API: GET /api/availability/weekly ===
|
|
2025-11-07T14:20:43: === API: GET /api/availability/blocked ===
|
|
2025-11-07T14:20:43: ✓ Weekly availability fetched: 3 slots
|
|
2025-11-07T14:20:43: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T14:20:46: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:20:46: Middleware - Token present: true
|
|
2025-11-07T14:20:46: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:20:46: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:20:46: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:20:46: Middleware - Token present: true
|
|
2025-11-07T14:20:46: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:20:46: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:20:46: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:20:46: Middleware - Token present: true
|
|
2025-11-07T14:20:46: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:20:46: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:20:47: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:20:47: Middleware - Token present: true
|
|
2025-11-07T14:20:47: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:20:47: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:20:47: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:20:47: Middleware - Token present: true
|
|
2025-11-07T14:20:47: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:20:47: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:24:47: > Ready on http://localhost:3000
|
|
2025-11-07T14:27:46: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:27:46: Middleware - Token present: true
|
|
2025-11-07T14:27:46: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:27:46: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:27:46: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:27:46: Middleware - Token present: true
|
|
2025-11-07T14:27:46: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:27:46: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:27:46: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:27:46: Middleware - Token present: true
|
|
2025-11-07T14:27:46: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:27:46: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:27:47: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:27:47: Middleware - Token present: true
|
|
2025-11-07T14:27:47: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:27:47: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:27:47: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:27:47: Middleware - Token present: true
|
|
2025-11-07T14:27:47: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:27:47: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:27:47: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:27:47: Middleware - Token present: true
|
|
2025-11-07T14:27:47: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:27:47: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:27:49: === API: GET /api/availability/weekly ===
|
|
2025-11-07T14:27:49: === API: GET /api/availability/blocked ===
|
|
2025-11-07T14:27:49: ✓ Weekly availability fetched: 3 slots
|
|
2025-11-07T14:27:49: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T14:27:49: === API: GET /api/availability/weekly ===
|
|
2025-11-07T14:27:49: === API: GET /api/availability/blocked ===
|
|
2025-11-07T14:27:49: ✓ Weekly availability fetched: 3 slots
|
|
2025-11-07T14:27:49: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T14:30:27: > Ready on http://localhost:3000
|
|
2025-11-07T14:30:37: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:30:37: Middleware - Token present: true
|
|
2025-11-07T14:30:37: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:30:37: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:36:07: > Ready on http://localhost:3000
|
|
2025-11-07T14:39:32: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:39:32: Middleware - Token present: true
|
|
2025-11-07T14:39:32: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:39:32: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:39:32: Middleware - Path: /admin/menus
|
|
2025-11-07T14:39:32: Middleware - Token present: true
|
|
2025-11-07T14:39:32: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:39:32: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T14:39:32: Middleware - Token present: true
|
|
2025-11-07T14:39:32: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:39:32: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:39:32: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:44:12: === Menu Generator API ===
|
|
2025-11-07T14:44:12: Request: {
|
|
prompt: '',
|
|
courses: 3,
|
|
style: '',
|
|
dietary: '',
|
|
sidesRequest: 'kartofler og sovs',
|
|
starterRequest: 'ærte suppe',
|
|
mainRequest: 'ribeye',
|
|
dessertRequest: 'is sorbe',
|
|
generateImage: undefined
|
|
}
|
|
2025-11-07T14:44:12: Calling OpenAI API...
|
|
2025-11-07T14:44:27: ✓ OpenAI response received
|
|
2025-11-07T14:44:27: ✓ Menu generated successfully
|
|
2025-11-07T14:44:30: === Menu Generator API ===
|
|
2025-11-07T14:44:30: Request: {
|
|
prompt: undefined,
|
|
courses: undefined,
|
|
style: undefined,
|
|
dietary: undefined,
|
|
sidesRequest: undefined,
|
|
starterRequest: undefined,
|
|
mainRequest: undefined,
|
|
dessertRequest: undefined,
|
|
generateImage: true
|
|
}
|
|
2025-11-07T14:44:30: Generating image for menu...
|
|
2025-11-07T14:44:47: ✓ Image generated successfully
|
|
2025-11-07T14:45:52: === API: POST /api/menus ===
|
|
2025-11-07T14:45:52: Request body: {
|
|
id: 'saesonbetonet-gourmetmenu',
|
|
title: 'Sæsonbetonet Gourmetmenu',
|
|
ingredientsCount: 12
|
|
}
|
|
2025-11-07T14:45:52: ✓ 12 ingredients saved
|
|
2025-11-07T14:45:52: ✓ Menu created successfully: saesonbetonet-gourmetmenu
|
|
2025-11-07T14:45:59: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:45:59: Middleware - Token present: true
|
|
2025-11-07T14:45:59: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:45:59: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:45:59: Middleware - Path: /admin/menus
|
|
2025-11-07T14:45:59: Middleware - Token present: true
|
|
2025-11-07T14:45:59: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:45:59: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:45:59: === API: GET /api/menus ===
|
|
2025-11-07T14:45:59: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:45:59: Middleware - Token present: true
|
|
2025-11-07T14:45:59: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:45:59: ✓ Menus fetched: 17
|
|
2025-11-07T14:45:59: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:45:59: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T14:45:59: Middleware - Token present: true
|
|
2025-11-07T14:45:59: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:45:59: Middleware - Path: /admin/availability
|
|
2025-11-07T14:45:59: Middleware - Token present: true
|
|
2025-11-07T14:45:59: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:45:59: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:45:59: Middleware - Path: /admin/bookings
|
|
2025-11-07T14:45:59: Middleware - Token present: true
|
|
2025-11-07T14:45:59: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:45:59: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:45:59: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:46:50: Middleware - Path: /admin/menus
|
|
2025-11-07T14:46:50: Middleware - Token present: true
|
|
2025-11-07T14:46:50: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:46:50: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:48:25: Middleware - Path: /admin/menus
|
|
2025-11-07T14:48:25: Middleware - Token present: true
|
|
2025-11-07T14:48:25: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:48:25: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:48:25: === API: GET /api/menus ===
|
|
2025-11-07T14:48:25: ✓ Menus fetched: 17
|
|
2025-11-07T14:48:25: Middleware - Path: /admin/menus
|
|
2025-11-07T14:48:25: Middleware - Token present: true
|
|
2025-11-07T14:48:25: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:48:25: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:48:25: === API: GET /api/menus ===
|
|
2025-11-07T14:48:25: ✓ Menus fetched: 17
|
|
2025-11-07T14:48:26: Middleware - Path: /admin/menus
|
|
2025-11-07T14:48:26: Middleware - Token present: true
|
|
2025-11-07T14:48:26: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:48:26: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:48:26: === API: GET /api/menus ===
|
|
2025-11-07T14:48:26: ✓ Menus fetched: 17
|
|
2025-11-07T14:48:26: Middleware - Path: /admin/menus
|
|
2025-11-07T14:48:26: Middleware - Token present: true
|
|
2025-11-07T14:48:26: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:48:26: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:48:26: Middleware - Path: /admin/menus
|
|
2025-11-07T14:48:26: Middleware - Token present: true
|
|
2025-11-07T14:48:26: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:48:26: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:48:26: === API: GET /api/menus ===
|
|
2025-11-07T14:48:26: ✓ Menus fetched: 17
|
|
2025-11-07T14:48:47: Middleware - Path: /admin/menus
|
|
2025-11-07T14:48:47: Middleware - Token present: true
|
|
2025-11-07T14:48:47: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:48:47: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:48:47: === API: GET /api/menus ===
|
|
2025-11-07T14:48:47: ✓ Menus fetched: 17
|
|
2025-11-07T14:48:48: Middleware - Path: /admin/menus
|
|
2025-11-07T14:48:48: Middleware - Token present: true
|
|
2025-11-07T14:48:48: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:48:48: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:48:48: === API: GET /api/menus ===
|
|
2025-11-07T14:48:48: ✓ Menus fetched: 17
|
|
2025-11-07T14:48:48: Middleware - Path: /admin/menus
|
|
2025-11-07T14:48:48: Middleware - Token present: true
|
|
2025-11-07T14:48:48: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:48:48: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:48:48: === API: GET /api/menus ===
|
|
2025-11-07T14:48:48: ✓ Menus fetched: 17
|
|
2025-11-07T14:48:48: Middleware - Path: /admin/menus
|
|
2025-11-07T14:48:48: Middleware - Token present: true
|
|
2025-11-07T14:48:48: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:48:48: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:48:48: === API: GET /api/menus ===
|
|
2025-11-07T14:48:48: ✓ Menus fetched: 17
|
|
2025-11-07T14:49:56: > Ready on http://localhost:3000
|
|
2025-11-07T14:50:13: Middleware - Path: /admin/menus
|
|
2025-11-07T14:50:13: Middleware - Token present: true
|
|
2025-11-07T14:50:13: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:50:13: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:50:13: === API: GET /api/menus ===
|
|
2025-11-07T14:50:13: ✓ Menus fetched: 17
|
|
2025-11-07T14:50:14: Middleware - Path: /admin/menus
|
|
2025-11-07T14:50:14: Middleware - Token present: true
|
|
2025-11-07T14:50:14: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:50:14: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:50:14: === API: GET /api/menus ===
|
|
2025-11-07T14:50:14: ✓ Menus fetched: 17
|
|
2025-11-07T14:51:31: Middleware - Path: /admin/menus
|
|
2025-11-07T14:51:31: Middleware - Token present: true
|
|
2025-11-07T14:51:31: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:51:31: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:51:31: === API: GET /api/menus ===
|
|
2025-11-07T14:51:31: ✓ Menus fetched: 17
|
|
2025-11-07T14:51:37: === API: GET /api/availability/weekly ===
|
|
2025-11-07T14:51:37: === API: GET /api/availability/blocked ===
|
|
2025-11-07T14:51:37: ✓ Weekly availability fetched: 3 slots
|
|
2025-11-07T14:51:37: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T14:51:37: === API: GET /api/availability/weekly ===
|
|
2025-11-07T14:51:37: === API: GET /api/availability/blocked ===
|
|
2025-11-07T14:51:37: ✓ Weekly availability fetched: 3 slots
|
|
2025-11-07T14:51:37: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T14:52:44: > Ready on http://localhost:3000
|
|
2025-11-07T14:52:49: Middleware - Path: /admin/menus
|
|
2025-11-07T14:52:49: Middleware - Token present: true
|
|
2025-11-07T14:52:49: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:52:49: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:52:50: === API: GET /api/menus ===
|
|
2025-11-07T14:52:50: ✓ Menus fetched: 17
|
|
2025-11-07T14:52:55: Middleware - Path: /admin/menus
|
|
2025-11-07T14:52:55: Middleware - Token present: true
|
|
2025-11-07T14:52:55: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:52:55: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:53:35: Middleware - Path: /admin/menus
|
|
2025-11-07T14:53:35: Middleware - Token present: true
|
|
2025-11-07T14:53:35: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:53:35: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:53:35: === API: GET /api/menus ===
|
|
2025-11-07T14:53:35: ✓ Menus fetched: 17
|
|
2025-11-07T14:53:36: Middleware - Path: /admin/menus
|
|
2025-11-07T14:53:36: Middleware - Token present: true
|
|
2025-11-07T14:53:36: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:53:36: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:53:36: === API: GET /api/menus ===
|
|
2025-11-07T14:53:36: ✓ Menus fetched: 17
|
|
2025-11-07T14:53:54: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:53:54: Middleware - Token present: true
|
|
2025-11-07T14:53:54: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:53:54: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:53:57: Middleware - Path: /admin/menus
|
|
2025-11-07T14:53:57: Middleware - Token present: true
|
|
2025-11-07T14:53:57: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:53:57: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:53:59: > Ready on http://localhost:3000
|
|
2025-11-07T14:54:26: Middleware - Path: /admin/menus
|
|
2025-11-07T14:54:26: Middleware - Token present: true
|
|
2025-11-07T14:54:26: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:54:26: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:54:26: === API: GET /api/menus ===
|
|
2025-11-07T14:54:26: ✓ Menus fetched: 17
|
|
2025-11-07T14:55:05: Middleware - Path: /admin/menus
|
|
2025-11-07T14:55:05: Middleware - Token present: true
|
|
2025-11-07T14:55:05: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:55:05: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:55:05: === API: GET /api/menus ===
|
|
2025-11-07T14:55:05: ✓ Menus fetched: 17
|
|
2025-11-07T14:55:05: Middleware - Path: /admin/menus
|
|
2025-11-07T14:55:05: Middleware - Token present: true
|
|
2025-11-07T14:55:05: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:55:05: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:55:05: === API: GET /api/menus ===
|
|
2025-11-07T14:55:05: ✓ Menus fetched: 17
|
|
2025-11-07T14:55:05: Middleware - Path: /admin/menus
|
|
2025-11-07T14:55:05: Middleware - Token present: true
|
|
2025-11-07T14:55:05: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:55:05: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:55:05: === API: GET /api/menus ===
|
|
2025-11-07T14:55:05: ✓ Menus fetched: 17
|
|
2025-11-07T14:55:22: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T14:55:22: Middleware - Token present: true
|
|
2025-11-07T14:55:22: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:55:22: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:55:23: Middleware - Path: /admin/menus
|
|
2025-11-07T14:55:23: Middleware - Token present: true
|
|
2025-11-07T14:55:23: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:55:23: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:55:23: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T14:55:23: Middleware - Token present: true
|
|
2025-11-07T14:55:23: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:55:23: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:55:23: Middleware - Path: /admin/bookings
|
|
2025-11-07T14:55:23: Middleware - Token present: true
|
|
2025-11-07T14:55:23: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:55:23: Middleware - Token valid, user: brotha
|
|
2025-11-07T14:56:02: > Ready on http://localhost:3000
|
|
2025-11-07T14:59:25: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T14:59:25: Middleware - Token present: true
|
|
2025-11-07T14:59:25: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T14:59:25: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:00:03: > Ready on http://localhost:3000
|
|
2025-11-07T15:00:11: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T15:00:11: Middleware - Token present: true
|
|
2025-11-07T15:00:11: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:00:11: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:00:11: Middleware - Path: /admin/ingredients
|
|
2025-11-07T15:00:11: Middleware - Token present: true
|
|
2025-11-07T15:00:11: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:00:11: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:00:12: === API: GET /api/ingredients ===
|
|
2025-11-07T15:00:12: ✓ Ingredients fetched: 13
|
|
2025-11-07T15:00:58: === API: GET /api/availability/weekly ===
|
|
2025-11-07T15:00:58: === API: GET /api/availability/blocked ===
|
|
2025-11-07T15:00:58: ✓ Weekly availability fetched: 3 slots
|
|
2025-11-07T15:00:58: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T15:00:58: === API: GET /api/availability/weekly ===
|
|
2025-11-07T15:00:58: === API: GET /api/availability/blocked ===
|
|
2025-11-07T15:00:58: ✓ Weekly availability fetched: 3 slots
|
|
2025-11-07T15:00:58: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T15:02:18: > Ready on http://localhost:3000
|
|
2025-11-07T15:03:37: > Ready on http://localhost:3000
|
|
2025-11-07T15:06:01: Middleware - Path: /admin/menus
|
|
2025-11-07T15:06:01: Middleware - Token present: true
|
|
2025-11-07T15:06:01: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:06:01: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:06:01: === API: GET /api/menus ===
|
|
2025-11-07T15:06:01: Middleware - Path: /admin/ingredients
|
|
2025-11-07T15:06:01: Middleware - Token present: true
|
|
2025-11-07T15:06:01: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:06:01: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:06:01: ✓ Menus fetched: 17
|
|
2025-11-07T15:06:01: Middleware - Path: /admin/menus
|
|
2025-11-07T15:06:01: Middleware - Token present: true
|
|
2025-11-07T15:06:01: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:06:01: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:06:01: === API: GET /api/menus ===
|
|
2025-11-07T15:06:01: ✓ Menus fetched: 17
|
|
2025-11-07T15:06:30: === Menu Generator API ===
|
|
2025-11-07T15:06:30: Request: {
|
|
prompt: undefined,
|
|
courses: undefined,
|
|
style: undefined,
|
|
dietary: undefined,
|
|
sidesRequest: undefined,
|
|
starterRequest: undefined,
|
|
mainRequest: undefined,
|
|
dessertRequest: undefined,
|
|
generateImage: true
|
|
}
|
|
2025-11-07T15:06:30: Generating image for menu...
|
|
2025-11-07T15:06:48: ✓ Image generated successfully
|
|
2025-11-07T15:06:58: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T15:06:58: Middleware - Token present: true
|
|
2025-11-07T15:06:58: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:06:58: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:06:59: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T15:06:59: Middleware - Token present: true
|
|
2025-11-07T15:06:59: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:06:59: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:07:00: === API: PUT /api/menus ===
|
|
2025-11-07T15:07:00: Request body: { id: 'saesonbetonet-gourmetmenu', name: undefined }
|
|
2025-11-07T15:07:00: ✓ Menu updated successfully: saesonbetonet-gourmetmenu Affected rows: 1
|
|
2025-11-07T15:07:16: === API LOGIN REQUEST START ===
|
|
2025-11-07T15:07:16: Timestamp: 2025-11-07T14:07:16.828Z
|
|
2025-11-07T15:07:16: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T15:07:16: Connecting to database...
|
|
2025-11-07T15:07:16: Database connected
|
|
2025-11-07T15:07:16: Querying user from database: brotha
|
|
2025-11-07T15:07:16: Query result: found 1 users
|
|
2025-11-07T15:07:16: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T15:07:16: Verifying password with salt...
|
|
2025-11-07T15:07:16: Password valid: true
|
|
2025-11-07T15:07:16: Creating JWT token...
|
|
2025-11-07T15:07:16: JWT token created, length: 239
|
|
2025-11-07T15:07:16: Setting authToken cookie...
|
|
2025-11-07T15:07:16: Cookie set successfully
|
|
2025-11-07T15:07:16: === API LOGIN SUCCESS ===
|
|
2025-11-07T15:07:16: Database connection closed
|
|
2025-11-07T15:07:17: Middleware - Path: /admin
|
|
2025-11-07T15:07:17: Middleware - Token present: true
|
|
2025-11-07T15:07:17: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:07:17: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:07:18: Middleware - Path: /admin/availability
|
|
2025-11-07T15:07:18: Middleware - Token present: true
|
|
2025-11-07T15:07:18: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:07:18: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:07:20: === API LOGIN REQUEST START ===
|
|
2025-11-07T15:07:20: Timestamp: 2025-11-07T14:07:20.849Z
|
|
2025-11-07T15:07:20: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T15:07:20: Connecting to database...
|
|
2025-11-07T15:07:20: Database connected
|
|
2025-11-07T15:07:20: Querying user from database: brotha
|
|
2025-11-07T15:07:20: Query result: found 1 users
|
|
2025-11-07T15:07:20: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T15:07:20: Verifying password with salt...
|
|
2025-11-07T15:07:21: Password valid: true
|
|
2025-11-07T15:07:21: Creating JWT token...
|
|
2025-11-07T15:07:21: JWT token created, length: 239
|
|
2025-11-07T15:07:21: Setting authToken cookie...
|
|
2025-11-07T15:07:21: Cookie set successfully
|
|
2025-11-07T15:07:21: === API LOGIN SUCCESS ===
|
|
2025-11-07T15:07:21: Database connection closed
|
|
2025-11-07T15:07:21: Middleware - Path: /admin
|
|
2025-11-07T15:07:21: Middleware - Token present: true
|
|
2025-11-07T15:07:21: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:07:21: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:07:23: Middleware - Path: /admin
|
|
2025-11-07T15:07:23: Middleware - Token present: true
|
|
2025-11-07T15:07:23: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:07:23: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:07:23: === API: GET /api/menus ===
|
|
2025-11-07T15:07:23: ✓ Menus fetched: 17
|
|
2025-11-07T15:07:23: Middleware - Path: /admin/menus
|
|
2025-11-07T15:07:23: Middleware - Token present: true
|
|
2025-11-07T15:07:23: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:07:23: Middleware - Path: /admin/ingredients
|
|
2025-11-07T15:07:23: Middleware - Token present: true
|
|
2025-11-07T15:07:23: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:07:23: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:07:23: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:07:31: === API: GET /api/menus ===
|
|
2025-11-07T15:07:31: ✓ Menus fetched: 17
|
|
2025-11-07T15:07:34: Middleware - Path: /admin
|
|
2025-11-07T15:07:34: Middleware - Token present: true
|
|
2025-11-07T15:07:34: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:07:34: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:07:34: === API: GET /api/menus ===
|
|
2025-11-07T15:07:34: ✓ Menus fetched: 17
|
|
2025-11-07T15:08:43: Middleware - Path: /admin/availability
|
|
2025-11-07T15:08:43: Middleware - Token present: false
|
|
2025-11-07T15:08:43: Middleware - Token value: undefined...
|
|
2025-11-07T15:08:43: Middleware - No token, redirecting to login
|
|
2025-11-07T15:09:51: === API: GET /api/availability/blocked ===
|
|
2025-11-07T15:09:51: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T15:15:07: > Ready on http://localhost:3000
|
|
2025-11-07T15:16:01: > Ready on http://localhost:3000
|
|
2025-11-07T15:18:42: Middleware - Path: /admin
|
|
2025-11-07T15:18:42: Middleware - Token present: true
|
|
2025-11-07T15:18:42: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:18:42: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:18:42: === API: GET /api/menus ===
|
|
2025-11-07T15:18:42: Middleware - Path: /admin/menus
|
|
2025-11-07T15:18:42: Middleware - Token present: true
|
|
2025-11-07T15:18:42: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:18:42: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T15:18:42: Middleware - Token present: true
|
|
2025-11-07T15:18:42: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:18:42: Middleware - Path: /admin/ingredients
|
|
2025-11-07T15:18:42: Middleware - Token present: true
|
|
2025-11-07T15:18:42: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:18:42: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T15:18:42: Middleware - Token present: true
|
|
2025-11-07T15:18:42: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:18:42: Middleware - Path: /admin/availability
|
|
2025-11-07T15:18:42: Middleware - Token present: true
|
|
2025-11-07T15:18:42: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:18:42: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:18:42: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:18:42: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:18:42: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:18:42: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:18:42: ✓ Menus fetched: 17
|
|
2025-11-07T15:18:49: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T15:18:49: Middleware - Token present: true
|
|
2025-11-07T15:18:49: Middleware - Token value: eyJhbGciOiJIUzI1NiIs...
|
|
2025-11-07T15:18:49: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:19:21: === API LOGIN REQUEST START ===
|
|
2025-11-07T15:19:21: Timestamp: 2025-11-07T14:19:21.684Z
|
|
2025-11-07T15:19:21: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T15:19:21: Connecting to database...
|
|
2025-11-07T15:19:21: Database connected
|
|
2025-11-07T15:19:21: Querying user from database: brotha
|
|
2025-11-07T15:19:21: Query result: found 1 users
|
|
2025-11-07T15:19:21: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T15:19:21: Verifying password with salt...
|
|
2025-11-07T15:19:21: Password valid: true
|
|
2025-11-07T15:19:21: Creating JWT token...
|
|
2025-11-07T15:19:21: JWT token created, length: 239
|
|
2025-11-07T15:19:21: Setting authToken cookie...
|
|
2025-11-07T15:19:21: Cookie set successfully
|
|
2025-11-07T15:19:21: === API LOGIN SUCCESS ===
|
|
2025-11-07T15:19:21: Database connection closed
|
|
2025-11-07T15:21:11: > Ready on http://localhost:3000
|
|
2025-11-07T15:22:26: Middleware - Path: /admin
|
|
2025-11-07T15:22:26: Middleware - Token present: true
|
|
2025-11-07T15:22:26: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:22:26: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:22:26: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:22:27: Middleware - Path: /admin
|
|
2025-11-07T15:22:27: Middleware - Token present: true
|
|
2025-11-07T15:22:27: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:22:27: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:22:27: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:22:27: === API: GET /api/menus ===
|
|
2025-11-07T15:22:27: ✓ Menus fetched: 17
|
|
2025-11-07T15:22:27: Middleware - Path: /admin
|
|
2025-11-07T15:22:27: Middleware - Token present: true
|
|
2025-11-07T15:22:27: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:22:27: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:22:27: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:22:27: === API: GET /api/menus ===
|
|
2025-11-07T15:22:27: ✓ Menus fetched: 17
|
|
2025-11-07T15:22:27: Middleware - Path: /admin
|
|
2025-11-07T15:22:27: Middleware - Token present: true
|
|
2025-11-07T15:22:27: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:22:27: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:22:27: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:22:27: Middleware - Path: /admin
|
|
2025-11-07T15:22:27: Middleware - Token present: true
|
|
2025-11-07T15:22:27: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:22:27: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:22:27: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:22:27: === API: GET /api/menus ===
|
|
2025-11-07T15:22:27: ✓ Menus fetched: 17
|
|
2025-11-07T15:22:28: Middleware - Path: /admin
|
|
2025-11-07T15:22:28: Middleware - Token present: true
|
|
2025-11-07T15:22:28: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:22:28: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:22:28: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:22:28: === API: GET /api/menus ===
|
|
2025-11-07T15:22:28: ✓ Menus fetched: 17
|
|
2025-11-07T15:22:28: Middleware - Path: /admin
|
|
2025-11-07T15:22:28: Middleware - Token present: true
|
|
2025-11-07T15:22:28: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:22:28: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:22:28: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:22:30: Middleware - Path: /admin/availability
|
|
2025-11-07T15:22:30: Middleware - Token present: true
|
|
2025-11-07T15:22:30: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:22:30: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:22:30: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:22:34: === API LOGIN REQUEST START ===
|
|
2025-11-07T15:22:34: Timestamp: 2025-11-07T14:22:34.108Z
|
|
2025-11-07T15:22:34: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T15:22:34: Connecting to database...
|
|
2025-11-07T15:22:34: Database connected
|
|
2025-11-07T15:22:34: Querying user from database: brotha
|
|
2025-11-07T15:22:34: Query result: found 1 users
|
|
2025-11-07T15:22:34: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T15:22:34: Verifying password with salt...
|
|
2025-11-07T15:22:34: Password valid: true
|
|
2025-11-07T15:22:34: Creating JWT token...
|
|
2025-11-07T15:22:34: JWT token created, length: 239
|
|
2025-11-07T15:22:34: Setting authToken cookie...
|
|
2025-11-07T15:22:34: Cookie set successfully
|
|
2025-11-07T15:22:34: === API LOGIN SUCCESS ===
|
|
2025-11-07T15:22:34: Database connection closed
|
|
2025-11-07T15:22:45: === API LOGIN REQUEST START ===
|
|
2025-11-07T15:22:45: Timestamp: 2025-11-07T14:22:45.211Z
|
|
2025-11-07T15:22:45: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T15:22:45: Connecting to database...
|
|
2025-11-07T15:22:45: Database connected
|
|
2025-11-07T15:22:45: Querying user from database: brotha
|
|
2025-11-07T15:22:45: Query result: found 1 users
|
|
2025-11-07T15:22:45: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T15:22:45: Verifying password with salt...
|
|
2025-11-07T15:22:45: Password valid: true
|
|
2025-11-07T15:22:45: Creating JWT token...
|
|
2025-11-07T15:22:45: JWT token created, length: 239
|
|
2025-11-07T15:22:45: Setting authToken cookie...
|
|
2025-11-07T15:22:45: Cookie set successfully
|
|
2025-11-07T15:22:45: === API LOGIN SUCCESS ===
|
|
2025-11-07T15:22:45: Database connection closed
|
|
2025-11-07T15:25:54: === API LOGIN REQUEST START ===
|
|
2025-11-07T15:25:54: Timestamp: 2025-11-07T14:25:54.400Z
|
|
2025-11-07T15:25:54: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T15:25:54: Connecting to database...
|
|
2025-11-07T15:25:54: Database connected
|
|
2025-11-07T15:25:54: Querying user from database: brotha
|
|
2025-11-07T15:25:54: Query result: found 1 users
|
|
2025-11-07T15:25:54: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T15:25:54: Verifying password with salt...
|
|
2025-11-07T15:25:54: Password valid: true
|
|
2025-11-07T15:25:54: Creating JWT token...
|
|
2025-11-07T15:25:54: JWT token created, length: 239
|
|
2025-11-07T15:25:54: Setting authToken cookie...
|
|
2025-11-07T15:25:54: Cookie set successfully
|
|
2025-11-07T15:25:54: === API LOGIN SUCCESS ===
|
|
2025-11-07T15:25:54: Database connection closed
|
|
2025-11-07T15:25:54: Middleware - Path: /admin
|
|
2025-11-07T15:25:54: Middleware - Token present: true
|
|
2025-11-07T15:25:54: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:25:54: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:25:54: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:27:12: > Ready on http://localhost:3000
|
|
2025-11-07T15:27:26: Middleware - Path: /admin
|
|
2025-11-07T15:27:26: Middleware - Token present: true
|
|
2025-11-07T15:27:26: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:27:26: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:27:26: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:27:26: === API: GET /api/menus ===
|
|
2025-11-07T15:27:27: ✓ Menus fetched: 17
|
|
2025-11-07T15:27:36: Middleware - Path: /admin/availability
|
|
2025-11-07T15:27:36: Middleware - Token present: true
|
|
2025-11-07T15:27:36: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:27:36: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:27:36: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:29:56: > Ready on http://localhost:3000
|
|
2025-11-07T15:30:57: === API LOGIN REQUEST START ===
|
|
2025-11-07T15:30:57: Timestamp: 2025-11-07T14:30:57.990Z
|
|
2025-11-07T15:30:57: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T15:30:57: Connecting to database...
|
|
2025-11-07T15:30:58: Database connected
|
|
2025-11-07T15:30:58: Querying user from database: brotha
|
|
2025-11-07T15:30:58: Query result: found 1 users
|
|
2025-11-07T15:30:58: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T15:30:58: Verifying password with salt...
|
|
2025-11-07T15:30:58: Password valid: true
|
|
2025-11-07T15:30:58: Creating JWT token...
|
|
2025-11-07T15:30:58: JWT token created, length: 239
|
|
2025-11-07T15:30:58: Setting authToken cookie...
|
|
2025-11-07T15:30:58: Cookie set successfully
|
|
2025-11-07T15:30:58: === API LOGIN SUCCESS ===
|
|
2025-11-07T15:30:58: Database connection closed
|
|
2025-11-07T15:30:58: Middleware - Path: /admin
|
|
2025-11-07T15:30:58: Middleware - Token present: true
|
|
2025-11-07T15:30:58: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:30:58: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:30:58: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:30:58: Middleware - Path: /admin/bookings
|
|
2025-11-07T15:30:58: Middleware - Token present: true
|
|
2025-11-07T15:30:58: Middleware - Accept header: */*
|
|
2025-11-07T15:30:58: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:30:58: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:32:10: > Ready on http://localhost:3000
|
|
2025-11-07T15:33:09: > Ready on http://localhost:3000
|
|
2025-11-07T15:35:53: Middleware - Path: /admin
|
|
2025-11-07T15:35:53: Middleware - Token present: true
|
|
2025-11-07T15:35:53: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:35:53: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:35:53: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:36:00: Middleware - Path: /admin
|
|
2025-11-07T15:36:00: Middleware - Token present: true
|
|
2025-11-07T15:36:00: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:36:00: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:36:00: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:36:01: Middleware - Path: /admin
|
|
2025-11-07T15:36:01: Middleware - Token present: true
|
|
2025-11-07T15:36:01: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:36:01: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:36:01: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:36:01: Middleware - Path: /admin/bookings
|
|
2025-11-07T15:36:01: Middleware - Token present: true
|
|
2025-11-07T15:36:01: Middleware - Accept header: */*
|
|
2025-11-07T15:36:01: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:36:01: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:36:01: === API: GET /api/menus ===
|
|
2025-11-07T15:36:01: Middleware - Path: /admin/availability
|
|
2025-11-07T15:36:01: Middleware - Token present: true
|
|
2025-11-07T15:36:01: Middleware - Accept header: */*
|
|
2025-11-07T15:36:01: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:36:01: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:36:01: Middleware - Path: /admin
|
|
2025-11-07T15:36:01: Middleware - Token present: true
|
|
2025-11-07T15:36:01: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:36:01: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:36:01: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:36:01: Middleware - Path: /admin/menus
|
|
2025-11-07T15:36:01: Middleware - Token present: true
|
|
2025-11-07T15:36:01: Middleware - Accept header: */*
|
|
2025-11-07T15:36:01: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:36:01: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:36:01: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T15:36:01: Middleware - Token present: true
|
|
2025-11-07T15:36:01: Middleware - Accept header: */*
|
|
2025-11-07T15:36:01: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:36:01: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:36:01: Middleware - Path: /admin/ingredients
|
|
2025-11-07T15:36:01: Middleware - Token present: true
|
|
2025-11-07T15:36:01: Middleware - Accept header: */*
|
|
2025-11-07T15:36:01: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:36:01: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:36:01: ✓ Menus fetched: 17
|
|
2025-11-07T15:36:01: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T15:36:01: Middleware - Token present: true
|
|
2025-11-07T15:36:01: Middleware - Accept header: */*
|
|
2025-11-07T15:36:01: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:36:01: Middleware - Path: /admin/bookings
|
|
2025-11-07T15:36:01: Middleware - Token present: true
|
|
2025-11-07T15:36:01: Middleware - Accept header: */*
|
|
2025-11-07T15:36:01: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:36:01: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:36:01: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:36:01: Middleware - Path: /admin
|
|
2025-11-07T15:36:01: Middleware - Token present: true
|
|
2025-11-07T15:36:01: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:36:01: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:36:01: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:36:01: Middleware - Path: /admin/bookings
|
|
2025-11-07T15:36:01: Middleware - Token present: true
|
|
2025-11-07T15:36:01: Middleware - Accept header: */*
|
|
2025-11-07T15:36:01: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:36:01: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:36:01: === API: GET /api/menus ===
|
|
2025-11-07T15:36:01: ✓ Menus fetched: 17
|
|
2025-11-07T15:36:01: Middleware - Path: /admin/availability
|
|
2025-11-07T15:36:01: Middleware - Token present: true
|
|
2025-11-07T15:36:01: Middleware - Accept header: */*
|
|
2025-11-07T15:36:01: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:36:01: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:36:59: > Ready on http://localhost:3000
|
|
2025-11-07T15:37:29: Middleware - Path: /admin
|
|
2025-11-07T15:37:29: Middleware - Token present: true
|
|
2025-11-07T15:37:29: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:37:29: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:37:29: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:37:29: === API: GET /api/menus ===
|
|
2025-11-07T15:37:29: ✓ Menus fetched: 17
|
|
2025-11-07T15:37:30: Middleware - Path: /admin
|
|
2025-11-07T15:37:30: Middleware - Token present: true
|
|
2025-11-07T15:37:30: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:37:30: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:37:30: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:37:30: === API: GET /api/menus ===
|
|
2025-11-07T15:37:30: ✓ Menus fetched: 17
|
|
2025-11-07T15:37:30: Middleware - Path: /admin/bookings
|
|
2025-11-07T15:37:30: Middleware - Token present: true
|
|
2025-11-07T15:37:30: Middleware - Accept header: */*
|
|
2025-11-07T15:37:30: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:37:30: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:38:32: === API LOGIN REQUEST START ===
|
|
2025-11-07T15:38:32: Timestamp: 2025-11-07T14:38:32.276Z
|
|
2025-11-07T15:38:32: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T15:38:32: Connecting to database...
|
|
2025-11-07T15:38:32: Database connected
|
|
2025-11-07T15:38:32: Querying user from database: brotha
|
|
2025-11-07T15:38:32: Query result: found 1 users
|
|
2025-11-07T15:38:32: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T15:38:32: Verifying password with salt...
|
|
2025-11-07T15:38:32: Password valid: true
|
|
2025-11-07T15:38:32: Creating JWT token...
|
|
2025-11-07T15:38:32: JWT token created, length: 239
|
|
2025-11-07T15:38:32: Setting authToken cookie...
|
|
2025-11-07T15:38:32: Cookie set successfully
|
|
2025-11-07T15:38:32: === API LOGIN SUCCESS ===
|
|
2025-11-07T15:38:32: Database connection closed
|
|
2025-11-07T15:38:32: Middleware - Path: /admin
|
|
2025-11-07T15:38:32: Middleware - Token present: true
|
|
2025-11-07T15:38:32: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
|
|
2025-11-07T15:38:32: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:38:32: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:38:32: === API: GET /api/menus ===
|
|
2025-11-07T15:38:32: ✓ Menus fetched: 17
|
|
2025-11-07T15:38:32: Middleware - Path: /admin/availability
|
|
2025-11-07T15:38:32: Middleware - Token present: true
|
|
2025-11-07T15:38:32: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
|
|
2025-11-07T15:38:32: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:38:32: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:38:32: Middleware - Path: /admin/menus
|
|
2025-11-07T15:38:32: Middleware - Token present: true
|
|
2025-11-07T15:38:32: Middleware - Accept header: */*
|
|
2025-11-07T15:38:32: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:38:32: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:38:32: === API: GET /api/availability/blocked ===
|
|
2025-11-07T15:38:32: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T15:38:32: Middleware - Path: /admin/menus
|
|
2025-11-07T15:38:32: Middleware - Token present: true
|
|
2025-11-07T15:38:32: Middleware - Accept header: */*
|
|
2025-11-07T15:38:32: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:38:32: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T15:38:32: Middleware - Token present: true
|
|
2025-11-07T15:38:32: Middleware - Accept header: */*
|
|
2025-11-07T15:38:32: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:38:32: Middleware - Path: /admin/ingredients
|
|
2025-11-07T15:38:32: Middleware - Token present: true
|
|
2025-11-07T15:38:32: Middleware - Accept header: */*
|
|
2025-11-07T15:38:32: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:38:32: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T15:38:32: Middleware - Token present: true
|
|
2025-11-07T15:38:32: Middleware - Accept header: */*
|
|
2025-11-07T15:38:32: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:38:32: Middleware - Path: /admin/bookings
|
|
2025-11-07T15:38:32: Middleware - Token present: true
|
|
2025-11-07T15:38:32: Middleware - Accept header: */*
|
|
2025-11-07T15:38:32: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:38:32: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:38:32: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:38:32: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:38:32: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:38:32: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:38:32: === API: DELETE /api/availability/blocked ===
|
|
2025-11-07T15:38:32: Request headers: {
|
|
accept: '*/*',
|
|
'accept-encoding': 'gzip, deflate, br, zstd',
|
|
'accept-language': 'en-US',
|
|
connection: 'keep-alive',
|
|
'content-length': '45',
|
|
'content-type': 'application/json',
|
|
cookie: 'authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjMxMiwiZXhwIjoxNzYyNjEyNzEyfQ.aBiok4CM57sT6YhI05Y82KDB-cIpQr7ltyg1I3WvWeo',
|
|
host: 'localhost:3000',
|
|
origin: 'http://localhost:3000',
|
|
referer: 'http://localhost:3000/admin/availability',
|
|
'sec-ch-ua': '"HeadlessChrome";v="141", "Not?A_Brand";v="8", "Chromium";v="141"',
|
|
'sec-ch-ua-mobile': '?0',
|
|
'sec-ch-ua-platform': '"Windows"',
|
|
'sec-fetch-dest': 'empty',
|
|
'sec-fetch-mode': 'cors',
|
|
'sec-fetch-site': 'same-origin',
|
|
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.37 Safari/537.36',
|
|
'x-forwarded-for': '::1',
|
|
'x-forwarded-host': 'localhost:3000',
|
|
'x-forwarded-port': '3000',
|
|
'x-forwarded-proto': 'http'
|
|
}
|
|
2025-11-07T15:38:32: Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjMxMiwiZXhwIjoxNzYyNjEyNzEyfQ.aBiok4CM57sT6YhI05Y82KDB-cIpQr7ltyg1I3WvWeo
|
|
2025-11-07T15:38:32: Request body: { date: undefined, id: '57835940-75ac-4ab8-85a2-4c6e000c3e2d' }
|
|
2025-11-07T15:38:32: ❌ Missing date in request
|
|
2025-11-07T15:41:08: === API LOGIN REQUEST START ===
|
|
2025-11-07T15:41:08: Timestamp: 2025-11-07T14:41:08.958Z
|
|
2025-11-07T15:41:08: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T15:41:08: Connecting to database...
|
|
2025-11-07T15:41:08: Database connected
|
|
2025-11-07T15:41:08: Querying user from database: brotha
|
|
2025-11-07T15:41:08: Query result: found 1 users
|
|
2025-11-07T15:41:08: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T15:41:08: Verifying password with salt...
|
|
2025-11-07T15:41:09: Password valid: true
|
|
2025-11-07T15:41:09: Creating JWT token...
|
|
2025-11-07T15:41:09: JWT token created, length: 239
|
|
2025-11-07T15:41:09: Setting authToken cookie...
|
|
2025-11-07T15:41:09: Cookie set successfully
|
|
2025-11-07T15:41:09: === API LOGIN SUCCESS ===
|
|
2025-11-07T15:41:09: Database connection closed
|
|
2025-11-07T15:41:09: Middleware - Path: /admin
|
|
2025-11-07T15:41:09: Middleware - Token present: true
|
|
2025-11-07T15:41:09: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
|
|
2025-11-07T15:41:09: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:41:09: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:41:09: === API: GET /api/menus ===
|
|
2025-11-07T15:41:09: ✓ Menus fetched: 17
|
|
2025-11-07T15:41:09: Middleware - Path: /admin/availability
|
|
2025-11-07T15:41:09: Middleware - Token present: true
|
|
2025-11-07T15:41:09: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
|
|
2025-11-07T15:41:09: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:41:09: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:41:09: === API: GET /api/availability/blocked ===
|
|
2025-11-07T15:41:09: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T15:41:09: Middleware - Path: /admin/menus
|
|
2025-11-07T15:41:09: Middleware - Token present: true
|
|
2025-11-07T15:41:09: Middleware - Accept header: */*
|
|
2025-11-07T15:41:09: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:41:09: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T15:41:09: Middleware - Token present: true
|
|
2025-11-07T15:41:09: Middleware - Accept header: */*
|
|
2025-11-07T15:41:09: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:41:09: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:41:09: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:41:09: Middleware - Path: /admin/ingredients
|
|
2025-11-07T15:41:09: Middleware - Token present: true
|
|
2025-11-07T15:41:09: Middleware - Accept header: */*
|
|
2025-11-07T15:41:09: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:41:09: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:41:09: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T15:41:09: Middleware - Token present: true
|
|
2025-11-07T15:41:09: Middleware - Accept header: */*
|
|
2025-11-07T15:41:09: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:41:09: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:41:09: Middleware - Path: /admin/bookings
|
|
2025-11-07T15:41:09: Middleware - Token present: true
|
|
2025-11-07T15:41:09: Middleware - Accept header: */*
|
|
2025-11-07T15:41:09: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:41:09: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:41:09: === API: DELETE /api/availability/blocked ===
|
|
2025-11-07T15:41:09: Request headers: {
|
|
accept: '*/*',
|
|
'accept-encoding': 'gzip, deflate, br, zstd',
|
|
'accept-language': 'en-US',
|
|
connection: 'keep-alive',
|
|
'content-length': '45',
|
|
'content-type': 'application/json',
|
|
cookie: 'authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjQ2OSwiZXhwIjoxNzYyNjEyODY5fQ.EEiypfYI6TVbi2-syYY-SFxVhhjnoNJvN6CBTMPajzI',
|
|
host: 'localhost:3000',
|
|
origin: 'http://localhost:3000',
|
|
referer: 'http://localhost:3000/admin/availability',
|
|
'sec-ch-ua': '"HeadlessChrome";v="141", "Not?A_Brand";v="8", "Chromium";v="141"',
|
|
'sec-ch-ua-mobile': '?0',
|
|
'sec-ch-ua-platform': '"Windows"',
|
|
'sec-fetch-dest': 'empty',
|
|
'sec-fetch-mode': 'cors',
|
|
'sec-fetch-site': 'same-origin',
|
|
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.37 Safari/537.36',
|
|
'x-forwarded-for': '::1',
|
|
'x-forwarded-host': 'localhost:3000',
|
|
'x-forwarded-port': '3000',
|
|
'x-forwarded-proto': 'http'
|
|
}
|
|
2025-11-07T15:41:09: Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjQ2OSwiZXhwIjoxNzYyNjEyODY5fQ.EEiypfYI6TVbi2-syYY-SFxVhhjnoNJvN6CBTMPajzI
|
|
2025-11-07T15:41:09: Request body: { date: undefined, id: '57835940-75ac-4ab8-85a2-4c6e000c3e2d' }
|
|
2025-11-07T15:41:09: ❌ Missing date in request
|
|
2025-11-07T15:43:21: > Ready on http://localhost:3000
|
|
2025-11-07T15:44:01: > Ready on http://localhost:3000
|
|
2025-11-07T15:44:20: === API LOGIN REQUEST START ===
|
|
2025-11-07T15:44:20: Timestamp: 2025-11-07T14:44:20.603Z
|
|
2025-11-07T15:44:20: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T15:44:20: Connecting to database...
|
|
2025-11-07T15:44:20: Database connected
|
|
2025-11-07T15:44:20: Querying user from database: brotha
|
|
2025-11-07T15:44:20: Query result: found 1 users
|
|
2025-11-07T15:44:20: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T15:44:20: Verifying password with salt...
|
|
2025-11-07T15:44:20: Password valid: true
|
|
2025-11-07T15:44:20: Creating JWT token...
|
|
2025-11-07T15:44:20: JWT token created, length: 239
|
|
2025-11-07T15:44:20: Setting authToken cookie...
|
|
2025-11-07T15:44:20: Cookie set successfully
|
|
2025-11-07T15:44:20: === API LOGIN SUCCESS ===
|
|
2025-11-07T15:44:20: Database connection closed
|
|
2025-11-07T15:44:20: Middleware - Path: /admin
|
|
2025-11-07T15:44:20: Middleware - Token present: true
|
|
2025-11-07T15:44:20: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
|
|
2025-11-07T15:44:20: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:44:20: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjY2MCwiZXhwIjoxNzYyNjEzMDYwfQ.MAW5dv5d5sWh4afBpwNJEpLe1kdOJVlL-XxGVH9_uxA
|
|
2025-11-07T15:44:20: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:44:20: === API: GET /api/menus ===
|
|
2025-11-07T15:44:20: Middleware - Path: /admin/menus
|
|
2025-11-07T15:44:20: Middleware - Token present: true
|
|
2025-11-07T15:44:20: Middleware - Accept header: */*
|
|
2025-11-07T15:44:20: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:44:20: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjY2MCwiZXhwIjoxNzYyNjEzMDYwfQ.MAW5dv5d5sWh4afBpwNJEpLe1kdOJVlL-XxGVH9_uxA
|
|
2025-11-07T15:44:20: Middleware - Path: /admin/availability
|
|
2025-11-07T15:44:20: Middleware - Token present: true
|
|
2025-11-07T15:44:20: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
|
|
2025-11-07T15:44:20: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:44:20: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjY2MCwiZXhwIjoxNzYyNjEzMDYwfQ.MAW5dv5d5sWh4afBpwNJEpLe1kdOJVlL-XxGVH9_uxA
|
|
2025-11-07T15:44:20: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T15:44:20: Middleware - Token present: true
|
|
2025-11-07T15:44:20: Middleware - Accept header: */*
|
|
2025-11-07T15:44:20: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:44:20: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjY2MCwiZXhwIjoxNzYyNjEzMDYwfQ.MAW5dv5d5sWh4afBpwNJEpLe1kdOJVlL-XxGVH9_uxA
|
|
2025-11-07T15:44:20: Middleware - Path: /admin/ingredients
|
|
2025-11-07T15:44:20: Middleware - Token present: true
|
|
2025-11-07T15:44:20: Middleware - Accept header: */*
|
|
2025-11-07T15:44:20: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:44:20: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjY2MCwiZXhwIjoxNzYyNjEzMDYwfQ.MAW5dv5d5sWh4afBpwNJEpLe1kdOJVlL-XxGVH9_uxA
|
|
2025-11-07T15:44:20: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T15:44:20: Middleware - Token present: true
|
|
2025-11-07T15:44:20: Middleware - Accept header: */*
|
|
2025-11-07T15:44:20: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:44:20: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjY2MCwiZXhwIjoxNzYyNjEzMDYwfQ.MAW5dv5d5sWh4afBpwNJEpLe1kdOJVlL-XxGVH9_uxA
|
|
2025-11-07T15:44:20: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:44:20: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:44:20: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:44:20: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:44:20: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:44:20: ✓ Menus fetched: 17
|
|
2025-11-07T15:44:20: Middleware - Path: /admin/availability
|
|
2025-11-07T15:44:20: Middleware - Token present: true
|
|
2025-11-07T15:44:20: Middleware - Accept header: */*
|
|
2025-11-07T15:44:20: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:44:20: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjY2MCwiZXhwIjoxNzYyNjEzMDYwfQ.MAW5dv5d5sWh4afBpwNJEpLe1kdOJVlL-XxGVH9_uxA
|
|
2025-11-07T15:44:20: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:44:20: === API: GET /api/availability/blocked ===
|
|
2025-11-07T15:44:20: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T15:44:20: Middleware - Path: /admin/menus
|
|
2025-11-07T15:44:20: Middleware - Token present: true
|
|
2025-11-07T15:44:20: Middleware - Accept header: */*
|
|
2025-11-07T15:44:20: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:44:20: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjY2MCwiZXhwIjoxNzYyNjEzMDYwfQ.MAW5dv5d5sWh4afBpwNJEpLe1kdOJVlL-XxGVH9_uxA
|
|
2025-11-07T15:44:20: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T15:44:20: Middleware - Token present: true
|
|
2025-11-07T15:44:20: Middleware - Accept header: */*
|
|
2025-11-07T15:44:20: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:44:20: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjY2MCwiZXhwIjoxNzYyNjEzMDYwfQ.MAW5dv5d5sWh4afBpwNJEpLe1kdOJVlL-XxGVH9_uxA
|
|
2025-11-07T15:44:20: Middleware - Path: /admin/ingredients
|
|
2025-11-07T15:44:20: Middleware - Token present: true
|
|
2025-11-07T15:44:20: Middleware - Accept header: */*
|
|
2025-11-07T15:44:20: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:44:20: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjY2MCwiZXhwIjoxNzYyNjEzMDYwfQ.MAW5dv5d5sWh4afBpwNJEpLe1kdOJVlL-XxGVH9_uxA
|
|
2025-11-07T15:44:20: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T15:44:20: Middleware - Token present: true
|
|
2025-11-07T15:44:20: Middleware - Accept header: */*
|
|
2025-11-07T15:44:20: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:44:20: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjY2MCwiZXhwIjoxNzYyNjEzMDYwfQ.MAW5dv5d5sWh4afBpwNJEpLe1kdOJVlL-XxGVH9_uxA
|
|
2025-11-07T15:44:20: Middleware - Path: /admin/bookings
|
|
2025-11-07T15:44:20: Middleware - Token present: true
|
|
2025-11-07T15:44:20: Middleware - Accept header: */*
|
|
2025-11-07T15:44:20: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:44:20: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjY2MCwiZXhwIjoxNzYyNjEzMDYwfQ.MAW5dv5d5sWh4afBpwNJEpLe1kdOJVlL-XxGVH9_uxA
|
|
2025-11-07T15:44:20: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:44:20: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:44:20: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:44:20: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:44:20: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:44:20: === API: DELETE /api/availability/blocked ===
|
|
2025-11-07T15:44:20: Request headers: {
|
|
accept: '*/*',
|
|
'accept-encoding': 'gzip, deflate, br, zstd',
|
|
'accept-language': 'en-US',
|
|
connection: 'keep-alive',
|
|
'content-length': '45',
|
|
'content-type': 'application/json',
|
|
cookie: 'authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjY2MCwiZXhwIjoxNzYyNjEzMDYwfQ.MAW5dv5d5sWh4afBpwNJEpLe1kdOJVlL-XxGVH9_uxA',
|
|
host: 'localhost:3000',
|
|
origin: 'http://localhost:3000',
|
|
referer: 'http://localhost:3000/admin/availability',
|
|
'sec-ch-ua': '"HeadlessChrome";v="141", "Not?A_Brand";v="8", "Chromium";v="141"',
|
|
'sec-ch-ua-mobile': '?0',
|
|
'sec-ch-ua-platform': '"Windows"',
|
|
'sec-fetch-dest': 'empty',
|
|
'sec-fetch-mode': 'cors',
|
|
'sec-fetch-site': 'same-origin',
|
|
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.37 Safari/537.36',
|
|
'x-forwarded-for': '::1',
|
|
'x-forwarded-host': 'localhost:3000',
|
|
'x-forwarded-port': '3000',
|
|
'x-forwarded-proto': 'http'
|
|
}
|
|
2025-11-07T15:44:20: Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjY2MCwiZXhwIjoxNzYyNjEzMDYwfQ.MAW5dv5d5sWh4afBpwNJEpLe1kdOJVlL-XxGVH9_uxA
|
|
2025-11-07T15:44:20: Request body: { date: undefined, id: '57835940-75ac-4ab8-85a2-4c6e000c3e2d' }
|
|
2025-11-07T15:44:20: ❌ Missing date in request
|
|
2025-11-07T15:45:17: === API LOGIN REQUEST START ===
|
|
2025-11-07T15:45:17: Timestamp: 2025-11-07T14:45:17.710Z
|
|
2025-11-07T15:45:17: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T15:45:17: Connecting to database...
|
|
2025-11-07T15:45:17: Database connected
|
|
2025-11-07T15:45:17: Querying user from database: brotha
|
|
2025-11-07T15:45:17: Query result: found 1 users
|
|
2025-11-07T15:45:17: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T15:45:17: Verifying password with salt...
|
|
2025-11-07T15:45:17: Password valid: true
|
|
2025-11-07T15:45:17: Creating JWT token...
|
|
2025-11-07T15:45:17: JWT token created, length: 239
|
|
2025-11-07T15:45:17: Setting authToken cookie...
|
|
2025-11-07T15:45:17: Cookie set successfully
|
|
2025-11-07T15:45:17: === API LOGIN SUCCESS ===
|
|
2025-11-07T15:45:17: Database connection closed
|
|
2025-11-07T15:45:21: Middleware - Path: /admin/ingredients
|
|
2025-11-07T15:45:21: Middleware - Token present: true
|
|
2025-11-07T15:45:21: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
|
2025-11-07T15:45:21: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:45:21: Middleware - Cookie header: _pk_id.1.1fff=b36f23884837509f.1755978760.; authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjcxNywiZXhwIjoxNzYyNjEzMTE3fQ.iDf2WcWuJJuP3OG-XluqzHskIM8J1FixKFSKT3vRAtg
|
|
2025-11-07T15:45:21: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:45:21: Middleware - Path: /admin/menus
|
|
2025-11-07T15:45:21: Middleware - Token present: true
|
|
2025-11-07T15:45:21: Middleware - Accept header: */*
|
|
2025-11-07T15:45:21: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:45:21: Middleware - Cookie header: _pk_id.1.1fff=b36f23884837509f.1755978760.; authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjcxNywiZXhwIjoxNzYyNjEzMTE3fQ.iDf2WcWuJJuP3OG-XluqzHskIM8J1FixKFSKT3vRAtg
|
|
2025-11-07T15:45:21: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T15:45:21: Middleware - Token present: true
|
|
2025-11-07T15:45:21: Middleware - Accept header: */*
|
|
2025-11-07T15:45:21: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:45:21: Middleware - Cookie header: _pk_id.1.1fff=b36f23884837509f.1755978760.; authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjcxNywiZXhwIjoxNzYyNjEzMTE3fQ.iDf2WcWuJJuP3OG-XluqzHskIM8J1FixKFSKT3vRAtg
|
|
2025-11-07T15:45:21: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:45:21: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:45:21: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T15:45:21: Middleware - Token present: true
|
|
2025-11-07T15:45:21: Middleware - Accept header: */*
|
|
2025-11-07T15:45:21: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:45:21: Middleware - Cookie header: _pk_id.1.1fff=b36f23884837509f.1755978760.; authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjcxNywiZXhwIjoxNzYyNjEzMTE3fQ.iDf2WcWuJJuP3OG-XluqzHskIM8J1FixKFSKT3vRAtg
|
|
2025-11-07T15:45:21: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:45:21: Middleware - Path: /admin/availability
|
|
2025-11-07T15:45:21: Middleware - Token present: true
|
|
2025-11-07T15:45:21: Middleware - Accept header: */*
|
|
2025-11-07T15:45:21: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:45:21: Middleware - Cookie header: _pk_id.1.1fff=b36f23884837509f.1755978760.; authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjcxNywiZXhwIjoxNzYyNjEzMTE3fQ.iDf2WcWuJJuP3OG-XluqzHskIM8J1FixKFSKT3vRAtg
|
|
2025-11-07T15:45:21: Middleware - Path: /admin/bookings
|
|
2025-11-07T15:45:21: Middleware - Token present: true
|
|
2025-11-07T15:45:21: Middleware - Accept header: */*
|
|
2025-11-07T15:45:21: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:45:21: Middleware - Cookie header: _pk_id.1.1fff=b36f23884837509f.1755978760.; authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjcxNywiZXhwIjoxNzYyNjEzMTE3fQ.iDf2WcWuJJuP3OG-XluqzHskIM8J1FixKFSKT3vRAtg
|
|
2025-11-07T15:45:21: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:45:21: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:46:21: > Ready on http://localhost:3000
|
|
2025-11-07T15:46:47: === API LOGIN REQUEST START ===
|
|
2025-11-07T15:46:47: Timestamp: 2025-11-07T14:46:47.130Z
|
|
2025-11-07T15:46:47: Request body received: { username: 'brotha', passwordLength: 9 }
|
|
2025-11-07T15:46:47: Connecting to database...
|
|
2025-11-07T15:46:47: Database connected
|
|
2025-11-07T15:46:47: Querying user from database: brotha
|
|
2025-11-07T15:46:47: Query result: found 1 users
|
|
2025-11-07T15:46:47: User found: {
|
|
id: 'd87cf9cf-ba4a-11f0-8c13-cffd87a9b9a6',
|
|
username: 'brotha',
|
|
role: 'admin'
|
|
}
|
|
2025-11-07T15:46:47: Verifying password with salt...
|
|
2025-11-07T15:46:47: Password valid: true
|
|
2025-11-07T15:46:47: Creating JWT token...
|
|
2025-11-07T15:46:47: JWT token created, length: 239
|
|
2025-11-07T15:46:47: Setting authToken cookie...
|
|
2025-11-07T15:46:47: Cookie set successfully
|
|
2025-11-07T15:46:47: === API LOGIN SUCCESS ===
|
|
2025-11-07T15:46:47: Database connection closed
|
|
2025-11-07T15:46:47: Middleware - Path: /admin
|
|
2025-11-07T15:46:47: Middleware - Token present: true
|
|
2025-11-07T15:46:47: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
|
|
2025-11-07T15:46:47: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:46:47: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjgwNywiZXhwIjoxNzYyNjEzMjA3fQ.wvPTrupLtg6HELJPhfQeuUd7D48lplTBpbrlt0zF_Qc
|
|
2025-11-07T15:46:47: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:46:47: === API: GET /api/menus ===
|
|
2025-11-07T15:46:47: Middleware - Path: /admin/menus
|
|
2025-11-07T15:46:47: Middleware - Token present: true
|
|
2025-11-07T15:46:47: Middleware - Accept header: */*
|
|
2025-11-07T15:46:47: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:46:47: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjgwNywiZXhwIjoxNzYyNjEzMjA3fQ.wvPTrupLtg6HELJPhfQeuUd7D48lplTBpbrlt0zF_Qc
|
|
2025-11-07T15:46:47: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T15:46:47: Middleware - Token present: true
|
|
2025-11-07T15:46:47: Middleware - Accept header: */*
|
|
2025-11-07T15:46:47: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:46:47: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjgwNywiZXhwIjoxNzYyNjEzMjA3fQ.wvPTrupLtg6HELJPhfQeuUd7D48lplTBpbrlt0zF_Qc
|
|
2025-11-07T15:46:47: Middleware - Path: /admin/ingredients
|
|
2025-11-07T15:46:47: Middleware - Token present: true
|
|
2025-11-07T15:46:47: Middleware - Accept header: */*
|
|
2025-11-07T15:46:47: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:46:47: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjgwNywiZXhwIjoxNzYyNjEzMjA3fQ.wvPTrupLtg6HELJPhfQeuUd7D48lplTBpbrlt0zF_Qc
|
|
2025-11-07T15:46:47: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T15:46:47: Middleware - Token present: true
|
|
2025-11-07T15:46:47: Middleware - Accept header: */*
|
|
2025-11-07T15:46:47: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:46:47: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjgwNywiZXhwIjoxNzYyNjEzMjA3fQ.wvPTrupLtg6HELJPhfQeuUd7D48lplTBpbrlt0zF_Qc
|
|
2025-11-07T15:46:47: Middleware - Path: /admin/availability
|
|
2025-11-07T15:46:47: Middleware - Token present: true
|
|
2025-11-07T15:46:47: Middleware - Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
|
|
2025-11-07T15:46:47: Middleware - sec-fetch-mode: navigate
|
|
2025-11-07T15:46:47: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjgwNywiZXhwIjoxNzYyNjEzMjA3fQ.wvPTrupLtg6HELJPhfQeuUd7D48lplTBpbrlt0zF_Qc
|
|
2025-11-07T15:46:47: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:46:47: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:46:47: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:46:47: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:46:47: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:46:47: ✓ Menus fetched: 17
|
|
2025-11-07T15:46:47: Middleware - Path: /admin/availability
|
|
2025-11-07T15:46:47: Middleware - Token present: true
|
|
2025-11-07T15:46:47: Middleware - Accept header: */*
|
|
2025-11-07T15:46:47: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:46:47: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjgwNywiZXhwIjoxNzYyNjEzMjA3fQ.wvPTrupLtg6HELJPhfQeuUd7D48lplTBpbrlt0zF_Qc
|
|
2025-11-07T15:46:47: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:46:47: === API: GET /api/availability/blocked ===
|
|
2025-11-07T15:46:47: ✓ Blocked dates fetched: 3 dates
|
|
2025-11-07T15:46:47: Middleware - Path: /admin/menus
|
|
2025-11-07T15:46:47: Middleware - Token present: true
|
|
2025-11-07T15:46:47: Middleware - Accept header: */*
|
|
2025-11-07T15:46:47: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:46:47: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjgwNywiZXhwIjoxNzYyNjEzMjA3fQ.wvPTrupLtg6HELJPhfQeuUd7D48lplTBpbrlt0zF_Qc
|
|
2025-11-07T15:46:47: Middleware - Path: /admin/menu-generator
|
|
2025-11-07T15:46:47: Middleware - Token present: true
|
|
2025-11-07T15:46:47: Middleware - Accept header: */*
|
|
2025-11-07T15:46:47: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:46:47: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjgwNywiZXhwIjoxNzYyNjEzMjA3fQ.wvPTrupLtg6HELJPhfQeuUd7D48lplTBpbrlt0zF_Qc
|
|
2025-11-07T15:46:47: Middleware - Path: /admin/ingredients
|
|
2025-11-07T15:46:47: Middleware - Token present: true
|
|
2025-11-07T15:46:47: Middleware - Accept header: */*
|
|
2025-11-07T15:46:47: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:46:47: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjgwNywiZXhwIjoxNzYyNjEzMjA3fQ.wvPTrupLtg6HELJPhfQeuUd7D48lplTBpbrlt0zF_Qc
|
|
2025-11-07T15:46:47: Middleware - Path: /admin/menu-ingredients
|
|
2025-11-07T15:46:47: Middleware - Token present: true
|
|
2025-11-07T15:46:47: Middleware - Accept header: */*
|
|
2025-11-07T15:46:47: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:46:47: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjgwNywiZXhwIjoxNzYyNjEzMjA3fQ.wvPTrupLtg6HELJPhfQeuUd7D48lplTBpbrlt0zF_Qc
|
|
2025-11-07T15:46:47: Middleware - Path: /admin/bookings
|
|
2025-11-07T15:46:47: Middleware - Token present: true
|
|
2025-11-07T15:46:47: Middleware - Accept header: */*
|
|
2025-11-07T15:46:47: Middleware - sec-fetch-mode: cors
|
|
2025-11-07T15:46:47: Middleware - Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjgwNywiZXhwIjoxNzYyNjEzMjA3fQ.wvPTrupLtg6HELJPhfQeuUd7D48lplTBpbrlt0zF_Qc
|
|
2025-11-07T15:46:47: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:46:47: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:46:47: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:46:47: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:46:47: Middleware - Token valid, user: brotha
|
|
2025-11-07T15:46:47: === API: DELETE /api/availability/blocked ===
|
|
2025-11-07T15:46:47: Request headers: {
|
|
accept: '*/*',
|
|
'accept-encoding': 'gzip, deflate, br, zstd',
|
|
'accept-language': 'en-US',
|
|
connection: 'keep-alive',
|
|
'content-length': '45',
|
|
'content-type': 'application/json',
|
|
cookie: 'authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjgwNywiZXhwIjoxNzYyNjEzMjA3fQ.wvPTrupLtg6HELJPhfQeuUd7D48lplTBpbrlt0zF_Qc',
|
|
host: 'localhost:3000',
|
|
origin: 'http://localhost:3000',
|
|
referer: 'http://localhost:3000/admin/availability',
|
|
'sec-ch-ua': '"HeadlessChrome";v="141", "Not?A_Brand";v="8", "Chromium";v="141"',
|
|
'sec-ch-ua-mobile': '?0',
|
|
'sec-ch-ua-platform': '"Windows"',
|
|
'sec-fetch-dest': 'empty',
|
|
'sec-fetch-mode': 'cors',
|
|
'sec-fetch-site': 'same-origin',
|
|
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.37 Safari/537.36',
|
|
'x-forwarded-for': '::1',
|
|
'x-forwarded-host': 'localhost:3000',
|
|
'x-forwarded-port': '3000',
|
|
'x-forwarded-proto': 'http'
|
|
}
|
|
2025-11-07T15:46:47: Cookie header: authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkODdjZjljZi1iYTRhLTExZjAtOGMxMy1jZmZkODdhOWI5YTYiLCJ1c2VybmFtZSI6ImJyb3RoYSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MjUyNjgwNywiZXhwIjoxNzYyNjEzMjA3fQ.wvPTrupLtg6HELJPhfQeuUd7D48lplTBpbrlt0zF_Qc
|
|
2025-11-07T15:46:47: Request body: { date: undefined, id: '57835940-75ac-4ab8-85a2-4c6e000c3e2d' }
|
|
2025-11-07T15:46:47: ✓ Deleted by id: 57835940-75ac-4ab8-85a2-4c6e000c3e2d
|