diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2019-07-08 16:17:47 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2019-07-08 16:17:47 +0900 |
| commit | 0f71d9f47a2e9f2a0dfeab7930af417d8f217397 (patch) | |
| tree | b17bbcd3e8fcbcad2a2bd4f93bea8adc6596acd4 /src/server/api/endpoints/page-push.ts | |
| parent | Merge branch 'develop' (diff) | |
| parent | 11.25.0 (diff) | |
| download | sharkey-0f71d9f47a2e9f2a0dfeab7930af417d8f217397.tar.gz sharkey-0f71d9f47a2e9f2a0dfeab7930af417d8f217397.tar.bz2 sharkey-0f71d9f47a2e9f2a0dfeab7930af417d8f217397.zip | |
Merge branch 'develop'
Diffstat (limited to 'src/server/api/endpoints/page-push.ts')
| -rw-r--r-- | src/server/api/endpoints/page-push.ts | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/server/api/endpoints/page-push.ts b/src/server/api/endpoints/page-push.ts new file mode 100644 index 0000000000..f5e1a4d1eb --- /dev/null +++ b/src/server/api/endpoints/page-push.ts @@ -0,0 +1,49 @@ +import $ from 'cafy'; +import define from '../define'; +import { ID } from '../../../misc/cafy-id'; +import { publishMainStream } from '../../../services/stream'; +import { Users, Pages } from '../../../models'; +import { ApiError } from '../error'; + +export const meta = { + requireCredential: true, + secure: true, + + params: { + pageId: { + validator: $.type(ID) + }, + + event: { + validator: $.str + }, + + var: { + validator: $.optional.nullable.any + } + }, + + errors: { + noSuchPage: { + message: 'No such page.', + code: 'NO_SUCH_PAGE', + id: '4a13ad31-6729-46b4-b9af-e86b265c2e74' + } + } +}; + +export default define(meta, async (ps, user) => { + const page = await Pages.findOne(ps.pageId); + if (page == null) { + throw new ApiError(meta.errors.noSuchPage); + } + + publishMainStream(user.id, 'pageEvent', { + pageId: ps.pageId, + event: ps.event, + var: ps.var, + user: await Users.pack(user, page.userId, { + detail: true + }) + }); +}); |