summaryrefslogtreecommitdiff
path: root/src/remote/activitypub/act/index.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/remote/activitypub/act/index.ts')
-rw-r--r--src/remote/activitypub/act/index.ts19
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;