fix: formatting & DB

This commit is contained in:
April John 2024-07-27 16:24:04 +02:00
parent 2ffc66f412
commit 5949bb9bf3
Signed by: aprl
GPG key ID: BCB934A2909C5460
5 changed files with 69 additions and 11 deletions

View file

@ -41,11 +41,7 @@ impl MigrationTrait for Migration {
.col(ColumnDef::new(FollowRelation::ApAcceptId).string())
.col(ColumnDef::new(FollowRelation::Remote).boolean().not_null())
.col(ColumnDef::new(FollowRelation::ApJson).string().not_null())
.col(
ColumnDef::new(FollowRelation::ApAcceptJson)
.string()
.not_null(),
)
.col(ColumnDef::new(FollowRelation::ApAcceptJson).string())
.foreign_key(
ForeignKey::create()
.name("fk_follow_relation_followee_id")

View file

@ -189,9 +189,7 @@ pub async fn lysand_user_from_db(
}
content_type_header.unwrap().to_str().unwrap().to_string()
});
content_format
.x
.insert(media_type, content_entry);
content_format.x.insert(media_type, content_entry);
let mut name = tag.name.chars();
name.next();
name.next_back();

View file

@ -354,6 +354,44 @@ pub struct Note {
//TODO extensions
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct Patch {
#[serde(rename = "type")]
pub rtype: LysandType,
pub id: Uuid,
pub uri: Url,
pub author: Url,
#[serde(with = "iso_lysand")]
pub created_at: OffsetDateTime,
#[serde(with = "iso_lysand")]
pub patched_at: OffsetDateTime,
#[serde(skip_serializing_if = "Option::is_none")]
pub category: Option<CategoryType>,
#[serde(skip_serializing_if = "Option::is_none")]
pub content: Option<ContentFormat>,
#[serde(skip_serializing_if = "Option::is_none")]
pub device: Option<DeviceInfo>,
#[serde(skip_serializing_if = "Option::is_none")]
pub previews: Option<Vec<LinkPreview>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub group: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub attachments: Option<Vec<ContentFormat>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub replies_to: Option<Url>,
#[serde(skip_serializing_if = "Option::is_none")]
pub quotes: Option<Url>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mentions: Option<Vec<Url>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub subject: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_sensitive: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub visibility: Option<VisibilityType>,
//TODO extensions
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct Outbox {
pub first: Url,
@ -364,3 +402,27 @@ pub struct Outbox {
pub prev: Option<Url>,
pub items: Vec<Note>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct Follow {
#[serde(rename = "type")]
pub rtype: LysandType,
pub id: Uuid,
pub uri: Url,
pub author: Url,
#[serde(with = "iso_lysand")]
pub created_at: OffsetDateTime,
pub followee: Url,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct FollowResult {
#[serde(rename = "type")]
pub rtype: LysandType,
pub id: Uuid,
pub uri: Url,
pub author: Url,
#[serde(with = "iso_lysand")]
pub created_at: OffsetDateTime,
pub follower: Url,
}

View file

@ -19,7 +19,6 @@ use lysand::http::{create_activity, fetch_lysand_post, fetch_post, fetch_user, q
use objects::person::{DbUser, Person};
use sea_orm::{ActiveModelTrait, DatabaseConnection, Set};
use serde::{Deserialize, Serialize};
use uuid::Uuid;
use std::{
collections::HashMap,
env,
@ -30,6 +29,7 @@ use tokio::signal;
use tracing::{info, instrument::WithSubscriber};
use url::Url;
use utils::generate_object_id;
use uuid::Uuid;
use crate::{
activities::create_post::CreatePost,

View file

@ -5,7 +5,8 @@ use crate::{
},
database::{State, StateHandle},
entities::{self, user},
error::Error, API_DOMAIN,
error::Error,
API_DOMAIN,
};
use activitypub_federation::{
config::Data,
@ -227,7 +228,8 @@ impl Actor for user::Model {
"https://{}/apbridge/user/{}",
API_DOMAIN.to_string(),
&self.id
)).unwrap()
))
.unwrap()
}
fn public_key_pem(&self) -> &str {