diff options
| author | Akihiko Odaki <nekomanma@pixiv.co.jp> | 2018-04-03 20:39:27 +0900 |
|---|---|---|
| committer | Akihiko Odaki <nekomanma@pixiv.co.jp> | 2018-04-03 20:41:54 +0900 |
| commit | c22cb377599780666ffe2c7ccdbdcb19a49f1969 (patch) | |
| tree | 1e5a8d36deceeb1611025ac93f04894178e22774 /src/remote/activitypub/act | |
| parent | Improve readability (diff) | |
| download | misskey-c22cb377599780666ffe2c7ccdbdcb19a49f1969.tar.gz misskey-c22cb377599780666ffe2c7ccdbdcb19a49f1969.tar.bz2 misskey-c22cb377599780666ffe2c7ccdbdcb19a49f1969.zip | |
Remove resolveRemoteUserObjects method of remote/activitypub/resolver
The value of the value returned by resolveRemoteUserObjects method of
remote/activitypub/resolver was inconsistent.
Diffstat (limited to 'src/remote/activitypub/act')
| -rw-r--r-- | src/remote/activitypub/act/index.ts | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/remote/activitypub/act/index.ts b/src/remote/activitypub/act/index.ts index 2af1902215..030f1cf25b 100644 --- a/src/remote/activitypub/act/index.ts +++ b/src/remote/activitypub/act/index.ts @@ -4,27 +4,29 @@ import undo from './undo'; import createObject from '../create'; import Resolver from '../resolver'; -export default (resolver: Resolver, actor, value, distribute?: boolean) => { - return resolver.resolve(value).then(resolved => Promise.all(resolved.map(async promisedResult => { - const result = await promisedResult; - const created = await (await createObject(result.resolver, actor, [result.object], distribute))[0]; +export default async (parentResolver: Resolver, actor, value, distribute?: boolean) => { + const collection = await parentResolver.resolveCollection(value); + + return collection.object.map(async element => { + const { resolver, object } = await collection.resolver.resolveOne(element); + const created = await (await createObject(resolver, actor, [object], distribute))[0]; if (created !== null) { return created; } - switch (result.object.type) { + switch (object.type) { case 'Create': - return create(result.resolver, actor, result.object, distribute); + return create(resolver, actor, object, distribute); case 'Follow': - return follow(result.resolver, actor, result.object, distribute); + return follow(resolver, actor, object, distribute); case 'Undo': - return undo(result.resolver, actor, result.object); + return undo(resolver, actor, object); default: return null; } - }))); + }); }; |