-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeepseek_javascript_20251016_58210f.js
More file actions
124 lines (110 loc) · 3.11 KB
/
deepseek_javascript_20251016_58210f.js
File metadata and controls
124 lines (110 loc) · 3.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
const express = require('express');
const router = express.Router();
const Observer = require('../models/Observer');
// Get all observers
router.get('/', async (req, res) => {
try {
const { page = 1, limit = 10, search = '' } = req.query;
const query = search ? {
$or: [
{ fullName: { $regex: search, $options: 'i' } },
{ phone: { $regex: search, $options: 'i' } },
{ voterNumber: { $regex: search, $options: 'i' } }
]
} : {};
const observers = await Observer.find(query)
.limit(limit * 1)
.skip((page - 1) * limit)
.sort({ createdAt: -1 });
const total = await Observer.countDocuments(query);
res.json({
observers,
totalPages: Math.ceil(total / limit),
currentPage: page,
total
});
} catch (error) {
res.status(500).json({ message: error.message });
}
});
// Get observer by ID
router.get('/:id', async (req, res) => {
try {
const observer = await Observer.findById(req.params.id);
if (!observer) {
return res.status(404).json({ message: 'Observer not found' });
}
res.json(observer);
} catch (error) {
res.status(500).json({ message: error.message });
}
});
// Create new observer
router.post('/', async (req, res) => {
try {
const observer = new Observer(req.body);
const savedObserver = await observer.save();
res.status(201).json(savedObserver);
} catch (error) {
res.status(400).json({ message: error.message });
}
});
// Update observer
router.put('/:id', async (req, res) => {
try {
const observer = await Observer.findByIdAndUpdate(
req.params.id,
req.body,
{ new: true, runValidators: true }
);
if (!observer) {
return res.status(404).json({ message: 'Observer not found' });
}
res.json(observer);
} catch (error) {
res.status(400).json({ message: error.message });
}
});
// Delete observer
router.delete('/:id', async (req, res) => {
try {
const observer = await Observer.findByIdAndDelete(req.params.id);
if (!observer) {
return res.status(404).json({ message: 'Observer not found' });
}
res.json({ message: 'Observer deleted successfully' });
} catch (error) {
res.status(500).json({ message: error.message });
}
});
// Get statistics
router.get('/stats/summary', async (req, res) => {
try {
const total = await Observer.countDocuments();
const active = await Observer.countDocuments({ status: 'نشط' });
const inactive = await Observer.countDocuments({ status: 'غير نشط' });
// Count by gender
const maleCount = await Observer.countDocuments({ gender: 'ذكر' });
const femaleCount = await Observer.countDocuments({ gender: 'أنثى' });
// Count by region (simplified)
const regions = await Observer.aggregate([
{
$group: {
_id: '$region',
count: { $sum: 1 }
}
}
]);
res.json({
total,
active,
inactive,
maleCount,
femaleCount,
regions
});
} catch (error) {
res.status(500).json({ message: error.message });
}
});
module.exports = router;