]> Untitled Git - lemmy.git/blob - server/src/apub/post.rs
Merge branch 'admin_settings' into dev
[lemmy.git] / server / src / apub / post.rs
1 use crate::apub::make_apub_endpoint;
2 use crate::db::post::Post;
3 use crate::to_datetime_utc;
4 use activitypub::{context, object::Page};
5
6 impl Post {
7   pub fn as_page(&self) -> Page {
8     let base_url = make_apub_endpoint("post", self.id);
9     let mut page = Page::default();
10
11     page.object_props.set_context_object(context()).ok();
12     page.object_props.set_id_string(base_url).ok();
13     page.object_props.set_name_string(self.name.to_owned()).ok();
14
15     if let Some(body) = &self.body {
16       page.object_props.set_content_string(body.to_owned()).ok();
17     }
18
19     if let Some(url) = &self.url {
20       page.object_props.set_url_string(url.to_owned()).ok();
21     }
22
23     //page.object_props.set_attributed_to_string
24
25     page
26       .object_props
27       .set_published_utctime(to_datetime_utc(self.published))
28       .ok();
29     if let Some(updated) = self.updated {
30       page
31         .object_props
32         .set_updated_utctime(to_datetime_utc(updated))
33         .ok();
34     }
35
36     page
37   }
38 }