mirror of
https://github.com/versia-pub/server.git
synced 2025-12-06 08:28:19 +01:00
fix(federation): 🐛 Fix profile edits not being federated
This commit is contained in:
parent
4c22b0edcc
commit
32cb0ea733
|
|
@ -521,7 +521,7 @@ export class User {
|
|||
) {
|
||||
// Get followers
|
||||
const followers = await User.manyFromSql(
|
||||
sql`EXISTS (SELECT 1 FROM "Relationships" WHERE "Relationships"."subjectId" = ${Users.id} AND "Relationships"."ownerId" = ${this.id} AND "Relationships"."following" = true)`,
|
||||
sql`EXISTS (SELECT 1 FROM "Relationships" WHERE "Relationships"."subjectId" = ${this.id} AND "Relationships"."ownerId" = ${Users.id} AND "Relationships"."following" = true)`,
|
||||
);
|
||||
|
||||
for (const follower of followers) {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import { getUrl } from "~/database/entities/Attachment";
|
|||
import { type EmojiWithInstance, parseEmojis } from "~/database/entities/Emoji";
|
||||
import { contentToHtml } from "~/database/entities/Status";
|
||||
import { db } from "~/drizzle/db";
|
||||
import { EmojiToUser, Users } from "~/drizzle/schema";
|
||||
import { EmojiToUser } from "~/drizzle/schema";
|
||||
import { User } from "~/packages/database-interface/user";
|
||||
|
||||
export const meta = applyConfig({
|
||||
|
|
@ -283,22 +283,8 @@ export default (app: Hono) =>
|
|||
self.findIndex((e) => e.id === emoji.id) === index,
|
||||
);
|
||||
|
||||
await db
|
||||
.update(Users)
|
||||
.set({
|
||||
displayName: self.displayName,
|
||||
note: self.note,
|
||||
avatar: self.avatar,
|
||||
header: self.header,
|
||||
fields: self.fields,
|
||||
isLocked: self.isLocked,
|
||||
isBot: self.isBot,
|
||||
isDiscoverable: self.isDiscoverable,
|
||||
source: self.source || undefined,
|
||||
})
|
||||
.where(eq(Users.id, self.id));
|
||||
|
||||
// Connect emojis, if any
|
||||
// Do it before updating user, so that federation takes that into account
|
||||
for (const emoji of self.emojis) {
|
||||
await db
|
||||
.delete(EmojiToUser)
|
||||
|
|
@ -319,6 +305,18 @@ export default (app: Hono) =>
|
|||
.execute();
|
||||
}
|
||||
|
||||
await user.update({
|
||||
displayName: self.displayName,
|
||||
note: self.note,
|
||||
avatar: self.avatar,
|
||||
header: self.header,
|
||||
fields: self.fields,
|
||||
isLocked: self.isLocked,
|
||||
isBot: self.isBot,
|
||||
isDiscoverable: self.isDiscoverable,
|
||||
source: self.source || undefined,
|
||||
});
|
||||
|
||||
const output = await User.fromId(self.id);
|
||||
if (!output) return errorResponse("Couldn't edit user", 500);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,6 @@
|
|||
import { applyConfig, auth } from "@/api";
|
||||
import { errorResponse, jsonResponse } from "@/response";
|
||||
import { eq } from "drizzle-orm";
|
||||
import type { Hono } from "hono";
|
||||
import { db } from "~/drizzle/db";
|
||||
import { Users } from "~/drizzle/schema";
|
||||
import { User } from "~/packages/database-interface/user";
|
||||
|
||||
export const meta = applyConfig({
|
||||
allowedMethods: ["DELETE"],
|
||||
|
|
@ -28,14 +24,10 @@ export default (app: Hono) =>
|
|||
|
||||
if (!self) return errorResponse("Unauthorized", 401);
|
||||
|
||||
await db
|
||||
.update(Users)
|
||||
.set({ avatar: "" })
|
||||
.where(eq(Users.id, self.id));
|
||||
|
||||
return jsonResponse({
|
||||
...(await User.fromId(self.id))?.toAPI(),
|
||||
await self.update({
|
||||
avatar: "",
|
||||
});
|
||||
|
||||
return jsonResponse(self.toAPI(true));
|
||||
},
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,10 +1,6 @@
|
|||
import { applyConfig, auth } from "@/api";
|
||||
import { errorResponse, jsonResponse } from "@/response";
|
||||
import { eq } from "drizzle-orm";
|
||||
import type { Hono } from "hono";
|
||||
import { db } from "~/drizzle/db";
|
||||
import { Users } from "~/drizzle/schema";
|
||||
import { User } from "~/packages/database-interface/user";
|
||||
|
||||
export const meta = applyConfig({
|
||||
allowedMethods: ["DELETE"],
|
||||
|
|
@ -28,14 +24,10 @@ export default (app: Hono) =>
|
|||
|
||||
if (!self) return errorResponse("Unauthorized", 401);
|
||||
|
||||
await db
|
||||
.update(Users)
|
||||
.set({ header: "" })
|
||||
.where(eq(Users.id, self.id));
|
||||
|
||||
return jsonResponse({
|
||||
...(await User.fromId(self.id))?.toAPI(),
|
||||
await self.update({
|
||||
header: "",
|
||||
});
|
||||
|
||||
return jsonResponse(self.toAPI(true));
|
||||
},
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in a new issue