diff options
Diffstat (limited to 'src/remote/activitypub/act/index.ts')
| -rw-r--r-- | src/remote/activitypub/act/index.ts | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/remote/activitypub/act/index.ts b/src/remote/activitypub/act/index.ts index 24320dcb1d..3b7dd5b249 100644 --- a/src/remote/activitypub/act/index.ts +++ b/src/remote/activitypub/act/index.ts @@ -1,23 +1,26 @@ import create from './create'; import follow from './follow'; +import undo from './undo'; import createObject from '../create'; -import Resolver from '../resolver'; -export default (actor, value, distribute) => { - return new Resolver().resolve(value).then(resolved => Promise.all(resolved.map(async promisedResult => { - const { resolver, object } = await promisedResult; - const created = await (await createObject(resolver, actor, [object], distribute))[0]; +export default (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]; if (created !== null) { return created; } - switch (object.type) { + switch (result.object.type) { case 'Create': - return create(resolver, actor, object, distribute); + return create(result.resolver, actor, result.object, distribute); case 'Follow': - return follow(actor, object); + return follow(result.resolver, actor, result.object, distribute); + + case 'Undo': + return undo(result.resolver, actor, result.object); default: return null; |