123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- use crate::{
- entities::trash::{Trash, TrashType},
- errors::ErrorCode,
- impl_def_and_def_mut,
- parser::{
- app::AppId,
- view::{ViewName, ViewThumbnail},
- },
- };
- use flowy_derive::{ProtoBuf, ProtoBuf_Enum};
- use flowy_document::services::doc::doc_initial_string;
- use std::convert::TryInto;
- #[derive(PartialEq, Debug, ProtoBuf_Enum, Clone)]
- pub enum ViewType {
- Blank = 0,
- Doc = 1,
- }
- impl std::default::Default for ViewType {
- fn default() -> Self { ViewType::Blank }
- }
- impl std::convert::From<i32> for ViewType {
- fn from(val: i32) -> Self {
- match val {
- 1 => ViewType::Doc,
- 0 => ViewType::Blank,
- _ => {
- log::error!("Invalid view type: {}", val);
- ViewType::Blank
- },
- }
- }
- }
- #[derive(Default, ProtoBuf)]
- pub struct CreateViewRequest {
- #[pb(index = 1)]
- pub belong_to_id: String,
- #[pb(index = 2)]
- pub name: String,
- #[pb(index = 3)]
- pub desc: String,
- #[pb(index = 4, one_of)]
- pub thumbnail: Option<String>,
- #[pb(index = 5)]
- pub view_type: ViewType,
- }
- #[derive(Default, ProtoBuf, Debug, Clone)]
- pub struct CreateViewParams {
- #[pb(index = 1)]
- pub belong_to_id: String,
- #[pb(index = 2)]
- pub name: String,
- #[pb(index = 3)]
- pub desc: String,
- #[pb(index = 4)]
- pub thumbnail: String,
- #[pb(index = 5)]
- pub view_type: ViewType,
- #[pb(index = 6)]
- pub data: String,
- }
- impl CreateViewParams {
- pub fn new(belong_to_id: String, name: String, desc: String, view_type: ViewType, thumbnail: String) -> Self {
- Self {
- belong_to_id,
- name,
- desc,
- thumbnail,
- view_type,
- data: doc_initial_string(),
- }
- }
- }
- impl TryInto<CreateViewParams> for CreateViewRequest {
- type Error = ErrorCode;
- fn try_into(self) -> Result<CreateViewParams, Self::Error> {
- let name = ViewName::parse(self.name)?.0;
- let belong_to_id = AppId::parse(self.belong_to_id)?.0;
- let thumbnail = match self.thumbnail {
- None => "".to_string(),
- Some(thumbnail) => ViewThumbnail::parse(thumbnail)?.0,
- };
- Ok(CreateViewParams::new(
- belong_to_id,
- name,
- self.desc,
- self.view_type,
- thumbnail,
- ))
- }
- }
- #[derive(PartialEq, ProtoBuf, Default, Debug, Clone)]
- pub struct View {
- #[pb(index = 1)]
- pub id: String,
- #[pb(index = 2)]
- pub belong_to_id: String,
- #[pb(index = 3)]
- pub name: String,
- #[pb(index = 4)]
- pub desc: String,
- #[pb(index = 5)]
- pub view_type: ViewType,
- #[pb(index = 6)]
- pub version: i64,
- #[pb(index = 7)]
- pub belongings: RepeatedView,
- #[pb(index = 8)]
- pub modified_time: i64,
- #[pb(index = 9)]
- pub create_time: i64,
- }
- #[derive(PartialEq, Debug, Default, ProtoBuf, Clone)]
- pub struct RepeatedView {
- #[pb(index = 1)]
- pub items: Vec<View>,
- }
- impl_def_and_def_mut!(RepeatedView, View);
- impl std::convert::Into<Trash> for View {
- fn into(self) -> Trash {
- Trash {
- id: self.id,
- name: self.name,
- modified_time: self.modified_time,
- create_time: self.create_time,
- ty: TrashType::View,
- }
- }
- }
|