fix: update cache

This commit is contained in:
Namekuji 2023-09-05 13:00:15 -04:00
parent bd7dab44c0
commit 5e802df4c9
No known key found for this signature in database
GPG key ID: 1D62332C07FBA532
2 changed files with 26 additions and 0 deletions

View file

@ -9,6 +9,7 @@ import deleteFollowing from "@/services/following/delete.js";
import type { IMove } from "../../type.js"; import type { IMove } from "../../type.js";
import { getApHrefNullable } from "../../type.js"; import { getApHrefNullable } from "../../type.js";
import { userByIdCache, userDenormalizedCache } from "@/services/user-cache.js";
export default async ( export default async (
actor: CacheableRemoteUser, actor: CacheableRemoteUser,
@ -45,6 +46,19 @@ export default async (
} }
// add target uri to movedToUri in order to indicate that the user has moved // add target uri to movedToUri in order to indicate that the user has moved
await userByIdCache.get(old_acc.id).then((cached) => {
if (cached) {
userByIdCache.set(cached.id, { ...cached, movedToUri: targetUri });
}
});
await userDenormalizedCache.get(old_acc.id).then((cached) => {
if (cached) {
userDenormalizedCache.set(cached.id, {
...cached,
movedToUri: targetUri,
});
}
});
await Users.update(old_acc.id, { movedToUri: targetUri }); await Users.update(old_acc.id, { movedToUri: targetUri });
// follow the new account and unfollow the old one // follow the new account and unfollow the old one

View file

@ -13,6 +13,7 @@ import { Followings, Users } from "@/models/index.js";
import config from "@/config/index.js"; import config from "@/config/index.js";
import { publishMainStream } from "@/services/stream.js"; import { publishMainStream } from "@/services/stream.js";
import { parse } from "@/misc/acct.js"; import { parse } from "@/misc/acct.js";
import { userByIdCache, userDenormalizedCache } from "@/services/user-cache.js";
export const meta = { export const meta = {
tags: ["users"], tags: ["users"],
@ -127,7 +128,18 @@ export default define(meta, paramDef, async (ps, user) => {
updates.movedToUri = toUrl; updates.movedToUri = toUrl;
updates.alsoKnownAs = user.alsoKnownAs?.concat(toUrl) ?? [toUrl]; updates.alsoKnownAs = user.alsoKnownAs?.concat(toUrl) ?? [toUrl];
await userByIdCache.get(user.id).then((cached) => {
if (cached) {
userByIdCache.set(cached.id, { ...cached, ...updates });
}
});
await userDenormalizedCache.get(user.id).then((cached) => {
if (cached) {
userDenormalizedCache.set(cached.id, { ...cached, ...updates });
}
});
await Users.update(user.id, updates); await Users.update(user.id, updates);
const iObj = await Users.pack<true, true>(user.id, user, { const iObj = await Users.pack<true, true>(user.id, user, {
detail: true, detail: true,
includeSecrets: true, includeSecrets: true,