summaryrefslogtreecommitdiff
path: root/src/remote/activitypub/act
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-04-02 04:15:27 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-04-02 04:15:27 +0900
commitcd2542e0fd8578f6e41114ffebbda1f16f7d04ce (patch)
treec339b7808fc2a3d72ae30cb86ddb7b9c21852652 /src/remote/activitypub/act
parentRefactor (diff)
downloadmisskey-cd2542e0fd8578f6e41114ffebbda1f16f7d04ce.tar.gz
misskey-cd2542e0fd8578f6e41114ffebbda1f16f7d04ce.tar.bz2
misskey-cd2542e0fd8578f6e41114ffebbda1f16f7d04ce.zip
Refactor
Diffstat (limited to 'src/remote/activitypub/act')
-rw-r--r--src/remote/activitypub/act/create.ts9
-rw-r--r--src/remote/activitypub/act/index.ts22
2 files changed, 31 insertions, 0 deletions
diff --git a/src/remote/activitypub/act/create.ts b/src/remote/activitypub/act/create.ts
new file mode 100644
index 0000000000..9eb74800ea
--- /dev/null
+++ b/src/remote/activitypub/act/create.ts
@@ -0,0 +1,9 @@
+import create from '../create';
+
+export default (resolver, actor, activity) => {
+ if ('actor' in activity && actor.account.uri !== activity.actor) {
+ throw new Error();
+ }
+
+ return create(resolver, actor, activity.object);
+};
diff --git a/src/remote/activitypub/act/index.ts b/src/remote/activitypub/act/index.ts
new file mode 100644
index 0000000000..a76983638f
--- /dev/null
+++ b/src/remote/activitypub/act/index.ts
@@ -0,0 +1,22 @@
+import create from './create';
+import createObject from '../create';
+import Resolver from '../resolver';
+
+export default (actor, value) => {
+ 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]))[0];
+
+ if (created !== null) {
+ return created;
+ }
+
+ switch (object.type) {
+ case 'Create':
+ return create(resolver, actor, object);
+
+ default:
+ return null;
+ }
+ })));
+};