undo announce
This commit is contained in:
parent
c9aa7646d2
commit
2a3e45456e
1 changed files with 27 additions and 4 deletions
|
@ -3,6 +3,13 @@ import type { CacheableRemoteUser } from "@/models/entities/user.js";
|
||||||
import type { IAnnounce } from "../../type.js";
|
import type { IAnnounce } from "../../type.js";
|
||||||
import { getApId } from "../../type.js";
|
import { getApId } from "../../type.js";
|
||||||
import deleteNote from "@/services/note/delete.js";
|
import deleteNote from "@/services/note/delete.js";
|
||||||
|
import {
|
||||||
|
type ScyllaNote,
|
||||||
|
scyllaClient,
|
||||||
|
prepared,
|
||||||
|
parseScyllaNote,
|
||||||
|
} from "@/db/scylla.js";
|
||||||
|
import type { Note } from "@/models/entities/note.js";
|
||||||
|
|
||||||
export const undoAnnounce = async (
|
export const undoAnnounce = async (
|
||||||
actor: CacheableRemoteUser,
|
actor: CacheableRemoteUser,
|
||||||
|
@ -10,10 +17,26 @@ export const undoAnnounce = async (
|
||||||
): Promise<string> => {
|
): Promise<string> => {
|
||||||
const uri = getApId(activity);
|
const uri = getApId(activity);
|
||||||
|
|
||||||
const note = await Notes.findOneBy({
|
let note: Note | ScyllaNote | null = null;
|
||||||
|
|
||||||
|
if (scyllaClient) {
|
||||||
|
const result = await scyllaClient.execute(
|
||||||
|
prepared.note.select.byUri,
|
||||||
|
[uri],
|
||||||
|
{ prepare: true },
|
||||||
|
);
|
||||||
|
if (result.rowLength > 0) {
|
||||||
|
const candidate = parseScyllaNote(result.first());
|
||||||
|
if (candidate.userId === actor.id) {
|
||||||
|
note = candidate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
note = await Notes.findOneBy({
|
||||||
uri,
|
uri,
|
||||||
userId: actor.id,
|
userId: actor.id,
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if (!note) return "skip: no such Announce";
|
if (!note) return "skip: no such Announce";
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue