================================================ API ENDPOINT TEST REPORT (HTTPS) Server: sol.aibitsoft.cloud Protocol: HTTPS Test Date: Sat Jan 17 08:43:23 AM UTC 2026 ================================================ === JOBS ENDPOINTS === ---------------------------------------- Endpoint: GET /api/jobs Description: List all jobs Status: ✓ PASS HTTP Code: 200 Response Time: 0.277682s Response Body (first 500 chars): {"success":true,"data":[]} ---------------------------------------- Endpoint: GET /api/jobs/invalid-id Description: Get job by ID (invalid) Status: ✗ FAIL HTTP Code: 500 Response Time: 0.016040s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"invalid-id\" (type string) at path \"_id\" for model \"Job\""} ---------------------------------------- Endpoint: POST /api/jobs Description: Create job Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.017070s Response Body (first 500 chars): {"success":false,"error":"Validation failed","errors":{"formErrors":[],"fieldErrors":{"department":["Required"],"location":["Required"],"employmentType":["Required"],"applicationUrl":["Required"],"status":["Required"]}}} ---------------------------------------- Endpoint: PUT /api/jobs/test-id Description: Update job Status: ✗ FAIL HTTP Code: 500 Response Time: 0.016837s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"test-id\" (type string) at path \"_id\" for model \"Job\""} ---------------------------------------- Endpoint: DELETE /api/jobs/test-id Description: Delete job Status: ✗ FAIL HTTP Code: 500 Response Time: 0.014111s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"test-id\" (type string) at path \"_id\" for model \"Job\""} === APPLICATIONS ENDPOINTS === ---------------------------------------- Endpoint: GET /api/applications Description: List all applications Status: ✓ PASS HTTP Code: 200 Response Time: 0.540076s Response Body (first 500 chars): {"success":true,"data":[{"_id":"6964e2982cd4ab62eb3cbaf1","fullName":"Muhammad Shahzad","email":"shahzadsaeed922@gmail.com","phone":"03284771452","jobId":null,"role":"junior FrontEnd Developer","location":"on site","resumeUrl":"https://res.cloudinary.com/doiygrgk0/image/upload/v1768219287/aibit_soft/resumes/resume-1768219286976-227174613_y8j5qb.pdf","status":"New","createdAt":"2026-01-12T12:01:28.388Z","updatedAt":"2026-01-12T12:01:28.388Z","__v":0},{"_id":"695ca7b52cd4ab62eb3cba65","fullName":" ---------------------------------------- Endpoint: GET /api/applications/invalid-id Description: Get application by ID Status: ✗ FAIL HTTP Code: 500 Response Time: 0.013680s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"invalid-id\" (type string) at path \"_id\" for model \"Application\""} ---------------------------------------- Endpoint: POST /api/applications Description: Create application Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.013169s Response Body (first 500 chars): {"success":false,"error":"Missing required fields: fullName, email, role, and location are required"} ---------------------------------------- Endpoint: PUT /api/applications/test-id Description: Update application Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.012614s Response Body (first 500 chars): {"success":false,"error":"Validation failed","errors":{"formErrors":[],"fieldErrors":{"status":["Invalid enum value. Expected 'New' | 'Reviewed' | 'Interview' | 'Rejected', received 'reviewed'"]}}} ---------------------------------------- Endpoint: DELETE /api/applications/test-id Description: Delete application Status: ✗ FAIL HTTP Code: 500 Response Time: 0.014811s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"test-id\" (type string) at path \"_id\" for model \"Application\""} === USER RESUMES ENDPOINTS === ---------------------------------------- Endpoint: GET /api/user-resumes Description: List all user resumes Status: ✓ PASS HTTP Code: 200 Response Time: 1.061807s Response Body (first 500 chars): {"success":true,"data":[{"_id":"691adbe181d2fa9a3b25bd88","fullName":"jonny","email":"abdullahwarraich0048@gmail.com","phoneNumber":"03361400373","cvURL":"https://res.cloudinary.com/doiygrgk0/raw/upload/fl_attachment:false/v1763367904/user-resumes/ubuqani7c2dewax4uwvs","coverNote":"nothing","jobId":null,"positionTitle":"Senior Front End Developer","createdAt":"2025-11-17T08:25:05.279Z","updatedAt":"2025-11-17T08:25:05.279Z","__v":0},{"_id":"6916d47765dbc7dc0e14dde6","fullName":"Abdul wahab","ema ---------------------------------------- Endpoint: POST /api/user-resumes Description: Create user resume Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.012932s Response Body (first 500 chars): {"success":false,"error":"CV file is required"} === TEAM MEMBERS ENDPOINTS === ---------------------------------------- Endpoint: GET /api/team-members Description: List all team members Status: ✓ PASS HTTP Code: 200 Response Time: 1.598115s Response Body (first 500 chars): {"success":true,"data":[{"_id":"691c331b2cd4ab62eb3cb14e","name":"Dr. Khawaja jahanzeb","role":"Business and HR Manager","phd":"7+ years Experience","img":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEBIAEgAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCASgBLwDAREAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhM ---------------------------------------- Endpoint: GET /api/team-members/invalid-id Description: Get team member by ID Status: ✗ FAIL HTTP Code: 500 Response Time: 0.013154s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"invalid-id\" (type string) at path \"_id\" for model \"TeamMember\""} ---------------------------------------- Endpoint: POST /api/team-members Description: Create team member Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.016758s Response Body (first 500 chars): {"success":false,"error":"Validation failed","errors":{"formErrors":[],"fieldErrors":{"img":["Required"],"category":["Required"]}}} ---------------------------------------- Endpoint: POST /api/team-members/seed Description: Seed team members Status: ✓ PASS HTTP Code: 200 Response Time: 6.290988s Response Body (first 500 chars): {"success":true,"data":{"message":"Team members seeded successfully","results":[{"action":"updated","member":"Naseer Akhtar","id":"6911d9db1ec2410853b8bd39"},{"action":"updated","member":"Dr. Ziad Nayyer","id":"6911d9db1ec2410853b8bd3c"},{"action":"updated","member":"Dr. Faheem","id":"6911d9db1ec2410853b8bd3f"},{"action":"updated","member":"Zaheer Ahmad","id":"6911d9dc1ec2410853b8bd42"},{"action":"updated","member":"Muhammad Waseem","id":"6911d9dc1ec2410853b8bd45"},{"action":"updated","member":" ---------------------------------------- Endpoint: PUT /api/team-members/test-id Description: Update team member Status: ✗ FAIL HTTP Code: 500 Response Time: 0.017190s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"test-id\" (type string) at path \"_id\" for model \"TeamMember\""} ---------------------------------------- Endpoint: DELETE /api/team-members/test-id Description: Delete team member Status: ✗ FAIL HTTP Code: 500 Response Time: 0.017416s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"test-id\" (type string) at path \"_id\" for model \"TeamMember\""} === BLOGS ENDPOINTS === ---------------------------------------- Endpoint: GET /api/blogs Description: List all blogs Status: ✓ PASS HTTP Code: 200 Response Time: 0.278924s Response Body (first 500 chars): {"success":true,"data":[{"_id":"696b434ff8803ef1b0e041aa","category":"tech","__v":0,"components":[],"createdAt":"2026-01-17T08:07:43.595Z","heroSection":{"title":"Hero"},"status":"Draft","updatedAt":"2026-01-17T08:07:43.595Z"},{"_id":"69130b7160ac830969554a37","category":"Blogs-IT-Staff","__v":0,"components":[{"componentType":"FinalThought","componentName":"Aibit","data":{"title":"Aibitttt","cta":{"title":"ok","description":"ok","buttons":[{"text":"next page ","href":"/next","variant":"outline"} ---------------------------------------- Endpoint: GET /api/blogs/category/tech Description: Get blogs by category Status: ✓ PASS HTTP Code: 200 Response Time: 0.275199s Response Body (first 500 chars): {"success":true,"data":{"_id":"696b434ff8803ef1b0e041aa","category":"tech","__v":0,"components":[],"createdAt":"2026-01-17T08:07:43.595Z","heroSection":{"title":"Hero"},"status":"Draft","updatedAt":"2026-01-17T08:07:43.595Z"}} ---------------------------------------- Endpoint: GET /api/blogs/category/Blogs-IT-Staff Description: Get blogs by category (existing) Status: ✓ PASS HTTP Code: 200 Response Time: 0.272235s Response Body (first 500 chars): {"success":true,"data":{"_id":"69130b7160ac830969554a37","category":"Blogs-IT-Staff","__v":0,"components":[{"componentType":"FinalThought","componentName":"Aibit","data":{"title":"Aibitttt","cta":{"title":"ok","description":"ok","buttons":[{"text":"next page ","href":"/next","variant":"outline"}]}},"order":0,"enabled":true,"_id":"69130cda2c4427fb8d66810d","createdAt":"2025-11-11T10:15:54.014Z","updatedAt":"2025-11-11T10:15:54.014Z"}],"createdAt":"2025-11-11T10:09:53.689Z","description":"ok","sta ---------------------------------------- Endpoint: GET /api/blogs/invalid-id Description: Get blog by ID Status: ✗ FAIL HTTP Code: 500 Response Time: 0.015515s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"invalid-id\" (type string) at path \"_id\" for model \"Blog\""} ---------------------------------------- Endpoint: POST /api/blogs Description: Create blog Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.012716s Response Body (first 500 chars): {"success":false,"error":"Validation failed","errors":{"formErrors":[],"fieldErrors":{"category":["Required"]}}} ---------------------------------------- Endpoint: PUT /api/blogs/test-id Description: Update blog Status: ✗ FAIL HTTP Code: 500 Response Time: 0.013509s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"test-id\" (type string) at path \"_id\" for model \"Blog\""} ---------------------------------------- Endpoint: PUT /api/blogs/category/tech/hero Description: Update hero section Status: ✓ PASS HTTP Code: 200 Response Time: 0.279204s Response Body (first 500 chars): {"success":true,"data":{"_id":"696b434ff8803ef1b0e041aa","category":"tech","__v":0,"components":[],"createdAt":"2026-01-17T08:07:43.595Z","heroSection":{"title":"Hero"},"status":"Draft","updatedAt":"2026-01-17T08:43:34.627Z"}} ---------------------------------------- Endpoint: PUT /api/blogs/category/tech/component/test-component-id Description: Update component Status: ⚠ EXPECTED (Client Error) HTTP Code: 404 Response Time: 0.273683s Response Body (first 500 chars): {"success":false,"error":"Component not found"} ---------------------------------------- Endpoint: PUT /api/blogs/category/tech Description: Update blog by category Status: ✓ PASS HTTP Code: 200 Response Time: 0.277383s Response Body (first 500 chars): {"success":true,"data":{"_id":"696b434ff8803ef1b0e041aa","category":"tech","__v":0,"components":[],"createdAt":"2026-01-17T08:07:43.595Z","heroSection":{"title":"Hero"},"status":"Draft","updatedAt":"2026-01-17T08:43:35.223Z"}} ---------------------------------------- Endpoint: DELETE /api/blogs/test-id Description: Delete blog Status: ✗ FAIL HTTP Code: 500 Response Time: 0.012334s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"test-id\" (type string) at path \"_id\" for model \"Blog\""} === BLOG STATIC DATA ENDPOINTS === ---------------------------------------- Endpoint: GET /api/blog-static-data/tech Description: Get static data by category Status: ✓ PASS HTTP Code: 200 Response Time: 0.011661s Response Body (first 500 chars): {"success":true,"data":{"category":"tech","message":"Static data file not found, use frontend config","data":null}} ---------------------------------------- Endpoint: GET /api/blog-static-data/Blogs-IT-Staff Description: Get static data by category (existing) Status: ✓ PASS HTTP Code: 200 Response Time: 0.011507s Response Body (first 500 chars): {"success":true,"data":{"category":"Blogs-IT-Staff","message":"Static data file not found, use frontend config","data":null}} === ZOOM MEETING ENDPOINTS === ---------------------------------------- Endpoint: GET /api/ Description: List all zoom meetings (root) Status: ✓ PASS HTTP Code: 200 Response Time: 0.546795s Response Body (first 500 chars): {"success":true,"data":[{"_id":"696a87602c08627f6c1794a9","zoomMeetingId":"85792533614","topic":"Meeting with Abdullah warraich","startTime":"2026-01-17T03:45:00.000Z","duration":30,"timezone":"America/Los_Angeles","joinUrl":"https://us05web.zoom.us/j/85792533614?pwd=yBaWntPY9s133Jm9u1CYJ2LSjaJ0bM.1","startUrl":"https://us05web.zoom.us/s/85792533614?zak=eyJ0eXAiOiJKV1QiLCJzdiI6IjAwMDAwMiIsInptX3NrbSI6InptX28ybSIsImFsZyI6IkhTMjU2In0.eyJpc3MiOiJ3ZWIiLCJjbHQiOjAsIm1udW0iOiI4NTc5MjUzMzYxNCIsImF1ZCI6 ---------------------------------------- Endpoint: GET /api/invalid-id Description: Get zoom meeting by ID Status: ✗ FAIL HTTP Code: 500 Response Time: 0.012938s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"invalid-id\" (type string) at path \"_id\" for model \"ZoomMeeting\""} ---------------------------------------- Endpoint: GET /api/zoom/invalid-zoom-id Description: Get zoom meeting by Zoom ID Status: ⚠ EXPECTED (Client Error) HTTP Code: 404 Response Time: 0.270941s Response Body (first 500 chars): {"success":false,"error":"Meeting not found"} ---------------------------------------- Endpoint: POST /api/schedule-zoom Description: Schedule zoom meeting Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.013812s Response Body (first 500 chars): {"success":false,"error":"Validation failed: title: Required; date: Required; time: Required; duration: Required; timezone: Required; participants: Required","errors":{"formErrors":[],"fieldErrors":{"title":["Required"],"date":["Required"],"time":["Required"],"duration":["Required"],"timezone":["Required"],"participants":["Required"]}}} ---------------------------------------- Endpoint: POST /api/create-meeting Description: Create zoom meeting Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.015846s Response Body (first 500 chars): {"ok":false,"error":"Validation failed: preferredMeetingTime: Required","errors":{"formErrors":[],"fieldErrors":{"preferredMeetingTime":["Required"]}}} ---------------------------------------- Endpoint: POST /api/ Description: Create zoom meeting (root) Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.013427s Response Body (first 500 chars): {"ok":false,"error":"Validation failed: preferredMeetingTime: Required","errors":{"formErrors":[],"fieldErrors":{"preferredMeetingTime":["Required"]}}} ---------------------------------------- Endpoint: PUT /api/test-id/cancel Description: Cancel zoom meeting Status: ✗ FAIL HTTP Code: 500 Response Time: 0.012532s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"test-id\" (type string) at path \"_id\" for model \"ZoomMeeting\""} ---------------------------------------- Endpoint: PUT /api/test-id Description: Update zoom meeting Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.013580s Response Body (first 500 chars): {"success":false,"error":"Validation failed","errors":{"formErrors":[],"fieldErrors":{"status":["Invalid enum value. Expected 'Scheduled' | 'Completed' | 'Cancelled' | 'In Progress', received 'cancelled'"]}}} ---------------------------------------- Endpoint: DELETE /api/test-id Description: Delete zoom meeting Status: ✗ FAIL HTTP Code: 500 Response Time: 0.014837s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"test-id\" (type string) at path \"_id\" for model \"ZoomMeeting\""} === GOOGLE MEET ENDPOINTS === ---------------------------------------- Endpoint: GET /api/google-meet Description: List all Google Meet meetings Status: ✓ PASS HTTP Code: 200 Response Time: 0.274614s Response Body (first 500 chars): {"success":true,"data":[{"_id":"696a9afe9cd203c7c23b1a39","eventId":"id7jak0j2il88ol374eejpmkjs","calendarId":"primary","title":"Discussion about project fffffffffff","description":"Discussion about project fffffffffff\nRequested by: Abdullah Warraich (abdullahwarraich0408@gmail.com)\n \n Meeting Host: aibitsofts@gmail.com\n Company Contact: contact@aibitsol.com\n Timezone: Pakistan Standard Time (PKT)\n \n Meeting Participants:\n • aibitsofts@gmail.com (Host)\n• abdullahwarraich0408@ ---------------------------------------- Endpoint: GET /api/google-meet/invalid-id Description: Get Google Meet by ID Status: ✗ FAIL HTTP Code: 500 Response Time: 0.015107s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"invalid-id\" (type string) at path \"_id\" for model \"GoogleMeet\""} ---------------------------------------- Endpoint: GET /api/google-meet/event/invalid-event-id Description: Get Google Meet by Event ID Status: ⚠ EXPECTED (Client Error) HTTP Code: 404 Response Time: 0.275857s Response Body (first 500 chars): {"success":false,"error":"Meeting not found"} ---------------------------------------- Endpoint: POST /api/google-meet/schedule-google-meet Description: Schedule Google Meet Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.014405s Response Body (first 500 chars): {"success":false,"error":"Validation failed: title: Required; date: Required; time: Required; duration: Required; timezone: Required; participants: Required","errors":{"formErrors":[],"fieldErrors":{"title":["Required"],"date":["Required"],"time":["Required"],"duration":["Required"],"timezone":["Required"],"participants":["Required"]}}} ---------------------------------------- Endpoint: POST /api/google-meet/create-google-meet Description: Create Google Meet Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.011126s Response Body (first 500 chars): {"ok":false,"error":"Validation failed: preferredMeetingTime: Required","errors":{"formErrors":[],"fieldErrors":{"preferredMeetingTime":["Required"]}}} ---------------------------------------- Endpoint: POST /api/google-meet Description: Create Google Meet (root) Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.014720s Response Body (first 500 chars): {"ok":false,"error":"Validation failed: preferredMeetingTime: Required","errors":{"formErrors":[],"fieldErrors":{"preferredMeetingTime":["Required"]}}} ---------------------------------------- Endpoint: PUT /api/google-meet/test-id/cancel Description: Cancel Google Meet Status: ✗ FAIL HTTP Code: 500 Response Time: 0.014045s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"test-id\" (type string) at path \"_id\" for model \"GoogleMeet\""} ---------------------------------------- Endpoint: PUT /api/google-meet/test-id Description: Update Google Meet Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.013077s Response Body (first 500 chars): {"success":false,"error":"Validation failed","errors":{"formErrors":[],"fieldErrors":{"status":["Invalid enum value. Expected 'Scheduled' | 'Completed' | 'Cancelled' | 'In Progress', received 'cancelled'"]}}} ---------------------------------------- Endpoint: DELETE /api/google-meet/test-id Description: Delete Google Meet Status: ✗ FAIL HTTP Code: 500 Response Time: 0.014173s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"test-id\" (type string) at path \"_id\" for model \"GoogleMeet\""} === TEMPLATES ENDPOINTS === ---------------------------------------- Endpoint: GET /api/templates Description: List all templates Status: ✓ PASS HTTP Code: 200 Response Time: 0.276649s Response Body (first 500 chars): {"success":true,"data":[{"_id":"69522e91f51c5e852c49794d","title":"AibitSoft - Portfolio Website for Companies, Agencies | Design that actually Converts","description":"**AiBitSoft** is a modern, clean, and highly scalable digital solutions website designed for software companies, IT agencies, startups, SaaS providers, and tech consultants who want a professional online presence without starting from scratch. Built with performance, flexibility, and real-world business needs in mind, this websit ---------------------------------------- Endpoint: GET /api/templates/invalid-id Description: Get template by ID Status: ✗ FAIL HTTP Code: 500 Response Time: 0.013647s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"invalid-id\" (type string) at path \"_id\" for model \"Template\""} ---------------------------------------- Endpoint: POST /api/templates Description: Create template Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.011543s Response Body (first 500 chars): {"success":false,"error":"Preview image is required"} ---------------------------------------- Endpoint: DELETE /api/templates/test-id Description: Delete template Status: ✗ FAIL HTTP Code: 500 Response Time: 0.013793s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"test-id\" (type string) at path \"_id\" for model \"Template\""} === INTERVIEW EMAIL ENDPOINTS === ---------------------------------------- Endpoint: POST /api/interviews/send-email Description: Send interview email Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.014632s Response Body (first 500 chars): {"success":false,"error":"Missing required fields: candidateName, candidateEmail, role, interviewDate, interviewType, interviewer"} === CONTACT FORM ENDPOINTS === ---------------------------------------- Endpoint: POST /api/contact Description: Submit contact form Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.014149s Response Body (first 500 chars): {"ok":false,"error":"Validation failed: phone: Phone number is required; services: Please select at least one service","errors":{"formErrors":[],"fieldErrors":{"phone":["Phone number is required"],"services":["Please select at least one service"]}}} === PROPOSAL FORM ENDPOINTS === ---------------------------------------- Endpoint: POST /api/proposal Description: Submit proposal form Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.012635s Response Body (first 500 chars): {"ok":false,"error":"Validation failed: name: Name must be at least 2 characters; phone: Phone number is required; services: Please select at least one service","errors":{"formErrors":[],"fieldErrors":{"name":["Name must be at least 2 characters"],"phone":["Phone number is required"],"services":["Please select at least one service"]}}} === BOOK EXPERT FORM ENDPOINTS === ---------------------------------------- Endpoint: POST /api/book-expert Description: Submit book expert form Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.014395s Response Body (first 500 chars): {"ok":false,"error":"Validation failed: phone: Phone number is required; services: Please select at least one service","errors":{"formErrors":[],"fieldErrors":{"phone":["Phone number is required"],"services":["Please select at least one service"]}}} === PARTNER FORM ENDPOINTS === ---------------------------------------- Endpoint: POST /api/partner Description: Submit partner form Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.015620s Response Body (first 500 chars): {"ok":false,"error":"Validation failed: name: Name must be at least 2 characters; phone: Phone number is required; partnershipType: Partnership type is required","errors":{"formErrors":[],"fieldErrors":{"name":["Name must be at least 2 characters"],"phone":["Phone number is required"],"partnershipType":["Partnership type is required"]}}} === USER ENDPOINTS === ---------------------------------------- Endpoint: POST /api/users/login Description: Save user login Status: ⚠ EXPECTED (Client Error) HTTP Code: 400 Response Time: 0.012961s Response Body (first 500 chars): {"success":false,"error":"Missing required fields: provider, providerId, email, name"} ---------------------------------------- Endpoint: GET /api/users/email/test@test.com Description: Get user by email Status: ⚠ EXPECTED (Client Error) HTTP Code: 404 Response Time: 0.274682s Response Body (first 500 chars): {"success":false,"error":"User not found"} ---------------------------------------- Endpoint: GET /api/users/email/aibitsofts@gmail.com Description: Get user by email (existing) Status: ✓ PASS HTTP Code: 200 Response Time: 0.271129s Response Body (first 500 chars): {"success":true,"data":{"user":{"id":"696a37adf8347bc32bd9605a","name":"AiBit","email":"aibitsofts@gmail.com","provider":"google"}}} ---------------------------------------- Endpoint: GET /api/users/me Description: Get current user Status: ✗ FAIL HTTP Code: 500 Response Time: 0.012192s Response Body (first 500 chars): {"success":false,"error":"Failed to get current user"} === AUTH ENDPOINTS === ---------------------------------------- Endpoint: GET /auth/google/debug Description: Debug OAuth configuration Status: ✓ PASS HTTP Code: 200 Response Time: 0.011826s Response Body (first 500 chars): {"backendUrl":"http://localhost:4000","frontendUrl":"http://localhost:8000","callbackUrl":"http://localhost:4000/auth/google/callback","clientId":"453519492000-s8oar4s78ueo2p8usujmctat83avkp4g.apps.googleusercontent.com","clientSecret":"✓ Set","jwtSecret":"✓ Set","message":"Make sure the callbackUrl above matches EXACTLY in Google Console","instructions":"✅ Configuration looks good! Make sure the callbackUrl matches in Google Console.","requiredEnvVars":{"BACKEND_URL":"✓","FRONTEND_URL": ---------------------------------------- Endpoint: GET /auth/google Description: Initiate Google OAuth (redirects) Status: ? UNKNOWN HTTP Code: 302 Response Time: 0.012003s Response Body (first 500 chars): ---------------------------------------- Endpoint: GET /auth/google/callback?code=test Description: Google OAuth callback Status: ✗ FAIL HTTP Code: 500 Response Time: 0.109906s Response Body (first 500 chars): {"success":false,"error":"Malformed auth code."} === ROOT ENDPOINT === ---------------------------------------- Endpoint: GET /api Description: Root API endpoint Status: ✓ PASS HTTP Code: 200 Response Time: 1.062702s Response Body (first 500 chars): {"success":true,"data":[{"_id":"696a87602c08627f6c1794a9","zoomMeetingId":"85792533614","topic":"Meeting with Abdullah warraich","startTime":"2026-01-17T03:45:00.000Z","duration":30,"timezone":"America/Los_Angeles","joinUrl":"https://us05web.zoom.us/j/85792533614?pwd=yBaWntPY9s133Jm9u1CYJ2LSjaJ0bM.1","startUrl":"https://us05web.zoom.us/s/85792533614?zak=eyJ0eXAiOiJKV1QiLCJzdiI6IjAwMDAwMiIsInptX3NrbSI6InptX28ybSIsImFsZyI6IkhTMjU2In0.eyJpc3MiOiJ3ZWIiLCJjbHQiOjAsIm1udW0iOiI4NTc5MjUzMzYxNCIsImF1ZCI6 === ADDITIONAL EDGE CASES === ---------------------------------------- Endpoint: GET / Description: Root path Status: ⚠ EXPECTED (Client Error) HTTP Code: 404 Response Time: 0.015934s Response Body (first 500 chars): {"success":false,"error":"Route GET / not found"} ---------------------------------------- Endpoint: GET /api/ Description: API root with trailing slash Status: ✓ PASS HTTP Code: 200 Response Time: 0.546483s Response Body (first 500 chars): {"success":true,"data":[{"_id":"696a87602c08627f6c1794a9","zoomMeetingId":"85792533614","topic":"Meeting with Abdullah warraich","startTime":"2026-01-17T03:45:00.000Z","duration":30,"timezone":"America/Los_Angeles","joinUrl":"https://us05web.zoom.us/j/85792533614?pwd=yBaWntPY9s133Jm9u1CYJ2LSjaJ0bM.1","startUrl":"https://us05web.zoom.us/s/85792533614?zak=eyJ0eXAiOiJKV1QiLCJzdiI6IjAwMDAwMiIsInptX3NrbSI6InptX28ybSIsImFsZyI6IkhTMjU2In0.eyJpc3MiOiJ3ZWIiLCJjbHQiOjAsIm1udW0iOiI4NTc5MjUzMzYxNCIsImF1ZCI6 ---------------------------------------- Endpoint: GET /api/jobs/ Description: Jobs with trailing slash Status: ✓ PASS HTTP Code: 200 Response Time: 0.272589s Response Body (first 500 chars): {"success":true,"data":[]} ---------------------------------------- Endpoint: GET /api/invalid-route Description: Invalid route Status: ✗ FAIL HTTP Code: 500 Response Time: 0.013063s Response Body (first 500 chars): {"success":false,"error":"Cast to ObjectId failed for value \"invalid-route\" (type string) at path \"_id\" for model \"ZoomMeeting\""} ---------------------------------------- Endpoint: GET /.well-known/acme-challenge/test Description: ACME challenge path Status: ⚠ EXPECTED (Client Error) HTTP Code: 404 Response Time: 0.012738s Response Body (first 500 chars): {"success":false,"error":"Route GET /403.shtml not found"} ================================================ TEST SUMMARY ================================================ Total Endpoints Tested: 70 Report saved to: api-test-report-https-20260117-084323.txt ================================================