'perormanceapi-added'

parent 43f7728c
......@@ -13,6 +13,8 @@
"@testing-library/user-event": "^13.5.0",
"cors": "^2.8.5",
"express": "^4.18.3",
"lodash": "^4.17.21",
"moment": "^2.30.1",
"mongodb": "^6.5.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
......@@ -12793,6 +12795,14 @@
"mkdirp": "bin/cmd.js"
}
},
"node_modules/moment": {
"version": "2.30.1",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
"engines": {
"node": "*"
}
},
"node_modules/mongodb": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.5.0.tgz",
......
......@@ -8,6 +8,8 @@
"@testing-library/user-event": "^13.5.0",
"cors": "^2.8.5",
"express": "^4.18.3",
"lodash": "^4.17.21",
"moment": "^2.30.1",
"mongodb": "^6.5.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
......@@ -19,7 +21,7 @@
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"server":"node --watch server.js"
"server": "node --watch server.js"
},
"eslintConfig": {
"extends": [
......
......@@ -31,27 +31,47 @@ app.get('/employee/:id', (req, res) => {
.catch(error => res.status(401).send(error))
})
/*
Example of post Data
{
"reportees":[41689,41716,41710,41750,41751,41714],
"sort":{"type":"empId","order":-1}
,"page":1,"perPage":10,
"searchText":"eng"
}*/
app.post('/getreportees', (req, res) => {
let reporteesArray = req.body.reportees;
let sortBy=req.body.sort.type || _id
let sortByOrder=parseInt(req.body.sort.order)|| 1
let page = parseInt(req.body.page) || 1;
let limit = parseInt(req.body.perPage) || 10;
let reporteesArray = req.body.reportees || [];
let sortBy=req.body.sort?req.body.sort.type || "_id" :"_id"
let sortByOrder=req.body.sort?parseInt(req.body.sort.order)|| 1: 1;
let page = req.body.page?parseInt(req.body.page) || 1 : 1;
let limit = req.body.perPage?parseInt(req.body.perPage) || 10: 10;
let skip = (page - 1) * limit || 0;
db.collection('employees').find({ empId: { $in: reporteesArray } }, { projection: { _id: false } })
let query = { empId: { $in: reporteesArray } };
if(req.body.searchText){
let searchText = req.body.searchText.trim();
let searchStr = new RegExp(searchText, 'ig');
query = Object.assign(query, {
"$or": [
{ 'empId': searchStr },
{ 'empName': searchStr },
{"designation":searchStr}
]
});
}
db.collection('employees').find(query, { projection: { _id: false } })
.skip(skip)
.sort({[sortBy]:sortByOrder})
.limit(limit)
.toArray()
.then(result => {
// Get the total count of data
db.collection('employees').countDocuments({ empId: { $in: reporteesArray } })
db.collection('employees').countDocuments(query)
.then(totalCount => {
res.send({
total: totalCount,
totalcount: totalCount,
currentPage: page,
totalPages: Math.ceil(totalCount / limit),
data: result
data: result,
});
})
.catch(error => res.status(401).send(error));
......@@ -59,6 +79,63 @@ app.post('/getreportees', (req, res) => {
.catch(error => res.status(401).send(error));
});
//Example of post Data
/*
{
"empId":10000,
"data":{
"aName":"timesheet",
"aId":"D001",
"type":"default",
"recorded_date":"2024-03-12",
"score":3,
"comments":"very good"
}
}
*/
app.post('/create-performance',(req,res)=>{
const empId = req.body.empId || null;
if(!empId){
res.status(401).json({"message":"Employee id is missing"});
return
}else{
let {data} = req.body;
data = {...data, "recorded_date": new Date(data['recorded_date']) };
let query = {empId:empId };
db.collection('performance_master').findOne(query).then((result)=>{
if(result){
db.collection('performance_master').updateOne(query,{ $push: { "activities":data } })
.then((updateRes)=>{
res.json({"reuslt":updateRes});
})
.catch((error)=>{
res.json({"error":error});
});
}else{
//create ne one
let insertData = { empId:empId, activities:[]};
insertData.activities.push(data);
db.collection('performance_master').insertOne(insertData).then((result)=>{
res.json({"result":result});
}).catch((error)=>{
res.json({"message":error})
})
}
}).catch((error)=>{
console.log(error)
res.send(query)
})
}
})
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment