util.rs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. use database_model::*;
  2. use flowy_database::entities::*;
  3. use flowy_database::services::field::selection_type_option::SelectOptionPB;
  4. use flowy_database::services::field::*;
  5. pub fn create_text_field(grid_id: &str) -> (CreateFieldParams, FieldRevision) {
  6. let mut field_rev = FieldBuilder::new(RichTextTypeOptionBuilder::default())
  7. .name("Name")
  8. .visibility(true)
  9. .build();
  10. let cloned_field_rev = field_rev.clone();
  11. let type_option_data = field_rev
  12. .get_type_option::<RichTextTypeOptionPB>(field_rev.ty)
  13. .unwrap()
  14. .protobuf_bytes()
  15. .to_vec();
  16. let type_option_builder =
  17. type_option_builder_from_bytes(type_option_data.clone(), &field_rev.ty.into());
  18. field_rev.insert_type_option(type_option_builder.serializer());
  19. let params = CreateFieldParams {
  20. view_id: grid_id.to_owned(),
  21. field_type: field_rev.ty.into(),
  22. type_option_data: Some(type_option_data),
  23. };
  24. (params, cloned_field_rev)
  25. }
  26. pub fn create_single_select_field(grid_id: &str) -> (CreateFieldParams, FieldRevision) {
  27. let single_select = SingleSelectTypeOptionBuilder::default()
  28. .add_option(SelectOptionPB::new("Done"))
  29. .add_option(SelectOptionPB::new("Progress"));
  30. let mut field_rev = FieldBuilder::new(single_select)
  31. .name("Name")
  32. .visibility(true)
  33. .build();
  34. let cloned_field_rev = field_rev.clone();
  35. let type_option_data = field_rev
  36. .get_type_option::<SingleSelectTypeOptionPB>(field_rev.ty)
  37. .unwrap()
  38. .protobuf_bytes()
  39. .to_vec();
  40. let type_option_builder =
  41. type_option_builder_from_bytes(type_option_data.clone(), &field_rev.ty.into());
  42. field_rev.insert_type_option(type_option_builder.serializer());
  43. let params = CreateFieldParams {
  44. view_id: grid_id.to_owned(),
  45. field_type: field_rev.ty.into(),
  46. type_option_data: Some(type_option_data),
  47. };
  48. (params, cloned_field_rev)
  49. }
  50. // The grid will contains all existing field types and there are three empty rows in this grid.
  51. pub fn make_date_cell_string(s: &str) -> String {
  52. serde_json::to_string(&DateCellChangeset {
  53. date: Some(s.to_string()),
  54. time: None,
  55. is_utc: true,
  56. include_time: Some(false),
  57. })
  58. .unwrap()
  59. }