48 lines
1.4 KiB
JavaScript
48 lines
1.4 KiB
JavaScript
const asyncHandler =require('express-async-handler')
|
|
const mongoose = require('mongoose');
|
|
let Employee = require('../../models/employee');
|
|
let WorkingTime = require('../../models/workingtime');
|
|
var fs = require('fs');
|
|
var path = require('path');
|
|
exports.exportWorktime=asyncHandler(async (req,res)=>{
|
|
const {userId} =req.params;
|
|
if (!userId){
|
|
res.status(400).send('Invalid Id!');
|
|
return;
|
|
}
|
|
let employees=await Employee.find({});
|
|
for (employee of employees){
|
|
try{
|
|
let doc=await WorkingTime.find({"employeeId":new mongoose.Types.ObjectId(employee._id)})
|
|
let z=[];
|
|
if (!doc){
|
|
res.status(500).json({err:'No data Found!',doc:null});
|
|
return;
|
|
}
|
|
let data = JSON.stringify(doc)
|
|
let v=JSON.parse(data)
|
|
v.forEach((x)=>{
|
|
x._id='ObjectId("'+x._id.toString()+'")'
|
|
x.employeeId='ObjectId("'+x.employeeId.toString()+'")'
|
|
})
|
|
|
|
|
|
const exportFolder = path.join(".", './exportDB/');
|
|
// var type='img';
|
|
if (!fs.existsSync(exportFolder)){
|
|
fs.mkdirSync(exportFolder,{recursive: true}, err => {})
|
|
|
|
}
|
|
const i=JSON.stringify(v,null,'\t')
|
|
|
|
await fs.writeFileSync(exportFolder+'/'+employee._id,i);
|
|
//console.log(i);
|
|
//res.status(200).json({err:null,doc:i});
|
|
} catch(err){
|
|
// res.status(500).json({err:err,doc:null});
|
|
}
|
|
}
|
|
res.status(200).json("OK");
|
|
})
|
|
|