diff options
author | Felix Ableitner <me@nutomic.com> | 2020-04-03 11:00:24 +0200 |
---|---|---|
committer | Felix Ableitner <me@nutomic.com> | 2020-04-03 11:00:24 +0200 |
commit | c16458b728396970fd5727566ed43d866dd04ee5 (patch) | |
tree | 919c08d005061ad71036ca023b6ccaac9dd7441e /server/src/apub/post.rs | |
parent | 6a7a262912dbf0ef725261eb6fc2aaaa7a01c84d (diff) |
Avoid using database views in federation code
Diffstat (limited to 'server/src/apub/post.rs')
-rw-r--r-- | server/src/apub/post.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/server/src/apub/post.rs b/server/src/apub/post.rs index a9b50013..94f3b00e 100644 --- a/server/src/apub/post.rs +++ b/server/src/apub/post.rs @@ -1,4 +1,5 @@ use crate::apub::{create_apub_response, make_apub_endpoint, EndpointType}; +use crate::db::post::Post; use crate::db::post_view::PostView; use crate::{convert_datetime, naive_now}; use activitystreams::{object::properties::ObjectProperties, object::Page}; @@ -20,12 +21,11 @@ pub async fn get_apub_post( db: web::Data<Pool<ConnectionManager<PgConnection>>>, ) -> Result<HttpResponse<Body>, Error> { let id = info.post_id.parse::<i32>()?; - // TODO: shows error: missing field `user_name` - let post = PostView::read(&&db.get()?, id, None)?; + let post = Post::read(&&db.get()?, id)?; Ok(create_apub_response(&post.as_page()?)) } -impl PostView { +impl Post { pub fn as_page(&self) -> Result<Page, Error> { let base_url = make_apub_endpoint(EndpointType::Post, &self.id.to_string()); let mut page = Page::default(); @@ -59,7 +59,9 @@ impl PostView { Ok(page) } +} +impl PostView { pub fn from_page(page: &Page) -> Result<PostView, Error> { let oprops = &page.object_props; Ok(PostView { |