mirror of
https://iceshrimp.dev/crimekillz/iceshrimp-161sh.git
synced 2024-11-22 04:03:49 +01:00
[backend] Improve updateUserProfileData
Now only runs updateMentions once, and correctly triggers prewarmCacheById
This commit is contained in:
parent
58d70d005f
commit
683e01d286
@ -14,6 +14,7 @@ import acceptAllFollowRequests from "@/services/following/requests/accept-all.js
|
||||
import { UserProfile } from "@/models/entities/user-profile.js";
|
||||
import mfm from "mfm-js";
|
||||
import { promiseEarlyReturn } from "@/prelude/promise.js";
|
||||
import { UserConverter } from "@/server/api/mastodon/converters/user.js";
|
||||
|
||||
export async function updateUserProfileData(user: User, profile: UserProfile | null, updates: Partial<User>, profileUpdates: Partial<UserProfile>, isSecure: boolean) {
|
||||
if (!profile) profile = await UserProfiles.findOneByOrFail({ userId: user.id });
|
||||
@ -46,10 +47,11 @@ export async function updateUserProfileData(user: User, profile: UserProfile | n
|
||||
|
||||
updateUsertags(user, tags);
|
||||
|
||||
const oldProfile = await UserProfiles.findOneBy({ userId: user.id });
|
||||
|
||||
if (Object.keys(updates).length > 0) await Users.update(user.id, updates);
|
||||
if (Object.keys(profileUpdates).length > 0) {
|
||||
await UserProfiles.update(user.id, profileUpdates);
|
||||
await promiseEarlyReturn(UserProfiles.updateMentions(user.id), 1500);
|
||||
}
|
||||
|
||||
const iObj = await Users.pack<true, true>(user.id, user, {
|
||||
@ -68,9 +70,11 @@ export async function updateUserProfileData(user: User, profile: UserProfile | n
|
||||
acceptAllFollowRequests(user);
|
||||
}
|
||||
|
||||
UserProfiles.updateMentions(user.id).finally(() => {
|
||||
await promiseEarlyReturn(UserProfiles.updateMentions(user.id)
|
||||
.finally(() => {
|
||||
UserConverter.prewarmCacheById(user.id, oldProfile);
|
||||
publishToFollowers(user.id);
|
||||
});
|
||||
}), 1500);
|
||||
|
||||
return iObj;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user