とりあえずtryで囲っておく

This commit is contained in:
tamaina 2024-03-10 16:17:09 +00:00
parent e2b574a97c
commit 76487de5ed

View file

@ -551,23 +551,29 @@ export class ApPersonService implements OnModuleInit {
// Update user
await this.usersRepository.update(exist.id, updates);
const publicKeys = new Map<string, IKey>();
if (person.publicKey) {
(person.additionalPublicKeys ?? []).forEach(key => publicKeys.set(key.id, key));
publicKeys.set(person.publicKey.id, person.publicKey);
try {
// Deleteアクティビティ受信時にもここが走ってsaveがuserforeign key制約エラーを吐くことがある
// とりあえずtry-catchで囲っておく
const publicKeys = new Map<string, IKey>();
if (person.publicKey) {
(person.additionalPublicKeys ?? []).forEach(key => publicKeys.set(key.id, key));
publicKeys.set(person.publicKey.id, person.publicKey);
await this.userPublickeysRepository.save(Array.from(publicKeys.values(), key => ({
keyId: key.id,
await this.userPublickeysRepository.save(Array.from(publicKeys.values(), key => ({
keyId: key.id,
userId: exist.id,
keyPem: key.publicKeyPem,
})));
}
this.userPublickeysRepository.delete({
keyId: Not(In(Array.from(publicKeys.keys()))),
userId: exist.id,
keyPem: key.publicKeyPem,
})));
});
} catch (err) {
this.logger.error('something happened while updating remote user public keys:', { err });
}
this.userPublickeysRepository.delete({
keyId: Not(In(Array.from(publicKeys.keys()))),
userId: exist.id,
});
let _description: string | null = null;
if (person._misskey_summary) {