search.endpoint.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /**
  2. * 搜索接口。
  3. *
  4. * author: Sand
  5. * since: 12/15/2016
  6. */
  7. "use strict";
  8. let express = require('express');
  9. let router = express.Router();
  10. let ControllerUtil = require("../../util/controller.util.js");
  11. let MySqlSearcher = require('../../models/search/mysql.searcher');
  12. /**
  13. * 搜索API。
  14. *
  15. * 参数:
  16. * target: all/doctor/session/message
  17. * keyword: 关键字
  18. * page: 第几页,从1开始,当target为all时无效
  19. * size: 页大小,当target为all时无效
  20. *
  21. * URL:
  22. * /search?target=all&keyword=张&page
  23. */
  24. router.get("/", function (req, res) {
  25. ControllerUtil.checkRequestQueryParams(req, ['user_id', 'target', 'keyword']);
  26. let userId = req.query.user_id;
  27. let target = req.query.target;
  28. let keyword = req.query.keyword;
  29. let page = req.query.page;
  30. let size = req.query.size;
  31. page = page ? parseInt(page) - 1 : 0;
  32. size = size ? parseInt(size) : 10;
  33. let searcher = new MySqlSearcher();
  34. ControllerUtil.regModelEventHandler(searcher, res);
  35. if(target == 'all'){
  36. searcher.searchAll(userId, keyword);
  37. } else if(target == 'doctor'){
  38. searcher.searchDoctors(keyword, page, size)
  39. } else if(target == 'sessions'){
  40. searcher.searchSessions(userId, keyword, page, size);
  41. } else if(target == 'message'){
  42. searcher.searchMessages(userId, keyword, page, size);
  43. }
  44. });
  45. module.exports = router;