diff options
| author | MeiMei <30769358+mei23@users.noreply.github.com> | 2019-06-28 18:54:10 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2019-06-28 18:54:09 +0900 |
| commit | 0141affe056e2b7103f67088f6f5bdb276c8d5d3 (patch) | |
| tree | c66cb7597f43a749d24b48ee0b552133ec000b38 /src/remote/activitypub/models/question.ts | |
| parent | Use as const (diff) | |
| download | sharkey-0141affe056e2b7103f67088f6f5bdb276c8d5d3.tar.gz sharkey-0141affe056e2b7103f67088f6f5bdb276c8d5d3.tar.bz2 sharkey-0141affe056e2b7103f67088f6f5bdb276c8d5d3.zip | |
Fix: AP object / actor type (#5086)
* attributedToがArrayの場合などに対応
* attachment以外で来るDocument系のObjectに対応
* Renote, Reply 対応
* 表示をいい感じに
* fix type
* revert as const
* Fix Note / Question type
* attributedToのtypeで複合配列を想定する
Diffstat (limited to 'src/remote/activitypub/models/question.ts')
| -rw-r--r-- | src/remote/activitypub/models/question.ts | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/remote/activitypub/models/question.ts b/src/remote/activitypub/models/question.ts index 5c126c3a56..01086a7cf8 100644 --- a/src/remote/activitypub/models/question.ts +++ b/src/remote/activitypub/models/question.ts @@ -1,12 +1,19 @@ import config from '../../../config'; import Resolver from '../resolver'; -import { IQuestion } from '../type'; +import { IObject, IQuestion, isQuestion, } from '../type'; import { apLogger } from '../logger'; import { Notes, Polls } from '../../../models'; import { IPoll } from '../../../models/entities/poll'; -export async function extractPollFromQuestion(source: string | IQuestion): Promise<IPoll> { - const question = typeof source === 'string' ? await new Resolver().resolve(source) as IQuestion : source; +export async function extractPollFromQuestion(source: string | IObject, resolver?: Resolver): Promise<IPoll> { + if (resolver == null) resolver = new Resolver(); + + const question = await resolver.resolve(source); + + if (!isQuestion(question)) { + throw new Error('invalid type'); + } + const multiple = !question.oneOf; const expiresAt = question.endTime ? new Date(question.endTime) : null; |