chore: remove pb reference in util.rs

This commit is contained in:
appflowy
2022-07-19 13:07:30 +08:00
parent e7c672cb7e
commit 0ecff26636
7 changed files with 95 additions and 132 deletions

View File

@ -1,7 +1,7 @@
use flowy_sync::entities::revision::{RepeatedRevision, Revision};
use flowy_sync::{
entities::{folder::FolderInfo, text_block::DocumentPB},
errors::CollaborateError,
protobuf::{RepeatedRevision as RepeatedRevisionPB, Revision as RevisionPB},
server_document::*,
server_folder::FolderCloudPersistence,
util::{make_document_from_revision_pbs, make_folder_from_revisions_pb},
@ -15,17 +15,17 @@ use std::{
// For the moment, we use memory to cache the data, it will be implemented with
// other storage. Like the Firestore,Dropbox.etc.
pub trait RevisionCloudStorage: Send + Sync {
fn set_revisions(&self, repeated_revision: RepeatedRevisionPB) -> BoxResultFuture<(), CollaborateError>;
fn set_revisions(&self, repeated_revision: RepeatedRevision) -> BoxResultFuture<(), CollaborateError>;
fn get_revisions(
&self,
object_id: &str,
rev_ids: Option<Vec<i64>>,
) -> BoxResultFuture<RepeatedRevisionPB, CollaborateError>;
) -> BoxResultFuture<RepeatedRevision, CollaborateError>;
fn reset_object(
&self,
object_id: &str,
repeated_revision: RepeatedRevisionPB,
repeated_revision: RepeatedRevision,
) -> BoxResultFuture<(), CollaborateError>;
}
@ -64,7 +64,7 @@ impl FolderCloudPersistence for LocalTextBlockCloudPersistence {
&self,
_user_id: &str,
folder_id: &str,
repeated_revision: RepeatedRevisionPB,
repeated_revision: RepeatedRevision,
) -> BoxResultFuture<Option<FolderInfo>, CollaborateError> {
let folder_id = folder_id.to_owned();
let storage = self.storage.clone();
@ -74,7 +74,7 @@ impl FolderCloudPersistence for LocalTextBlockCloudPersistence {
})
}
fn save_folder_revisions(&self, repeated_revision: RepeatedRevisionPB) -> BoxResultFuture<(), CollaborateError> {
fn save_folder_revisions(&self, repeated_revision: RepeatedRevision) -> BoxResultFuture<(), CollaborateError> {
let storage = self.storage.clone();
Box::pin(async move {
let _ = storage.set_revisions(repeated_revision).await?;
@ -86,20 +86,19 @@ impl FolderCloudPersistence for LocalTextBlockCloudPersistence {
&self,
folder_id: &str,
rev_ids: Option<Vec<i64>>,
) -> BoxResultFuture<Vec<RevisionPB>, CollaborateError> {
) -> BoxResultFuture<Vec<Revision>, CollaborateError> {
let folder_id = folder_id.to_owned();
let storage = self.storage.clone();
Box::pin(async move {
let mut repeated_revision = storage.get_revisions(&folder_id, rev_ids).await?;
let revisions: Vec<RevisionPB> = repeated_revision.take_items().into();
Ok(revisions)
let repeated_revision = storage.get_revisions(&folder_id, rev_ids).await?;
Ok(repeated_revision.into_inner())
})
}
fn reset_folder(
&self,
folder_id: &str,
repeated_revision: RepeatedRevisionPB,
repeated_revision: RepeatedRevision,
) -> BoxResultFuture<(), CollaborateError> {
let storage = self.storage.clone();
let folder_id = folder_id.to_owned();
@ -126,7 +125,7 @@ impl TextBlockCloudPersistence for LocalTextBlockCloudPersistence {
fn create_text_block(
&self,
doc_id: &str,
repeated_revision: RepeatedRevisionPB,
repeated_revision: RepeatedRevision,
) -> BoxResultFuture<Option<DocumentPB>, CollaborateError> {
let doc_id = doc_id.to_owned();
let storage = self.storage.clone();
@ -140,20 +139,16 @@ impl TextBlockCloudPersistence for LocalTextBlockCloudPersistence {
&self,
doc_id: &str,
rev_ids: Option<Vec<i64>>,
) -> BoxResultFuture<Vec<RevisionPB>, CollaborateError> {
) -> BoxResultFuture<Vec<Revision>, CollaborateError> {
let doc_id = doc_id.to_owned();
let storage = self.storage.clone();
Box::pin(async move {
let mut repeated_revision = storage.get_revisions(&doc_id, rev_ids).await?;
let revisions: Vec<RevisionPB> = repeated_revision.take_items().into();
Ok(revisions)
let repeated_revision = storage.get_revisions(&doc_id, rev_ids).await?;
Ok(repeated_revision.into_inner())
})
}
fn save_text_block_revisions(
&self,
repeated_revision: RepeatedRevisionPB,
) -> BoxResultFuture<(), CollaborateError> {
fn save_text_block_revisions(&self, repeated_revision: RepeatedRevision) -> BoxResultFuture<(), CollaborateError> {
let storage = self.storage.clone();
Box::pin(async move {
let _ = storage.set_revisions(repeated_revision).await?;
@ -161,7 +156,7 @@ impl TextBlockCloudPersistence for LocalTextBlockCloudPersistence {
})
}
fn reset_text_block(&self, doc_id: &str, revisions: RepeatedRevisionPB) -> BoxResultFuture<(), CollaborateError> {
fn reset_text_block(&self, doc_id: &str, revisions: RepeatedRevision) -> BoxResultFuture<(), CollaborateError> {
let storage = self.storage.clone();
let doc_id = doc_id.to_owned();
Box::pin(async move {
@ -174,7 +169,7 @@ impl TextBlockCloudPersistence for LocalTextBlockCloudPersistence {
#[derive(Default)]
struct MemoryDocumentCloudStorage {}
impl RevisionCloudStorage for MemoryDocumentCloudStorage {
fn set_revisions(&self, _repeated_revision: RepeatedRevisionPB) -> BoxResultFuture<(), CollaborateError> {
fn set_revisions(&self, _repeated_revision: RepeatedRevision) -> BoxResultFuture<(), CollaborateError> {
Box::pin(async move { Ok(()) })
}
@ -182,9 +177,9 @@ impl RevisionCloudStorage for MemoryDocumentCloudStorage {
&self,
_doc_id: &str,
_rev_ids: Option<Vec<i64>>,
) -> BoxResultFuture<RepeatedRevisionPB, CollaborateError> {
) -> BoxResultFuture<RepeatedRevision, CollaborateError> {
Box::pin(async move {
let repeated_revisions = RepeatedRevisionPB::new();
let repeated_revisions = RepeatedRevision::default();
Ok(repeated_revisions)
})
}
@ -192,7 +187,7 @@ impl RevisionCloudStorage for MemoryDocumentCloudStorage {
fn reset_object(
&self,
_doc_id: &str,
_repeated_revision: RepeatedRevisionPB,
_repeated_revision: RepeatedRevision,
) -> BoxResultFuture<(), CollaborateError> {
Box::pin(async move { Ok(()) })
}