Merge pull request '[PR]: chore: Use `exist` instead of `findOneBy` to check for existence' (#10484) from naskya/calckey:chore/findOneBy-exist into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/10484
This commit is contained in:
commit
db1edca84e
|
@ -147,11 +147,11 @@ export async function fetchPerson(
|
|||
}
|
||||
|
||||
//#region Returns if already registered with this server
|
||||
const exist = await Users.findOneBy({ uri });
|
||||
const user = await Users.findOneBy({ uri });
|
||||
|
||||
if (exist) {
|
||||
await uriPersonCache.set(uri, exist);
|
||||
return exist;
|
||||
if (user != null) {
|
||||
await uriPersonCache.set(uri, user);
|
||||
return user;
|
||||
}
|
||||
//#endregion
|
||||
|
||||
|
@ -396,9 +396,9 @@ export async function updatePerson(
|
|||
}
|
||||
|
||||
//#region Already registered on this server?
|
||||
const exist = (await Users.findOneBy({ uri })) as IRemoteUser;
|
||||
const user = (await Users.findOneBy({ uri })) as IRemoteUser;
|
||||
|
||||
if (exist == null) {
|
||||
if (user == null) {
|
||||
return;
|
||||
}
|
||||
//#endregion
|
||||
|
@ -416,17 +416,15 @@ export async function updatePerson(
|
|||
[person.icon, person.image].map((img) =>
|
||||
img == null
|
||||
? Promise.resolve(null)
|
||||
: resolveImage(exist, img).catch(() => null),
|
||||
: resolveImage(user, img).catch(() => null),
|
||||
),
|
||||
);
|
||||
|
||||
// Custom pictogram acquisition
|
||||
const emojis = await extractEmojis(person.tag || [], exist.host).catch(
|
||||
(e) => {
|
||||
logger.info(`extractEmojis: ${e}`);
|
||||
return [] as Emoji[];
|
||||
},
|
||||
);
|
||||
const emojis = await extractEmojis(person.tag || [], user.host).catch((e) => {
|
||||
logger.info(`extractEmojis: ${e}`);
|
||||
return [] as Emoji[];
|
||||
});
|
||||
|
||||
const emojiNames = emojis.map((emoji) => emoji.name);
|
||||
|
||||
|
@ -518,11 +516,11 @@ export async function updatePerson(
|
|||
}
|
||||
|
||||
// Update user
|
||||
await Users.update(exist.id, updates);
|
||||
await Users.update(user.id, updates);
|
||||
|
||||
if (person.publicKey) {
|
||||
await UserPublickeys.update(
|
||||
{ userId: exist.id },
|
||||
{ userId: user.id },
|
||||
{
|
||||
keyId: person.publicKey.id,
|
||||
keyPem: person.publicKey.publicKeyPem,
|
||||
|
@ -531,7 +529,7 @@ export async function updatePerson(
|
|||
}
|
||||
|
||||
await UserProfiles.update(
|
||||
{ userId: exist.id },
|
||||
{ userId: user.id },
|
||||
{
|
||||
url: url,
|
||||
fields,
|
||||
|
@ -543,15 +541,15 @@ export async function updatePerson(
|
|||
},
|
||||
);
|
||||
|
||||
publishInternalEvent("remoteUserUpdated", { id: exist.id });
|
||||
publishInternalEvent("remoteUserUpdated", { id: user.id });
|
||||
|
||||
// Hashtag Update
|
||||
updateUsertags(exist, tags);
|
||||
updateUsertags(user, tags);
|
||||
|
||||
// If the user in question is a follower, followers will also be updated.
|
||||
await Followings.update(
|
||||
{
|
||||
followerId: exist.id,
|
||||
followerId: user.id,
|
||||
},
|
||||
{
|
||||
followerSharedInbox:
|
||||
|
@ -560,7 +558,7 @@ export async function updatePerson(
|
|||
},
|
||||
);
|
||||
|
||||
await updateFeatured(exist.id, resolver).catch((err) => logger.error(err));
|
||||
await updateFeatured(user.id, resolver).catch((err) => logger.error(err));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -576,10 +574,10 @@ export async function resolvePerson(
|
|||
if (typeof uri !== "string") throw new Error("uri is not string");
|
||||
|
||||
//#region If already registered on this server, return it.
|
||||
const exist = await fetchPerson(uri);
|
||||
const user = await fetchPerson(uri);
|
||||
|
||||
if (exist) {
|
||||
return exist;
|
||||
if (user != null) {
|
||||
return user;
|
||||
}
|
||||
//#endregion
|
||||
|
||||
|
|
|
@ -40,9 +40,9 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
throw err;
|
||||
});
|
||||
|
||||
const exist = await PromoNotes.findOneBy({ noteId: note.id });
|
||||
const exist = await PromoNotes.exist({ where: { noteId: note.id } });
|
||||
|
||||
if (exist != null) {
|
||||
if (exist) {
|
||||
throw new ApiError(meta.errors.alreadyPromoted);
|
||||
}
|
||||
|
||||
|
|
|
@ -41,12 +41,14 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
const accessToken = secureRndstr(32, true);
|
||||
|
||||
// Fetch exist access token
|
||||
const exist = await AccessTokens.findOneBy({
|
||||
appId: session.appId,
|
||||
userId: user.id,
|
||||
const exist = await AccessTokens.exist({
|
||||
where: {
|
||||
appId: session.appId,
|
||||
userId: user.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (exist == null) {
|
||||
if (!exist) {
|
||||
// Lookup app
|
||||
const app = await Apps.findOneByOrFail({ id: session.appId });
|
||||
|
||||
|
|
|
@ -69,12 +69,14 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
});
|
||||
|
||||
// Check if already blocking
|
||||
const exist = await Blockings.findOneBy({
|
||||
blockerId: blocker.id,
|
||||
blockeeId: blockee.id,
|
||||
const exist = await Blockings.exist({
|
||||
where: {
|
||||
blockerId: blocker.id,
|
||||
blockeeId: blockee.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (exist != null) {
|
||||
if (exist) {
|
||||
throw new ApiError(meta.errors.alreadyBlocking);
|
||||
}
|
||||
|
||||
|
|
|
@ -69,12 +69,14 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
});
|
||||
|
||||
// Check not blocking
|
||||
const exist = await Blockings.findOneBy({
|
||||
blockerId: blocker.id,
|
||||
blockeeId: blockee.id,
|
||||
const exist = await Blockings.exist({
|
||||
where: {
|
||||
blockerId: blocker.id,
|
||||
blockeeId: blockee.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (exist == null) {
|
||||
if (!exist) {
|
||||
throw new ApiError(meta.errors.notBlocking);
|
||||
}
|
||||
|
||||
|
|
|
@ -57,12 +57,14 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
throw err;
|
||||
});
|
||||
|
||||
const exist = await ClipNotes.findOneBy({
|
||||
noteId: note.id,
|
||||
clipId: clip.id,
|
||||
const exist = await ClipNotes.exist({
|
||||
where: {
|
||||
noteId: note.id,
|
||||
clipId: clip.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (exist != null) {
|
||||
if (exist) {
|
||||
throw new ApiError(meta.errors.alreadyClipped);
|
||||
}
|
||||
|
||||
|
|
|
@ -26,10 +26,12 @@ export const paramDef = {
|
|||
} as const;
|
||||
|
||||
export default define(meta, paramDef, async (ps, user) => {
|
||||
const file = await DriveFiles.findOneBy({
|
||||
md5: ps.md5,
|
||||
userId: user.id,
|
||||
const exist = await DriveFiles.exist({
|
||||
where: {
|
||||
md5: ps.md5,
|
||||
userId: user.id,
|
||||
},
|
||||
});
|
||||
|
||||
return file != null;
|
||||
return exist;
|
||||
});
|
||||
|
|
|
@ -82,12 +82,14 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
});
|
||||
|
||||
// Check if already following
|
||||
const exist = await Followings.findOneBy({
|
||||
followerId: follower.id,
|
||||
followeeId: followee.id,
|
||||
const exist = await Followings.exist({
|
||||
where: {
|
||||
followerId: follower.id,
|
||||
followeeId: followee.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (exist != null) {
|
||||
if (exist) {
|
||||
throw new ApiError(meta.errors.alreadyFollowing);
|
||||
}
|
||||
|
||||
|
|
|
@ -69,12 +69,14 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
});
|
||||
|
||||
// Check not following
|
||||
const exist = await Followings.findOneBy({
|
||||
followerId: follower.id,
|
||||
followeeId: followee.id,
|
||||
const exist = await Followings.exist({
|
||||
where: {
|
||||
followerId: follower.id,
|
||||
followeeId: followee.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (exist == null) {
|
||||
if (!exist) {
|
||||
throw new ApiError(meta.errors.notFollowing);
|
||||
}
|
||||
|
||||
|
|
|
@ -69,12 +69,14 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
});
|
||||
|
||||
// Check not following
|
||||
const exist = await Followings.findOneBy({
|
||||
followerId: follower.id,
|
||||
followeeId: followee.id,
|
||||
const exist = await Followings.exist({
|
||||
where: {
|
||||
followerId: follower.id,
|
||||
followeeId: followee.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (exist == null) {
|
||||
if (!exist) {
|
||||
throw new ApiError(meta.errors.notFollowing);
|
||||
}
|
||||
|
||||
|
|
|
@ -40,12 +40,14 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
}
|
||||
|
||||
// if already liked
|
||||
const exist = await GalleryLikes.findOneBy({
|
||||
postId: post.id,
|
||||
userId: user.id,
|
||||
const exist = await GalleryLikes.exist({
|
||||
where: {
|
||||
postId: post.id,
|
||||
userId: user.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (exist != null) {
|
||||
if (exist) {
|
||||
throw new ApiError(meta.errors.alreadyLiked);
|
||||
}
|
||||
|
||||
|
|
|
@ -38,17 +38,17 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
throw new ApiError(meta.errors.noSuchPost);
|
||||
}
|
||||
|
||||
const exist = await GalleryLikes.findOneBy({
|
||||
const like = await GalleryLikes.findOneBy({
|
||||
postId: post.id,
|
||||
userId: user.id,
|
||||
});
|
||||
|
||||
if (exist == null) {
|
||||
if (like == null) {
|
||||
throw new ApiError(meta.errors.notLiked);
|
||||
}
|
||||
|
||||
// Delete like
|
||||
await GalleryLikes.delete(exist.id);
|
||||
await GalleryLikes.delete(like.id);
|
||||
|
||||
GalleryPosts.decrement({ id: post.id }, "likedCount", 1);
|
||||
});
|
||||
|
|
|
@ -30,19 +30,23 @@ export const paramDef = {
|
|||
|
||||
export default define(meta, paramDef, async (ps, user) => {
|
||||
// Check if announcement exists
|
||||
const announcement = await Announcements.findOneBy({ id: ps.announcementId });
|
||||
const exist = await Announcements.exist({
|
||||
where: { id: ps.announcementId },
|
||||
});
|
||||
|
||||
if (announcement == null) {
|
||||
if (!exist) {
|
||||
throw new ApiError(meta.errors.noSuchAnnouncement);
|
||||
}
|
||||
|
||||
// Check if already read
|
||||
const read = await AnnouncementReads.findOneBy({
|
||||
announcementId: ps.announcementId,
|
||||
userId: user.id,
|
||||
const read = await AnnouncementReads.exist({
|
||||
where: {
|
||||
announcementId: ps.announcementId,
|
||||
userId: user.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (read != null) {
|
||||
if (read) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -17,9 +17,9 @@ export const paramDef = {
|
|||
} as const;
|
||||
|
||||
export default define(meta, paramDef, async (ps, user) => {
|
||||
const token = await AccessTokens.findOneBy({ id: ps.tokenId });
|
||||
const exist = await AccessTokens.exist({ where: { id: ps.tokenId } });
|
||||
|
||||
if (token) {
|
||||
if (exist) {
|
||||
await AccessTokens.delete({
|
||||
id: ps.tokenId,
|
||||
userId: user.id,
|
||||
|
|
|
@ -64,12 +64,14 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
});
|
||||
|
||||
// Check if already muting
|
||||
const exist = await Mutings.findOneBy({
|
||||
muterId: muter.id,
|
||||
muteeId: mutee.id,
|
||||
const exist = await Mutings.exist({
|
||||
where: {
|
||||
muterId: muter.id,
|
||||
muteeId: mutee.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (exist != null) {
|
||||
if (exist) {
|
||||
throw new ApiError(meta.errors.alreadyMuting);
|
||||
}
|
||||
|
||||
|
|
|
@ -56,18 +56,18 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
});
|
||||
|
||||
// Check not muting
|
||||
const exist = await Mutings.findOneBy({
|
||||
const muting = await Mutings.findOneBy({
|
||||
muterId: muter.id,
|
||||
muteeId: mutee.id,
|
||||
});
|
||||
|
||||
if (exist == null) {
|
||||
if (muting == null) {
|
||||
throw new ApiError(meta.errors.notMuting);
|
||||
}
|
||||
|
||||
// Delete mute
|
||||
await Mutings.delete({
|
||||
id: exist.id,
|
||||
id: muting.id,
|
||||
});
|
||||
|
||||
publishUserEvent(user.id, "unmute", mutee);
|
||||
|
|
|
@ -224,11 +224,13 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
|
||||
// Check blocking
|
||||
if (renote.userId !== user.id) {
|
||||
const block = await Blockings.findOneBy({
|
||||
blockerId: renote.userId,
|
||||
blockeeId: user.id,
|
||||
const isBlocked = await Blockings.exist({
|
||||
where: {
|
||||
blockerId: renote.userId,
|
||||
blockeeId: user.id,
|
||||
},
|
||||
});
|
||||
if (block) {
|
||||
if (isBlocked) {
|
||||
throw new ApiError(meta.errors.youHaveBeenBlocked);
|
||||
}
|
||||
}
|
||||
|
@ -249,11 +251,13 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
|
||||
// Check blocking
|
||||
if (reply.userId !== user.id) {
|
||||
const block = await Blockings.findOneBy({
|
||||
blockerId: reply.userId,
|
||||
blockeeId: user.id,
|
||||
const isBlocked = await Blockings.exist({
|
||||
where: {
|
||||
blockerId: reply.userId,
|
||||
blockeeId: user.id,
|
||||
},
|
||||
});
|
||||
if (block) {
|
||||
if (isBlocked) {
|
||||
throw new ApiError(meta.errors.youHaveBeenBlocked);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,12 +43,14 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
});
|
||||
|
||||
// if already favorited
|
||||
const exist = await NoteFavorites.findOneBy({
|
||||
noteId: note.id,
|
||||
userId: user.id,
|
||||
const exist = await NoteFavorites.exist({
|
||||
where: {
|
||||
noteId: note.id,
|
||||
userId: user.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (exist != null) {
|
||||
if (exist) {
|
||||
throw new ApiError(meta.errors.alreadyFavorited);
|
||||
}
|
||||
|
||||
|
|
|
@ -42,15 +42,15 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
});
|
||||
|
||||
// if already favorited
|
||||
const exist = await NoteFavorites.findOneBy({
|
||||
const favorite = await NoteFavorites.findOneBy({
|
||||
noteId: note.id,
|
||||
userId: user.id,
|
||||
});
|
||||
|
||||
if (exist == null) {
|
||||
if (favorite == null) {
|
||||
throw new ApiError(meta.errors.notFavorited);
|
||||
}
|
||||
|
||||
// Delete favorite
|
||||
await NoteFavorites.delete(exist.id);
|
||||
await NoteFavorites.delete(favorite.id);
|
||||
});
|
||||
|
|
|
@ -40,12 +40,14 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
}
|
||||
|
||||
// if already liked
|
||||
const exist = await PageLikes.findOneBy({
|
||||
pageId: page.id,
|
||||
userId: user.id,
|
||||
const exist = await PageLikes.exist({
|
||||
where: {
|
||||
pageId: page.id,
|
||||
userId: user.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (exist != null) {
|
||||
if (exist) {
|
||||
throw new ApiError(meta.errors.alreadyLiked);
|
||||
}
|
||||
|
||||
|
|
|
@ -38,17 +38,17 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
throw new ApiError(meta.errors.noSuchPage);
|
||||
}
|
||||
|
||||
const exist = await PageLikes.findOneBy({
|
||||
const like = await PageLikes.findOneBy({
|
||||
pageId: page.id,
|
||||
userId: user.id,
|
||||
});
|
||||
|
||||
if (exist == null) {
|
||||
if (like == null) {
|
||||
throw new ApiError(meta.errors.notLiked);
|
||||
}
|
||||
|
||||
// Delete like
|
||||
await PageLikes.delete(exist.id);
|
||||
await PageLikes.delete(like.id);
|
||||
|
||||
Pages.decrement({ id: page.id }, "likedCount", 1);
|
||||
});
|
||||
|
|
|
@ -33,12 +33,14 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
throw err;
|
||||
});
|
||||
|
||||
const exist = await PromoReads.findOneBy({
|
||||
noteId: note.id,
|
||||
userId: user.id,
|
||||
const exist = await PromoReads.exist({
|
||||
where: {
|
||||
noteId: note.id,
|
||||
userId: user.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (exist != null) {
|
||||
if (exist) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -47,12 +47,14 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
});
|
||||
|
||||
// Check if already muting
|
||||
const exist = await RenoteMutings.findOneBy({
|
||||
muterId: muter.id,
|
||||
muteeId: mutee.id,
|
||||
const exist = await RenoteMutings.exist({
|
||||
where: {
|
||||
muterId: muter.id,
|
||||
muteeId: mutee.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (exist != null) {
|
||||
if (exist) {
|
||||
throw new ApiError(meta.errors.alreadyMuting);
|
||||
}
|
||||
|
||||
|
|
|
@ -45,18 +45,18 @@ export default define(meta, paramDef, async (ps, user) => {
|
|||
});
|
||||
|
||||
// Check not muting
|
||||
const exist = await RenoteMutings.findOneBy({
|
||||
const muting = await RenoteMutings.findOneBy({
|
||||
muterId: muter.id,
|
||||
muteeId: mutee.id,
|
||||
});
|
||||
|
||||
if (exist == null) {
|
||||
if (muting == null) {
|
||||
throw new ApiError(meta.errors.notMuting);
|
||||
}
|
||||
|
||||
// Delete mute
|
||||
await RenoteMutings.delete({
|
||||
id: exist.id,
|
||||
id: muting.id,
|
||||
});
|
||||
|
||||
// publishUserEvent(user.id, "unmute", mutee);
|
||||
|
|
|
@ -57,8 +57,7 @@ export const paramDef = {
|
|||
} as const;
|
||||
|
||||
export default define(meta, paramDef, async (ps, me) => {
|
||||
// if already subscribed
|
||||
const exist = await SwSubscriptions.findOneBy({
|
||||
const subscription = await SwSubscriptions.findOneBy({
|
||||
userId: me.id,
|
||||
endpoint: ps.endpoint,
|
||||
auth: ps.auth,
|
||||
|
@ -67,13 +66,14 @@ export default define(meta, paramDef, async (ps, me) => {
|
|||
|
||||
const instance = await fetchMeta(true);
|
||||
|
||||
if (exist != null) {
|
||||
// if already subscribed
|
||||
if (subscription != null) {
|
||||
return {
|
||||
state: "already-subscribed" as const,
|
||||
key: instance.swPublicKey,
|
||||
userId: me.id,
|
||||
endpoint: exist.endpoint,
|
||||
sendReadMessage: exist.sendReadMessage,
|
||||
endpoint: subscription.endpoint,
|
||||
sendReadMessage: subscription.sendReadMessage,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -42,16 +42,16 @@ export const paramDef = {
|
|||
|
||||
// eslint-disable-next-line import/no-default-export
|
||||
export default define(meta, paramDef, async (ps, me) => {
|
||||
const exist = await SwSubscriptions.findOneBy({
|
||||
const subscription = await SwSubscriptions.findOneBy({
|
||||
userId: me.id,
|
||||
endpoint: ps.endpoint,
|
||||
});
|
||||
|
||||
if (exist != null) {
|
||||
if (subscription != null) {
|
||||
return {
|
||||
userId: exist.userId,
|
||||
endpoint: exist.endpoint,
|
||||
sendReadMessage: exist.sendReadMessage,
|
||||
userId: subscription.userId,
|
||||
endpoint: subscription.endpoint,
|
||||
sendReadMessage: subscription.sendReadMessage,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -98,11 +98,13 @@ export default define(meta, paramDef, async (ps, me) => {
|
|||
if (me == null) {
|
||||
throw new ApiError(meta.errors.forbidden);
|
||||
} else if (me.id !== user.id) {
|
||||
const following = await Followings.findOneBy({
|
||||
followeeId: user.id,
|
||||
followerId: me.id,
|
||||
const isFollowed = await Followings.exist({
|
||||
where: {
|
||||
followeeId: user.id,
|
||||
followerId: me.id,
|
||||
},
|
||||
});
|
||||
if (following == null) {
|
||||
if (!isFollowed) {
|
||||
throw new ApiError(meta.errors.nullFollowers);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -97,11 +97,13 @@ export default define(meta, paramDef, async (ps, me) => {
|
|||
if (me == null) {
|
||||
throw new ApiError(meta.errors.forbidden);
|
||||
} else if (me.id !== user.id) {
|
||||
const following = await Followings.findOneBy({
|
||||
followeeId: user.id,
|
||||
followerId: me.id,
|
||||
const isFollowing = await Followings.exist({
|
||||
where: {
|
||||
followeeId: user.id,
|
||||
followerId: me.id,
|
||||
},
|
||||
});
|
||||
if (following == null) {
|
||||
if (!isFollowing) {
|
||||
throw new ApiError(meta.errors.cannot_find);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,12 +52,14 @@ export const paramDef = {
|
|||
|
||||
export default define(meta, paramDef, async (ps, me) => {
|
||||
// Fetch the list
|
||||
const userList = await UserLists.findOneBy({
|
||||
id: ps.listId,
|
||||
userId: me.id,
|
||||
const listExists = await UserLists.exist({
|
||||
where: {
|
||||
id: ps.listId,
|
||||
userId: me.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (userList == null) {
|
||||
if (!listExists) {
|
||||
throw new ApiError(meta.errors.noSuchList);
|
||||
}
|
||||
|
||||
|
@ -70,18 +72,22 @@ export default define(meta, paramDef, async (ps, me) => {
|
|||
|
||||
// Check blocking
|
||||
if (user.id !== me.id) {
|
||||
const block = await Blockings.findOneBy({
|
||||
blockerId: user.id,
|
||||
blockeeId: me.id,
|
||||
const isBlocked = await Blockings.exist({
|
||||
where: {
|
||||
blockerId: user.id,
|
||||
blockeeId: me.id,
|
||||
},
|
||||
});
|
||||
if (block) {
|
||||
if (isBlocked) {
|
||||
throw new ApiError(meta.errors.youHaveBeenBlocked);
|
||||
}
|
||||
}
|
||||
|
||||
const exist = await UserListJoinings.findOneBy({
|
||||
userListId: userList.id,
|
||||
userId: user.id,
|
||||
const exist = await UserListJoinings.exist({
|
||||
where: {
|
||||
userListId: userList.id,
|
||||
userId: user.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (exist) {
|
||||
|
|
|
@ -37,12 +37,14 @@ export const paramDef = {
|
|||
|
||||
export default define(meta, paramDef, async (ps, me) => {
|
||||
// Fetch the list
|
||||
const userList = await UserLists.findOneBy({
|
||||
id: ps.listId,
|
||||
userId: me.id,
|
||||
const exist = await UserLists.exist({
|
||||
where: {
|
||||
id: ps.listId,
|
||||
userId: me.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (userList == null) {
|
||||
if (!exist) {
|
||||
throw new ApiError(meta.errors.noSuchList);
|
||||
}
|
||||
|
||||
|
|
|
@ -22,11 +22,13 @@ export default class extends Channel {
|
|||
this.listId = params.listId as string;
|
||||
|
||||
// Check existence and owner
|
||||
const list = await UserLists.findOneBy({
|
||||
id: this.listId,
|
||||
userId: this.user!.id,
|
||||
const exist = await UserLists.exist({
|
||||
where: {
|
||||
id: this.listId,
|
||||
userId: this.user!.id,
|
||||
},
|
||||
});
|
||||
if (!list) return;
|
||||
if (!exist) return;
|
||||
|
||||
// Subscribe stream
|
||||
this.subscriber.on(`userListStream:${this.listId}`, this.send);
|
||||
|
|
|
@ -13,13 +13,13 @@ export default async (
|
|||
user: { id: User["id"]; host: User["host"] },
|
||||
note: Note,
|
||||
) => {
|
||||
// if already unreacted
|
||||
const exist = await NoteReactions.findOneBy({
|
||||
const reaction = await NoteReactions.findOneBy({
|
||||
noteId: note.id,
|
||||
userId: user.id,
|
||||
});
|
||||
|
||||
if (exist == null) {
|
||||
// if already unreacted
|
||||
if (reaction == null) {
|
||||
throw new IdentifiableError(
|
||||
"60527ec9-b4cb-4a88-a6bd-32d3ad26817d",
|
||||
"not reacted",
|
||||
|
@ -27,7 +27,7 @@ export default async (
|
|||
}
|
||||
|
||||
// Delete reaction
|
||||
const result = await NoteReactions.delete(exist.id);
|
||||
const result = await NoteReactions.delete(reaction.id);
|
||||
|
||||
if (result.affected !== 1) {
|
||||
throw new IdentifiableError(
|
||||
|
@ -37,7 +37,7 @@ export default async (
|
|||
}
|
||||
|
||||
// Decrement reactions count
|
||||
const sql = `jsonb_set("reactions", '{${exist.reaction}}', (COALESCE("reactions"->>'${exist.reaction}', '0')::int - 1)::text::jsonb)`;
|
||||
const sql = `jsonb_set("reactions", '{${reaction.reaction}}', (COALESCE("reactions"->>'${reaction.reaction}', '0')::int - 1)::text::jsonb)`;
|
||||
await Notes.createQueryBuilder()
|
||||
.update()
|
||||
.set({
|
||||
|
@ -49,14 +49,14 @@ export default async (
|
|||
Notes.decrement({ id: note.id }, "score", 1);
|
||||
|
||||
publishNoteStream(note.id, "unreacted", {
|
||||
reaction: decodeReaction(exist.reaction).reaction,
|
||||
reaction: decodeReaction(reaction.reaction).reaction,
|
||||
userId: user.id,
|
||||
});
|
||||
|
||||
//#region 配信
|
||||
if (Users.isLocalUser(user) && !note.localOnly) {
|
||||
const content = renderActivity(
|
||||
renderUndo(await renderLike(exist, note), user),
|
||||
renderUndo(await renderLike(reaction, note), user),
|
||||
);
|
||||
const dm = new DeliverManager(user, content);
|
||||
if (note.userHost !== null) {
|
||||
|
|
|
@ -42,9 +42,9 @@ export async function insertNoteUnread(
|
|||
|
||||
// 2秒経っても既読にならなかったら「未読の投稿がありますよ」イベントを発行する
|
||||
setTimeout(async () => {
|
||||
const exist = await NoteUnreads.findOneBy({ id: unread.id });
|
||||
const exist = await NoteUnreads.exist({ where: { id: unread.id } });
|
||||
|
||||
if (exist == null) return;
|
||||
if (!exist) return;
|
||||
|
||||
if (params.isMentioned) {
|
||||
publishMainStream(userId, "unreadMention", note.id);
|
||||
|
|
Loading…
Reference in New Issue