From 915caa1a6b15a2068c909fa1b27a975aadfbe54c Mon Sep 17 00:00:00 2001 From: Bhaskar Date: Wed, 24 Sep 2025 17:22:59 +0530 Subject: [PATCH] comment code --- src/index.js | 718 +++++++++++++++++++++++++-------------------------- 1 file changed, 359 insertions(+), 359 deletions(-) diff --git a/src/index.js b/src/index.js index 4a657e28..3b964276 100644 --- a/src/index.js +++ b/src/index.js @@ -1051,81 +1051,81 @@ fastify.post('/api/uploads_admin_profile/:customerId', { } }); -fastify.post("/api/uploads_installation_profile/:installationId", { - preHandler: upload.single("file"), // your multer/fastify-multipart preHandler -}, async (request, reply) => { - try { - const { installationId } = request.params; - const file = request.file; // in fastify-multer this is set by preHandler +// fastify.post("/api/uploads_installation_profile/:installationId", { +// preHandler: upload.single("file"), // your multer/fastify-multipart preHandler +// }, async (request, reply) => { +// try { +// const { installationId } = request.params; +// const file = request.file; // in fastify-multer this is set by preHandler - if (!file) { - return reply.code(400).send({ error: "No file uploaded (expected field name 'file')." }); - } +// if (!file) { +// return reply.code(400).send({ error: "No file uploaded (expected field name 'file')." }); +// } - // basic file validation - const allowed = ["image/jpeg", "image/jpg", "image/png"]; - if (!allowed.includes(file.mimetype)) { - return reply.code(400).send({ error: "Only JPEG/PNG images are allowed." }); - } +// // basic file validation +// const allowed = ["image/jpeg", "image/jpg", "image/png"]; +// if (!allowed.includes(file.mimetype)) { +// return reply.code(400).send({ error: "Only JPEG/PNG images are allowed." }); +// } - const bucketName = "arminta_profile_pictures"; - const ext = mime.extension(file.mimetype) || (file.originalname.split(".").pop() || "png"); - const safeBase = path.parse(file.originalname).name.replace(/[^\w.-]/g, "_"); - const filePath = `arminta_team_profiles/${safeBase}-${Date.now()}.${ext}`; +// const bucketName = "arminta_profile_pictures"; +// const ext = mime.extension(file.mimetype) || (file.originalname.split(".").pop() || "png"); +// const safeBase = path.parse(file.originalname).name.replace(/[^\w.-]/g, "_"); +// const filePath = `arminta_team_profiles/${safeBase}-${Date.now()}.${ext}`; - // read temp file to buffer - const fileBuffer = await fs.promises.readFile(file.path); +// // read temp file to buffer +// const fileBuffer = await fs.promises.readFile(file.path); - // upload to GCS - const bucket = storage.bucket(bucketName); - const gcsFile = bucket.file(filePath); - await gcsFile.save(fileBuffer, { - resumable: false, - contentType: file.mimetype, - public: true, - metadata: { cacheControl: "public, max-age=31536000" }, - }); - await gcsFile.makePublic(); +// // upload to GCS +// const bucket = storage.bucket(bucketName); +// const gcsFile = bucket.file(filePath); +// await gcsFile.save(fileBuffer, { +// resumable: false, +// contentType: file.mimetype, +// public: true, +// metadata: { cacheControl: "public, max-age=31536000" }, +// }); +// await gcsFile.makePublic(); - const publicUrl = `https://storage.googleapis.com/${bucketName}/${filePath}`; +// const publicUrl = `https://storage.googleapis.com/${bucketName}/${filePath}`; - // 1) Upsert installation profile picture collection - await ProfilePictureInstall.findOneAndUpdate( - { installationId }, - { picture: publicUrl }, - { new: true, upsert: true } - ); +// // 1) Upsert installation profile picture collection +// await ProfilePictureInstall.findOneAndUpdate( +// { installationId }, +// { picture: publicUrl }, +// { new: true, upsert: true } +// ); - // 2) Update department doc where departmentId === installationId - const deptUpdate = await Deparments.findOneAndUpdate( - { departmentId: installationId }, - { picture: publicUrl }, - { new: true } - ); +// // 2) Update department doc where departmentId === installationId +// const deptUpdate = await Deparments.findOneAndUpdate( +// { departmentId: installationId }, +// { picture: publicUrl }, +// { new: true } +// ); - // 3) (Optional) also save on the installation doc itself if you keep picture there - // await Installations.findOneAndUpdate( - // { installationId }, - // { picture: publicUrl }, - // { new: true } - // ); - - return reply.send({ - installationId, - picture: publicUrl, - departmentUpdated: Boolean(deptUpdate), - message: deptUpdate - ? "Upload successful. Department picture updated." - : "Upload successful. No department matched this installationId.", - }); - } catch (err) { - request.log.error(err); - return reply.code(500).send({ error: "Upload failed", details: err.message }); - } finally { - // best effort: clean up temp file if your preHandler writes to disk - try { if (request.file?.path) await fs.promises.unlink(request.file.path); } catch {} - } -}); +// // 3) (Optional) also save on the installation doc itself if you keep picture there +// // await Installations.findOneAndUpdate( +// // { installationId }, +// // { picture: publicUrl }, +// // { new: true } +// // ); + +// return reply.send({ +// installationId, +// picture: publicUrl, +// departmentUpdated: Boolean(deptUpdate), +// message: deptUpdate +// ? "Upload successful. Department picture updated." +// : "Upload successful. No department matched this installationId.", +// }); +// } catch (err) { +// request.log.error(err); +// return reply.code(500).send({ error: "Upload failed", details: err.message }); +// } finally { +// // best effort: clean up temp file if your preHandler writes to disk +// try { if (request.file?.path) await fs.promises.unlink(request.file.path); } catch {} +// } +// }); // fastify.post('/api/uploads_installation_profile/:installationId', { // preHandler: upload.single('file') @@ -1232,103 +1232,103 @@ fastify.post('/api/uploads_company_profile/:customerId', async (request, reply) } }); -fastify.post("/api/uploads_installation_TeamMember_profile/:installationId/:teamMemberId", { - preHandler: upload.single("file"), -}, async (request, reply) => { - try { - const { installationId ,teamMemberId} = request.params; - //const teamMemberId = request.body?.teamMemberId; // OPTIONAL - const file = request.file; +// fastify.post("/api/uploads_installation_TeamMember_profile/:installationId/:teamMemberId", { +// preHandler: upload.single("file"), +// }, async (request, reply) => { +// try { +// const { installationId ,teamMemberId} = request.params; +// //const teamMemberId = request.body?.teamMemberId; // OPTIONAL +// const file = request.file; - if (!file) { - return reply.code(400).send({ error: "No file uploaded (field name 'file')." }); - } +// if (!file) { +// return reply.code(400).send({ error: "No file uploaded (field name 'file')." }); +// } - // Validate image type - const allowed = ["image/jpeg", "image/jpg", "image/png"]; - if (!allowed.includes(file.mimetype)) { - return reply.code(400).send({ error: "Only JPEG/PNG images are allowed." }); - } +// // Validate image type +// const allowed = ["image/jpeg", "image/jpg", "image/png"]; +// if (!allowed.includes(file.mimetype)) { +// return reply.code(400).send({ error: "Only JPEG/PNG images are allowed." }); +// } - // Build GCS path - const ext = (mime.extension(file.mimetype) || path.extname(file.originalname).slice(1) || "png").toLowerCase(); - const safeBase = path.parse(file.originalname).name.replace(/[^\w.-]/g, "_"); - const filePath = `arminta_team_profiles/${safeBase}-${Date.now()}.${ext}`; - const bucketName = "arminta_profile_pictures"; - - // Upload - const buffer = await fs.promises.readFile(file.path); - const bucket = storage.bucket(bucketName); - const gcsFile = bucket.file(filePath); - await gcsFile.save(buffer, { - resumable: false, - public: true, - contentType: file.mimetype, - metadata: { cacheControl: "public, max-age=31536000" }, - }); - await gcsFile.makePublic(); +// // Build GCS path +// const ext = (mime.extension(file.mimetype) || path.extname(file.originalname).slice(1) || "png").toLowerCase(); +// const safeBase = path.parse(file.originalname).name.replace(/[^\w.-]/g, "_"); +// const filePath = `arminta_team_profiles/${safeBase}-${Date.now()}.${ext}`; +// const bucketName = "arminta_profile_pictures"; - const publicUrl = `https://storage.googleapis.com/${bucketName}/${filePath}`; +// // Upload +// const buffer = await fs.promises.readFile(file.path); +// const bucket = storage.bucket(bucketName); +// const gcsFile = bucket.file(filePath); +// await gcsFile.save(buffer, { +// resumable: false, +// public: true, +// contentType: file.mimetype, +// metadata: { cacheControl: "public, max-age=31536000" }, +// }); +// await gcsFile.makePublic(); - // Always upsert the installation-level picture doc - await ProfilePictureInstallTeamMember.findOneAndUpdate( - { installationId, teamMemberId }, - { picture: publicUrl }, - { new: true, upsert: true } -); +// const publicUrl = `https://storage.googleapis.com/${bucketName}/${filePath}`; +// // Always upsert the installation-level picture doc +// await ProfilePictureInstallTeamMember.findOneAndUpdate( +// { installationId, teamMemberId }, +// { picture: publicUrl }, +// { new: true, upsert: true } +// ); - // Update department picture where departmentId === installationId - const deptUpdate = await Deparments.findOneAndUpdate( - { departmentId: installationId }, - { picture: publicUrl }, - { new: true } - ); - let teamMemberUpdated = false; - if (teamMemberId) { - // 1) Upsert team-member picture collection - await ProfilePictureInstallTeamMember.findOneAndUpdate( - { teamMemberId }, - { picture: publicUrl }, - { new: true, upsert: true } - ); +// // Update department picture where departmentId === installationId +// const deptUpdate = await Deparments.findOneAndUpdate( +// { departmentId: installationId }, +// { picture: publicUrl }, +// { new: true } +// ); - // 2) Update nested item inside Installations.team_member.team_member[] - // Using arrayFilters to match the correct team member element - const res = await Install.updateOne( - { installationId }, - { - $set: { - "team_member.team_member.$[tm].picture": publicUrl - } - }, - { - arrayFilters: [{ "tm.teamMemberId": teamMemberId }] - } - ); - teamMemberUpdated = res.modifiedCount > 0; - } +// let teamMemberUpdated = false; +// if (teamMemberId) { +// // 1) Upsert team-member picture collection +// await ProfilePictureInstallTeamMember.findOneAndUpdate( +// { teamMemberId }, +// { picture: publicUrl }, +// { new: true, upsert: true } +// ); - return reply.send({ - installationId, - teamMemberId: teamMemberId || null, - picture: publicUrl, - departmentUpdated: Boolean(deptUpdate), - teamMemberUpdated, - message: teamMemberId - ? (teamMemberUpdated - ? "Upload successful. Installation + team member picture updated." - : "Upload successful. Team member not found under this installation.") - : "Upload successful. Installation picture updated.", - }); - } catch (err) { - request.log.error(err); - return reply.code(500).send({ error: "Upload failed", details: err.message }); - } finally { - try { if (request.file?.path) await fs.promises.unlink(request.file.path); } catch {} - } -}); +// // 2) Update nested item inside Installations.team_member.team_member[] +// // Using arrayFilters to match the correct team member element +// const res = await Install.updateOne( +// { installationId }, +// { +// $set: { +// "team_member.team_member.$[tm].picture": publicUrl +// } +// }, +// { +// arrayFilters: [{ "tm.teamMemberId": teamMemberId }] +// } +// ); +// teamMemberUpdated = res.modifiedCount > 0; +// } + +// return reply.send({ +// installationId, +// teamMemberId: teamMemberId || null, +// picture: publicUrl, +// departmentUpdated: Boolean(deptUpdate), +// teamMemberUpdated, +// message: teamMemberId +// ? (teamMemberUpdated +// ? "Upload successful. Installation + team member picture updated." +// : "Upload successful. Team member not found under this installation.") +// : "Upload successful. Installation picture updated.", +// }); +// } catch (err) { +// request.log.error(err); +// return reply.code(500).send({ error: "Upload failed", details: err.message }); +// } finally { +// try { if (request.file?.path) await fs.promises.unlink(request.file.path); } catch {} +// } +// }); fastify.post('/api/uploads/:supplierId', async (request, reply) => { try { @@ -1495,59 +1495,59 @@ fastify.post('/api/uploads-user/:customerId', async (request, reply) => { // } // }); -fastify.post( - "/api/uploads-electricty-work/:customerId/:installationId", - { preHandler: upload.any() }, // allow multiple files - async (request, reply) => { - try { - const { customerId, installationId } = request.params; - const files = request.files; +// fastify.post( +// "/api/uploads-electricty-work/:customerId/:installationId", +// { preHandler: upload.any() }, // allow multiple files +// async (request, reply) => { +// try { +// const { customerId, installationId } = request.params; +// const files = request.files; - if (!files || files.length === 0) { - return reply.code(400).send({ error: "No files uploaded" }); - } +// if (!files || files.length === 0) { +// return reply.code(400).send({ error: "No files uploaded" }); +// } - const bucketName = "arminta_profile_pictures"; - const publicUrls = []; +// const bucketName = "arminta_profile_pictures"; +// const publicUrls = []; - for (const file of files) { - const uniqueFileName = `${Date.now()}-${Math.random() - .toString(36) - .substring(7)}-${file.originalname}`; - const filePath = `electricty_work_picture/${uniqueFileName}`; +// for (const file of files) { +// const uniqueFileName = `${Date.now()}-${Math.random() +// .toString(36) +// .substring(7)}-${file.originalname}`; +// const filePath = `electricty_work_picture/${uniqueFileName}`; - // ✅ Handle buffer vs path depending on multer storage - const fileBuffer = file.buffer - ? file.buffer // memoryStorage - : await fs.promises.readFile(file.path); // diskStorage +// // ✅ Handle buffer vs path depending on multer storage +// const fileBuffer = file.buffer +// ? file.buffer // memoryStorage +// : await fs.promises.readFile(file.path); // diskStorage - await storage.bucket(bucketName).file(filePath).save(fileBuffer); +// await storage.bucket(bucketName).file(filePath).save(fileBuffer); - await storage.bucket(bucketName).file(filePath).makePublic(); - const publicUrl = `https://storage.googleapis.com/${bucketName}/${filePath}`; - publicUrls.push(publicUrl); +// await storage.bucket(bucketName).file(filePath).makePublic(); +// const publicUrl = `https://storage.googleapis.com/${bucketName}/${filePath}`; +// publicUrls.push(publicUrl); - console.log(`✅ Uploaded: ${publicUrl}`); - } +// console.log(`✅ Uploaded: ${publicUrl}`); +// } - // Update MongoDB - const updatedRecord = await ElectrictyWorkPictures.findOneAndUpdate( - { customerId, installationId }, - { $push: { pictureUrl: { $each: publicUrls.map((url) => ({ url })) } } }, - { new: true, upsert: true } - ); +// // Update MongoDB +// const updatedRecord = await ElectrictyWorkPictures.findOneAndUpdate( +// { customerId, installationId }, +// { $push: { pictureUrl: { $each: publicUrls.map((url) => ({ url })) } } }, +// { new: true, upsert: true } +// ); - return reply.send({ - success: true, - pictures: publicUrls, - details: updatedRecord, - }); - } catch (err) { - console.error("❌ Upload Error:", err); - return reply.code(500).send({ error: "Upload failed", details: err.message }); - } - } -); +// return reply.send({ +// success: true, +// pictures: publicUrls, +// details: updatedRecord, +// }); +// } catch (err) { +// console.error("❌ Upload Error:", err); +// return reply.code(500).send({ error: "Upload failed", details: err.message }); +// } +// } +// ); // fastify.post("/api/uploads-manualTestVideo-work/:customerId/:installationId", async (request, reply) => { // try { @@ -1681,142 +1681,142 @@ fastify.post( // ); -fastify.post( - "/api/uploads-manualTestVideo-work/:customerId/:installationId", - { preHandler: upload.any() }, // Multer saves files to "uploads/" - async (request, reply) => { - try { - const { customerId, installationId } = request.params; - const files = request.files; // Multer saves file info here +// fastify.post( +// "/api/uploads-manualTestVideo-work/:customerId/:installationId", +// { preHandler: upload.any() }, // Multer saves files to "uploads/" +// async (request, reply) => { +// try { +// const { customerId, installationId } = request.params; +// const files = request.files; // Multer saves file info here - if (!files || files.length === 0) { - return reply.code(400).send({ error: "No files uploaded" }); - } +// if (!files || files.length === 0) { +// return reply.code(400).send({ error: "No files uploaded" }); +// } - const bucketName = "arminta_profile_pictures"; - const publicUrls = []; +// const bucketName = "arminta_profile_pictures"; +// const publicUrls = []; - for (const file of files) { - const uniqueFileName = `${Date.now()}-${Math.random() - .toString(36) - .substring(7)}-${file.originalname}`; - const filePath = `manual_test_video/${uniqueFileName}`; +// for (const file of files) { +// const uniqueFileName = `${Date.now()}-${Math.random() +// .toString(36) +// .substring(7)}-${file.originalname}`; +// const filePath = `manual_test_video/${uniqueFileName}`; - console.log(`Uploading video: ${file.path} → ${filePath}`); +// console.log(`Uploading video: ${file.path} → ${filePath}`); - const gcsFile = storage.bucket(bucketName).file(filePath); - const stream = gcsFile.createWriteStream({ - metadata: { - contentType: file.mimetype || "video/mp4", - contentDisposition: "inline", - }, - resumable: false, - }); +// const gcsFile = storage.bucket(bucketName).file(filePath); +// const stream = gcsFile.createWriteStream({ +// metadata: { +// contentType: file.mimetype || "video/mp4", +// contentDisposition: "inline", +// }, +// resumable: false, +// }); - // Pipe from disk to GCS - fs.createReadStream(file.path).pipe(stream); - - await new Promise((resolve, reject) => { - stream.on("finish", async () => { - try { - await gcsFile.makePublic(); - const publicUrl = `https://storage.googleapis.com/${bucketName}/${filePath}`; - publicUrls.push(publicUrl); - console.log(`✅ Uploaded: ${publicUrl}`); - resolve(); - } catch (err) { - reject(err); - } - }); - stream.on("error", (err) => { - console.error("Upload Error:", err); - reject(err); - }); - }); +// // Pipe from disk to GCS +// fs.createReadStream(file.path).pipe(stream); - // optional: cleanup temp file - fs.unlink(file.path, (err) => { - if (err) console.error("Temp file cleanup failed:", err); - }); - } +// await new Promise((resolve, reject) => { +// stream.on("finish", async () => { +// try { +// await gcsFile.makePublic(); +// const publicUrl = `https://storage.googleapis.com/${bucketName}/${filePath}`; +// publicUrls.push(publicUrl); +// console.log(`✅ Uploaded: ${publicUrl}`); +// resolve(); +// } catch (err) { +// reject(err); +// } +// }); +// stream.on("error", (err) => { +// console.error("Upload Error:", err); +// reject(err); +// }); +// }); - // Update MongoDB - const updatedRecord = await ManualTestVideo.findOneAndUpdate( - { customerId, installationId }, - { $push: { pictureUrl: { $each: publicUrls.map((url) => ({ url })) } } }, - { new: true, upsert: true } - ); +// // optional: cleanup temp file +// fs.unlink(file.path, (err) => { +// if (err) console.error("Temp file cleanup failed:", err); +// }); +// } - return reply.send({ - success: true, - videos: publicUrls, - details: updatedRecord, - }); - } catch (err) { - console.error("Upload Error:", err); - return reply - .code(500) - .send({ error: "Upload failed", details: err.message }); - } - } -); +// // Update MongoDB +// const updatedRecord = await ManualTestVideo.findOneAndUpdate( +// { customerId, installationId }, +// { $push: { pictureUrl: { $each: publicUrls.map((url) => ({ url })) } } }, +// { new: true, upsert: true } +// ); -fastify.post("/api/uploads-plumbing-work/:customerId/:installationId", async (request, reply) => { - try { - const { customerId, installationId } = request.params; - const files = await request.files(); // Await files properly +// return reply.send({ +// success: true, +// videos: publicUrls, +// details: updatedRecord, +// }); +// } catch (err) { +// console.error("Upload Error:", err); +// return reply +// .code(500) +// .send({ error: "Upload failed", details: err.message }); +// } +// } +// ); - if (!files || files.length === 0) { - return reply.code(400).send({ error: "No files uploaded" }); - } +// fastify.post("/api/uploads-plumbing-work/:customerId/:installationId", async (request, reply) => { +// try { +// const { customerId, installationId } = request.params; +// const files = await request.files(); // Await files properly - const bucketName = "arminta_profile_pictures"; - const publicUrls = []; +// if (!files || files.length === 0) { +// return reply.code(400).send({ error: "No files uploaded" }); +// } - for await (const file of files) { - const uniqueFileName = `${Date.now()}-${Math.random().toString(36).substring(7)}-${file.filename}`; - const filePath = `plumbing_work_picture/${uniqueFileName}`; +// const bucketName = "arminta_profile_pictures"; +// const publicUrls = []; - console.log(`Uploading file: ${file.filename} → ${filePath}`); +// for await (const file of files) { +// const uniqueFileName = `${Date.now()}-${Math.random().toString(36).substring(7)}-${file.filename}`; +// const filePath = `plumbing_work_picture/${uniqueFileName}`; - const writeStream = storage.bucket(bucketName).file(filePath).createWriteStream(); +// console.log(`Uploading file: ${file.filename} → ${filePath}`); - file.file.pipe(writeStream); +// const writeStream = storage.bucket(bucketName).file(filePath).createWriteStream(); - await new Promise((resolve, reject) => { - writeStream.on("finish", async () => { - try { - await storage.bucket(bucketName).file(filePath).makePublic(); - const publicUrl = `https://storage.googleapis.com/${bucketName}/${filePath}`; - publicUrls.push(publicUrl); - console.log(`File uploaded: ${publicUrl}`); - resolve(); - } catch (error) { - console.error("Failed to make file public:", error); - reject(error); - } - }); +// file.file.pipe(writeStream); - writeStream.on("error", (err) => { - console.error("Failed to upload file:", err); - reject(err); - }); - }); - } +// await new Promise((resolve, reject) => { +// writeStream.on("finish", async () => { +// try { +// await storage.bucket(bucketName).file(filePath).makePublic(); +// const publicUrl = `https://storage.googleapis.com/${bucketName}/${filePath}`; +// publicUrls.push(publicUrl); +// console.log(`File uploaded: ${publicUrl}`); +// resolve(); +// } catch (error) { +// console.error("Failed to make file public:", error); +// reject(error); +// } +// }); - // Update MongoDB: Convert URLs to { url: "..." } objects - const updatedRecord = await PlumbingWorkPictures.findOneAndUpdate( - { customerId, installationId }, - { $push: { pictureUrl: { $each: publicUrls.map(url => ({ url })) } } }, // Append new images - { new: true, upsert: true } - ); +// writeStream.on("error", (err) => { +// console.error("Failed to upload file:", err); +// reject(err); +// }); +// }); +// } - reply.send({ success: true, pictures: publicUrls, details: updatedRecord }); - } catch (err) { - console.error("Upload Error:", err); - reply.code(500).send({ error: "An error occurred", details: err.message }); - } -}); +// // Update MongoDB: Convert URLs to { url: "..." } objects +// const updatedRecord = await PlumbingWorkPictures.findOneAndUpdate( +// { customerId, installationId }, +// { $push: { pictureUrl: { $each: publicUrls.map(url => ({ url })) } } }, // Append new images +// { new: true, upsert: true } +// ); + +// reply.send({ success: true, pictures: publicUrls, details: updatedRecord }); +// } catch (err) { +// console.error("Upload Error:", err); +// reply.code(500).send({ error: "An error occurred", details: err.message }); +// } +// }); // fastify.post("/api/uploads-material-recieved/:customerId/:installationId", async (request, reply) => { // try { @@ -1988,61 +1988,61 @@ fastify.post("/api/uploads-plumbing-work/:customerId/:installationId", async (re // }, // }); -fastify.post( - "/api/uploads-material-recieved/:customerId/:installationId", - { preHandler: upload.any() }, // use 'files' field for multiple uploads - async (request, reply) => { - try { - const { customerId, installationId } = request.params; - const files = request.files; // multer-style files array +// fastify.post( +// "/api/uploads-material-recieved/:customerId/:installationId", +// { preHandler: upload.any() }, // use 'files' field for multiple uploads +// async (request, reply) => { +// try { +// const { customerId, installationId } = request.params; +// const files = request.files; // multer-style files array - if (!files || files.length === 0) { - return reply.code(400).send({ error: "No files uploaded" }); - } +// if (!files || files.length === 0) { +// return reply.code(400).send({ error: "No files uploaded" }); +// } - const bucketName = "arminta_profile_pictures"; - const publicUrls = []; +// const bucketName = "arminta_profile_pictures"; +// const publicUrls = []; - for (const file of files) { - // Generate unique file name - const uniqueFileName = `${Date.now()}-${Math.random() - .toString(36) - .substring(7)}-${file.originalname}`; - const filePath = `plumbing_work_picture/${uniqueFileName}`; +// for (const file of files) { +// // Generate unique file name +// const uniqueFileName = `${Date.now()}-${Math.random() +// .toString(36) +// .substring(7)}-${file.originalname}`; +// const filePath = `plumbing_work_picture/${uniqueFileName}`; - // Read file buffer - const fileBuffer = await fs.promises.readFile(file.path); +// // Read file buffer +// const fileBuffer = await fs.promises.readFile(file.path); - // Upload to GCS - await storage.bucket(bucketName).file(filePath).save(fileBuffer); +// // Upload to GCS +// await storage.bucket(bucketName).file(filePath).save(fileBuffer); - // Make file public - await storage.bucket(bucketName).file(filePath).makePublic(); +// // Make file public +// await storage.bucket(bucketName).file(filePath).makePublic(); - const publicUrl = `https://storage.googleapis.com/${bucketName}/${filePath}`; - publicUrls.push(publicUrl); - } +// const publicUrl = `https://storage.googleapis.com/${bucketName}/${filePath}`; +// publicUrls.push(publicUrl); +// } - // Save/Update in DB - const updatedRecord = await MaterialRecievedPictures.findOneAndUpdate( - { customerId, installationId }, - { $push: { pictureUrl: { $each: publicUrls.map((url) => ({ url })) } } }, // Append images - { new: true, upsert: true } - ); +// // Save/Update in DB +// const updatedRecord = await MaterialRecievedPictures.findOneAndUpdate( +// { customerId, installationId }, +// { $push: { pictureUrl: { $each: publicUrls.map((url) => ({ url })) } } }, // Append images +// { new: true, upsert: true } +// ); - return reply.send({ - success: true, - pictures: publicUrls, - details: updatedRecord, - }); - } catch (err) { - request.log.error(err); - return reply - .code(500) - .send({ error: "Upload failed", details: err.message }); - } - } -); +// return reply.send({ +// success: true, +// pictures: publicUrls, +// details: updatedRecord, +// }); +// } catch (err) { +// request.log.error(err); +// return reply +// .code(500) +// .send({ error: "Upload failed", details: err.message }); +// } +// } +// ); fastify.post("/api/installLogin", { schema: { description: "Login as Installation Manager",