diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2019-05-10 17:30:28 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2019-05-10 17:30:28 +0900 |
| commit | 8e6da3a0d9f2f6dbd8f1009e1accdb4e4ebae169 (patch) | |
| tree | 464f6e908de12e86eec16ec918adfe3be387b166 /src/server/api/endpoints/pinned-users.ts | |
| parent | テキストのリスト内で変数埋め込みできるように (diff) | |
| download | sharkey-8e6da3a0d9f2f6dbd8f1009e1accdb4e4ebae169.tar.gz sharkey-8e6da3a0d9f2f6dbd8f1009e1accdb4e4ebae169.tar.bz2 sharkey-8e6da3a0d9f2f6dbd8f1009e1accdb4e4ebae169.zip | |
インスタンス運営者がピン留めユーザーを設定できるように
Related #4892
Diffstat (limited to 'src/server/api/endpoints/pinned-users.ts')
| -rw-r--r-- | src/server/api/endpoints/pinned-users.ts | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/server/api/endpoints/pinned-users.ts b/src/server/api/endpoints/pinned-users.ts new file mode 100644 index 0000000000..de0e17a2ec --- /dev/null +++ b/src/server/api/endpoints/pinned-users.ts @@ -0,0 +1,33 @@ +import define from '../define'; +import { Users } from '../../../models'; +import { types, bool } from '../../../misc/schema'; +import { fetchMeta } from '../../../misc/fetch-meta'; +import parseAcct from '../../../misc/acct/parse'; +import { User } from '../../../models/entities/user'; + +export const meta = { + tags: ['users'], + + requireCredential: false, + + params: { + }, + + res: { + type: types.array, + optional: bool.false, nullable: bool.false, + items: { + type: types.object, + optional: bool.false, nullable: bool.false, + ref: 'User', + } + }, +}; + +export default define(meta, async (ps, me) => { + const meta = await fetchMeta(); + + const users = await Promise.all(meta.pinnedUsers.map(acct => Users.findOne(parseAcct(acct)))); + + return await Users.packMany(users.filter(x => x !== undefined) as User[], me, { detail: true }); +}); |