rudeshark.net/src/remote/activitypub/act/index.ts

37 lines
976 B
TypeScript
Raw Normal View History

2018-03-31 12:55:00 +02:00
import create from './create';
2018-04-03 10:50:52 +02:00
import performDeleteActivity from './delete';
2018-04-02 12:50:40 +02:00
import follow from './follow';
2018-04-03 09:33:16 +02:00
import undo from './undo';
2018-03-31 12:55:00 +02:00
import createObject from '../create';
2018-04-03 13:09:26 +02:00
import Resolver from '../resolver';
2018-03-31 12:55:00 +02:00
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];
2018-03-31 12:55:00 +02:00
if (created !== null) {
return created;
}
switch (object.type) {
2018-03-31 12:55:00 +02:00
case 'Create':
return create(resolver, actor, object, distribute);
2018-03-31 12:55:00 +02:00
2018-04-03 10:50:52 +02:00
case 'Delete':
return performDeleteActivity(resolver, actor, object);
2018-04-02 12:50:40 +02:00
case 'Follow':
return follow(resolver, actor, object, distribute);
2018-04-03 09:33:16 +02:00
case 'Undo':
return undo(resolver, actor, object);
2018-04-02 12:50:40 +02:00
2018-03-31 12:55:00 +02:00
default:
return null;
}
});
2018-04-01 14:17:46 +02:00
};