Add interface to view post and user JSON data

This commit is contained in:
Jesse Wierzbinski 2024-04-08 18:33:59 -10:00
parent 342a8011f1
commit db37510370
No known key found for this signature in database
21 changed files with 248 additions and 122 deletions

View file

@ -260,7 +260,7 @@ export const createNewStatus = async (data: {
.join("\n");
}
let status = await client.status.create({
const status = await client.status.create({
data: {
authorId: data.account.id,
applicationId: data.application?.id,
@ -290,12 +290,7 @@ export const createNewStatus = async (data: {
quotingPostId: data.quote?.id,
instanceId: data.account.instanceId || undefined,
isReblog: false,
uri:
data.uri ||
new URL(
`/statuses/FAKE-${crypto.randomUUID()}`,
config.http.base_url,
).toString(),
uri: data.uri || null,
mentions: {
connect: mentions.map((mention) => {
return {
@ -307,22 +302,6 @@ export const createNewStatus = async (data: {
include: statusAndUserRelations,
});
// Update URI
status = await client.status.update({
where: {
id: status.id,
},
data: {
uri:
data.uri ||
new URL(
`/statuses/${status.id}`,
config.http.base_url,
).toString(),
},
include: statusAndUserRelations,
});
// Create notification
if (status.inReplyToPost) {
await client.notification.create({
@ -503,9 +482,19 @@ export const statusToAPI = async (
sensitive: status.sensitive,
spoiler_text: status.spoilerText,
tags: [],
uri: new URL(`/statuses/${status.id}`, config.http.base_url).toString(),
uri:
status.uri ||
new URL(
`/@${status.author.username}/${status.id}`,
config.http.base_url,
).toString(),
visibility: "public",
url: new URL(`/statuses/${status.id}`, config.http.base_url).toString(),
url:
status.uri ||
new URL(
`/@${status.author.username}/${status.id}`,
config.http.base_url,
).toString(),
bookmarked: false,
quote: status.quotingPost
? await statusToAPI(
@ -584,8 +573,8 @@ export const statusToLysand = (status: StatusWithRelations): Note => {
// TODO: Add attachments
attachments: [],
is_sensitive: status.sensitive,
mentions: status.mentions.map((mention) => mention.uri),
quotes: status.quotingPost ? [status.quotingPost.uri] : [],
mentions: status.mentions.map((mention) => mention.uri || ""),
quotes: status.quotingPost ? [status.quotingPost.uri || ""] : [],
replies_to: status.inReplyToPostId ? [status.inReplyToPostId] : [],
subject: status.spoilerText,
extensions: {

View file

@ -262,7 +262,6 @@ export const createNewLocalUser = async (data: {
avatar: data.avatar ?? config.defaults.avatar,
header: data.header ?? config.defaults.avatar,
isAdmin: data.admin ?? false,
uri: "",
publicKey: keys.public_key,
privateKey: keys.private_key,
source: {
@ -273,20 +272,13 @@ export const createNewLocalUser = async (data: {
fields: [],
},
},
include: userRelations,
});
// Add to Meilisearch
await addUserToMeilisearch(user);
return await client.user.update({
where: {
id: user.id,
},
data: {
uri: new URL(`/users/${user.id}`, config.http.base_url).toString(),
},
include: userRelations,
});
return user;
};
/**
@ -408,7 +400,9 @@ export const userToAPI = (
username: user.username,
display_name: user.displayName,
note: user.note,
url: user.uri,
url:
user.uri ||
new URL(`/@${user.username}`, config.http.base_url).toString(),
avatar: getAvatarUrl(user, config),
header: getHeaderUrl(user, config),
locked: user.isLocked,
@ -458,7 +452,7 @@ export const userToLysand = (user: UserWithRelations): LysandUser => {
return {
id: user.id,
type: "User",
uri: user.uri,
uri: user.uri || "",
bio: [
{
content: user.note,