unoffical wafrn mirror wafrn.net
atproto social-network activitypub
at angular21 51 lines 1.5 kB view raw
1import { Blocks, Post, User } from "../../../models/index.js"; 2import { activityPubObject } from "../../../interfaces/fediverse/activityPubObject.js"; 3import { deletePostCommon } from "../../deletePost.js"; 4import { logger } from "../../logger.js"; 5import { redisCache } from "../../redis.js"; 6import { removeUser } from "../removeUser.js"; 7import { signAndAccept } from "../signAndAccept.js"; 8 9async function DeleteActivity( 10 body: activityPubObject, 11 remoteUser: User, 12 user: User 13) { 14 // TODO ???? 15 const apObject: activityPubObject = body.object.type ? body.object : body; 16 // TODO divide in files 17 try { 18 if (typeof apObject.object === "string") { 19 // we assume its just the url of an user 20 await removeUser(apObject.object); 21 // await signAndAccept({ body: body }, remoteUser, user) 22 return; 23 } else { 24 switch (apObject.type) { 25 case "Tombstone": { 26 const postToDelete = await Post.findOne({ 27 where: { 28 remotePostId: apObject.id, 29 }, 30 }); 31 if (postToDelete) { 32 await deletePostCommon(postToDelete.id); 33 } 34 // await signAndAccept({ body: body }, remoteUser, user) 35 break; 36 } 37 default: { 38 logger.info({ message: `DELETE NOT IMPLEMENTED`, apObject }); 39 } 40 } 41 } 42 } catch (error) { 43 logger.trace({ 44 message: "error with delete petition", 45 error: error, 46 petition: body, 47 }); 48 } 49} 50 51export { DeleteActivity };