sql_builder.rs 740 B

12345678910111213141516171819202122232425262728293031323334
  1. use crate::{
  2. entities::doc::{DocTable, DOC_TABLE},
  3. sqlx_ext::SqlBuilder,
  4. };
  5. use flowy_net::errors::ServerError;
  6. use sqlx::postgres::PgArguments;
  7. use uuid::Uuid;
  8. pub struct NewDocSqlBuilder {
  9. table: DocTable,
  10. }
  11. impl NewDocSqlBuilder {
  12. pub fn new(id: Uuid) -> Self {
  13. let table = DocTable { id, data: vec![] };
  14. Self { table }
  15. }
  16. pub fn data(mut self, data: Vec<u8>) -> Self {
  17. self.table.data = data;
  18. self
  19. }
  20. pub fn build(self) -> Result<(String, PgArguments), ServerError> {
  21. let (sql, args) = SqlBuilder::create(DOC_TABLE)
  22. .add_arg("id", self.table.id)
  23. .add_arg("data", self.table.data)
  24. .build()?;
  25. Ok((sql, args))
  26. }
  27. }