summaryrefslogtreecommitdiff
path: root/src/services/note
diff options
context:
space:
mode:
authortamaina <tamaina@hotmail.co.jp>2018-04-15 18:12:11 +0900
committerGitHub <noreply@github.com>2018-04-15 18:12:11 +0900
commitf982f5e850d1096d54014396b3ee9d337e305bcb (patch)
tree0dae4116aa5d7c3fe6c5eba54af6f9f15a271761 /src/services/note
parentMerge pull request #4 from syuilo/master (diff)
parentnanka iroiro (diff)
downloadmisskey-f982f5e850d1096d54014396b3ee9d337e305bcb.tar.gz
misskey-f982f5e850d1096d54014396b3ee9d337e305bcb.tar.bz2
misskey-f982f5e850d1096d54014396b3ee9d337e305bcb.zip
Merge pull request #5 from syuilo/master
追従
Diffstat (limited to 'src/services/note')
-rw-r--r--src/services/note/create.ts7
-rw-r--r--src/services/note/reaction/create.ts33
2 files changed, 20 insertions, 20 deletions
diff --git a/src/services/note/create.ts b/src/services/note/create.ts
index b238cd5607..781337daf4 100644
--- a/src/services/note/create.ts
+++ b/src/services/note/create.ts
@@ -78,7 +78,6 @@ export default async (user: IUser, data: {
_renote: data.renote ? { userId: data.renote.userId } : null,
_user: {
host: user.host,
- hostLower: user.hostLower,
inbox: isRemoteUser(user) ? user.inbox : undefined
}
};
@@ -137,12 +136,12 @@ export default async (user: IUser, data: {
// 投稿がリプライかつ投稿者がローカルユーザーかつリプライ先の投稿の投稿者がリモートユーザーなら配送
if (data.reply && isLocalUser(user) && isRemoteUser(data.reply._user)) {
- deliver(user, await render(), data.reply._user.inbox).save();
+ deliver(user, await render(), data.reply._user.inbox);
}
// 投稿がRenoteかつ投稿者がローカルユーザーかつRenote元の投稿の投稿者がリモートユーザーなら配送
if (data.renote && isLocalUser(user) && isRemoteUser(data.renote._user)) {
- deliver(user, await render(), data.renote._user.inbox).save();
+ deliver(user, await render(), data.renote._user.inbox);
}
Promise.all(followers.map(async follower => {
@@ -154,7 +153,7 @@ export default async (user: IUser, data: {
} else {
// フォロワーがリモートユーザーかつ投稿者がローカルユーザーなら投稿を配信
if (isLocalUser(user)) {
- deliver(user, await render(), follower.inbox).save();
+ deliver(user, await render(), follower.inbox);
}
}
}));
diff --git a/src/services/note/reaction/create.ts b/src/services/note/reaction/create.ts
index 69a14248da..dd3d4be8b7 100644
--- a/src/services/note/reaction/create.ts
+++ b/src/services/note/reaction/create.ts
@@ -9,6 +9,7 @@ import watch from '../watch';
import renderLike from '../../../remote/activitypub/renderer/like';
import { deliver } from '../../../queue';
import pack from '../../../remote/activitypub/renderer';
+import { MongoError } from 'mongodb';
export default async (user: IUser, note: INote, reaction: string) => new Promise(async (res, rej) => {
// Myself
@@ -16,24 +17,24 @@ export default async (user: IUser, note: INote, reaction: string) => new Promise
return rej('cannot react to my note');
}
- // if already reacted
- const exist = await NoteReaction.findOne({
- noteId: note._id,
- userId: user._id
- });
+ // Create reaction
+ try {
+ await NoteReaction.insert({
+ createdAt: new Date(),
+ noteId: note._id,
+ userId: user._id,
+ reaction
+ });
+ } catch (e) {
+ // duplicate key error
+ if (e instanceof MongoError && e.code === 11000) {
+ return rej('already reacted');
+ }
- if (exist !== null) {
- return rej('already reacted');
+ console.error(e);
+ return rej('something happened');
}
- // Create reaction
- await NoteReaction.insert({
- createdAt: new Date(),
- noteId: note._id,
- userId: user._id,
- reaction
- });
-
res();
const inc = {};
@@ -86,7 +87,7 @@ export default async (user: IUser, note: INote, reaction: string) => new Promise
// リアクターがローカルユーザーかつリアクション対象がリモートユーザーの投稿なら配送
if (isLocalUser(user) && isRemoteUser(note._user)) {
const content = pack(renderLike(user, note));
- deliver(user, content, note._user.inbox).save();
+ deliver(user, content, note._user.inbox);
}
//#endregion
});