From df20f5063dd5f93235307e5fca6fc7b17625bea9 Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 18 Jul 2018 07:19:24 +0900 Subject: #1720 #59 --- src/server/api/endpoints/hashtags/search.ts | 51 +++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/server/api/endpoints/hashtags/search.ts (limited to 'src/server/api') diff --git a/src/server/api/endpoints/hashtags/search.ts b/src/server/api/endpoints/hashtags/search.ts new file mode 100644 index 0000000000..988a786a08 --- /dev/null +++ b/src/server/api/endpoints/hashtags/search.ts @@ -0,0 +1,51 @@ +import $ from 'cafy'; +import Hashtag from '../../../../models/hashtag'; +import getParams from '../../get-params'; + +export const meta = { + desc: { + ja: 'ハッシュタグを検索します。' + }, + + requireCredential: false, + + params: { + limit: $.num.optional.range(1, 100).note({ + default: 10, + desc: { + ja: '最大数' + } + }), + + query: $.str.note({ + desc: { + ja: 'クエリ' + } + }), + + offset: $.num.optional.min(0).note({ + default: 0, + desc: { + ja: 'オフセット' + } + }) + } +}; + +export default (params: any) => new Promise(async (res, rej) => { + const [ps, psErr] = getParams(meta, params); + if (psErr) throw psErr; + + const hashtags = await Hashtag + .find({ + tag: new RegExp(ps.query.toLowerCase()) + }, { + sort: { + count: -1 + }, + limit: ps.limit, + skip: ps.offset + }); + + res(hashtags.map(tag => tag.tag)); +}); -- cgit v1.2.3-freya