diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2019-02-16 06:50:58 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2019-02-16 06:50:58 +0900 |
| commit | c2b1bbeec5f48eb96ea50914d80581aab5119bf3 (patch) | |
| tree | d3719f6ced15710653cb535b513081e53e0ebc46 /src/server | |
| parent | Add missing comma (diff) | |
| download | sharkey-c2b1bbeec5f48eb96ea50914d80581aab5119bf3.tar.gz sharkey-c2b1bbeec5f48eb96ea50914d80581aab5119bf3.tar.bz2 sharkey-c2b1bbeec5f48eb96ea50914d80581aab5119bf3.zip | |
Exploreページを実装
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/api/endpoints/users.ts | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/src/server/api/endpoints/users.ts b/src/server/api/endpoints/users.ts index c0da464831..fa35235a1d 100644 --- a/src/server/api/endpoints/users.ts +++ b/src/server/api/endpoints/users.ts @@ -27,6 +27,18 @@ export const meta = { ]), }, + state: { + validator: $.optional.str.or([ + 'all', + 'admin', + 'moderator', + 'adminOrModerator', + 'verified', + 'alive' + ]), + default: 'all' + }, + origin: { validator: $.optional.str.or([ 'combined', @@ -72,10 +84,32 @@ export default define(meta, (ps, me) => new Promise(async (res, rej) => { }; } - const q = + const q = { + $and: [] + } as any; + + // state + q.$and.push( + ps.state == 'admin' ? { isAdmin: true } : + ps.state == 'moderator' ? { isModerator: true } : + ps.state == 'adminOrModerator' ? { + $or: [{ + isAdmin: true + }, { + isModerator: true + }] + } : + ps.state == 'verified' ? { isVerified: true } : + ps.state == 'alive' ? { updatedAt: { $gt: new Date(Date.now() - (1000 * 60 * 60 * 24 * 5)) } } : + {} + ); + + // origin + q.$and.push( ps.origin == 'local' ? { host: null } : ps.origin == 'remote' ? { host: { $ne: null } } : - {}; + {} + ); const users = await User .find(q, { |