]> Untitled Git - lemmy.git/blobdiff - crates/apub/src/protocol/objects/instance.rs
Diesel 2.0.0 upgrade (#2452)
[lemmy.git] / crates / apub / src / protocol / objects / instance.rs
index b507d2991ccfa4a5885940103874ed6eab131b6e..d8b997b43d8962b928526196fd1b4e39e0e7f648 100644 (file)
@@ -1,20 +1,28 @@
 use crate::{
   objects::instance::ApubSite,
-  protocol::{ImageObject, SourceCompat},
+  protocol::{ImageObject, Source},
+};
+use activitypub_federation::{
+  core::{object_id::ObjectId, signatures::PublicKey},
+  deser::{helpers::deserialize_skip_error, values::MediaTypeHtml},
 };
-use activitystreams_kinds::actor::ServiceType;
 use chrono::{DateTime, FixedOffset};
-use lemmy_apub_lib::{object_id::ObjectId, signatures::PublicKey, values::MediaTypeHtml};
 use serde::{Deserialize, Serialize};
 use serde_with::skip_serializing_none;
 use url::Url;
 
+#[derive(Clone, Copy, Debug, Deserialize, Serialize, PartialEq, Eq)]
+pub enum InstanceType {
+  Application,
+  Service,
+}
+
 #[skip_serializing_none]
 #[derive(Clone, Debug, Deserialize, Serialize)]
 #[serde(rename_all = "camelCase")]
 pub struct Instance {
   #[serde(rename = "type")]
-  pub(crate) kind: ServiceType,
+  pub(crate) kind: InstanceType,
   pub(crate) id: ObjectId<ApubSite>,
   // site name
   pub(crate) name: String,
@@ -25,7 +33,8 @@ pub struct Instance {
 
   // sidebar
   pub(crate) content: Option<String>,
-  pub(crate) source: Option<SourceCompat>,
+  #[serde(deserialize_with = "deserialize_skip_error", default)]
+  pub(crate) source: Option<Source>,
   // short instance description
   pub(crate) summary: Option<String>,
   pub(crate) media_type: Option<MediaTypeHtml>,