routes.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import express from 'express';
  2. const router = express.Router();
  3. // GET /api/receipt — 查询回执列表
  4. router.get('/', async (req, res) => {
  5. try {
  6. const Parse = (globalThis as any).Parse;
  7. const q = new Parse.Query('Receipt');
  8. q.descending('createdAt');
  9. q.limit(50);
  10. const list = await q.find({ useMasterKey: true });
  11. const data = list.map((r: any) => r.toJSON());
  12. res.json({ success: true, data });
  13. } catch (e: any) {
  14. res.status(500).json({ success: false, error: e.message });
  15. }
  16. });
  17. // GET /api/receipt/:id — 查询单个回执
  18. router.get('/:id', async (req, res) => {
  19. try {
  20. const Parse = (globalThis as any).Parse;
  21. const q = new Parse.Query('Receipt');
  22. q.equalTo('objectId', req.params.id);
  23. const receipt = await q.first({ useMasterKey: true });
  24. if (!receipt) {
  25. return res.status(404).json({ success: false, error: '回执不存在' });
  26. }
  27. res.json({ success: true, data: receipt.toJSON() });
  28. } catch (e: any) {
  29. res.status(500).json({ success: false, error: e.message });
  30. }
  31. });
  32. // POST /api/receipt — 创建/更新回执
  33. router.post('/', async (req, res) => {
  34. try {
  35. const Parse = (globalThis as any).Parse;
  36. const { objectId, ...fields } = req.body;
  37. let obj: any;
  38. if (objectId) {
  39. const q = new Parse.Query('Receipt');
  40. obj = await q.get(objectId, { useMasterKey: true });
  41. } else {
  42. const Receipt = Parse.Object.extend('Receipt');
  43. obj = new Receipt();
  44. }
  45. Object.entries(fields).forEach(([key, value]) => {
  46. obj.set(key, value);
  47. });
  48. const saved = await obj.save(null, { useMasterKey: true });
  49. res.json({ success: true, data: saved.toJSON() });
  50. } catch (e: any) {
  51. res.status(500).json({ success: false, error: e.message });
  52. }
  53. });
  54. export default router;