12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- /**
- * 搜索接口。
- *
- * author: Sand
- * since: 12/15/2016
- */
- "use strict";
- let express = require('express');
- let router = express.Router();
- let ControllerUtil = require("../../util/controller.util.js");
- let ObjectSearcher = require('../../models/search/object.searcher');
- const APIv2 = require('../../include/endpoints').APIv2;
- /**
- * 搜索。
- *
- * 参数:
- * user_id: 用户ID
- * target_role: 目标角色,patient为患者相关,doctor为医生相关
- * entity_type: 实体类型,user为用户,session为会话,message为消息,all为全部都搜索
- * keyword: 关键字
- * exclude_topic_ended_sessions: 排除议题已结束的会话
- * page: 第几页,从1开始,当target为all时无效
- * size: 页大小,当target为all时无效
- *
- * URL:
- * /search?user_id=e51ac&target_role=doctor&entity_type=all&keyword=张&exclude_topic_ended_sessions=true&page=1&size=3
- */
- router.get('/', function (req, res) {
- ControllerUtil.checkRequestQueryParams(req, ['user_id', 'target_role', 'entity_type', 'keyword']);
- let userId = req.query.user_id;
- let targetRole = req.query.target_role;
- let entityType = req.query.entity_type;
- let keyword = req.query.keyword;
- let excludeTopicEndedSessions = req.query.exclude_topic_ended_sessions === 'true';
- let page = req.query.page;
- let size = req.query.size;
- page = page ? parseInt(page) - 1 : 0;
- size = size ? parseInt(size) : 10;
- let searcher = new ObjectSearcher();
- ControllerUtil.regModelEventHandler(searcher, res);
- searcher.search(userId, keyword, targetRole, entityType, excludeTopicEndedSessions, page, size);
- });
- module.exports = router;
|