diff options
author | mdecimus <mauro@stalw.art> | 2023-07-04 20:10:00 +0200 |
---|---|---|
committer | mdecimus <mauro@stalw.art> | 2023-07-04 20:10:00 +0200 |
commit | 1cb539ce525742bb1bce06ef2ae87be155b3f936 (patch) | |
tree | d1dc755535e71bbaba96f14d056343643c3d7591 /crates/jmap-proto | |
parent | b30e02248024e3262c9fdb929d1f4e4e821a4890 (diff) |
Internal account id management.
Diffstat (limited to 'crates/jmap-proto')
-rw-r--r-- | crates/jmap-proto/src/object/index.rs | 43 | ||||
-rw-r--r-- | crates/jmap-proto/src/object/mod.rs | 11 | ||||
-rw-r--r-- | crates/jmap-proto/src/types/collection.rs | 6 |
3 files changed, 32 insertions, 28 deletions
diff --git a/crates/jmap-proto/src/object/index.rs b/crates/jmap-proto/src/object/index.rs index 35c0660b..2c43e55d 100644 --- a/crates/jmap-proto/src/object/index.rs +++ b/crates/jmap-proto/src/object/index.rs @@ -147,8 +147,7 @@ impl IntoOperations for ObjectIndexBuilder { // Insertion build_batch(batch, self.index, &changes, true); batch.ops.push(Operation::Value { - field: Property::Value.into(), - family: 0, + class: Property::Value.into(), set: changes.serialize().into(), }); } @@ -162,8 +161,7 @@ impl IntoOperations for ObjectIndexBuilder { batch.assert_value(Property::Value, ¤t); build_batch(batch, self.index, ¤t.inner, false); batch.ops.push(Operation::Value { - field: Property::Value.into(), - family: 0, + class: Property::Value.into(), set: None, }); } @@ -370,10 +368,7 @@ fn merge_batch( for item in current_value.chunks_exact(2) { if let Some(Value::Id(id)) = item.first() { if !value.contains(&Value::Id(*id)) { - batch.ops.push(Operation::Acl { - grant_account_id: id.document_id(), - set: None, - }); + batch.ops.push(Operation::acl(id.document_id(), None)); } } } @@ -399,10 +394,10 @@ fn merge_batch( } } if add_item { - batch.ops.push(Operation::Acl { - grant_account_id: id.document_id(), - set: acl.serialize().into(), - }); + batch.ops.push(Operation::acl( + id.document_id(), + acl.serialize().into(), + )); } } } @@ -413,10 +408,10 @@ fn merge_batch( if let (Some(Value::Id(id)), Some(Value::UnsignedInt(acl))) = (item.first(), item.last()) { - batch.ops.push(Operation::Acl { - grant_account_id: id.document_id(), - set: acl.serialize().into(), - }); + batch.ops.push(Operation::acl( + id.document_id(), + acl.serialize().into(), + )); } } } @@ -424,10 +419,7 @@ fn merge_batch( // Remove all ACLs for item in current_values.chunks_exact(2) { if let Some(Value::Id(id)) = item.first() { - batch.ops.push(Operation::Acl { - grant_account_id: id.document_id(), - set: None, - }); + batch.ops.push(Operation::acl(id.document_id(), None)); } } } @@ -455,8 +447,7 @@ fn merge_batch( if has_changes { batch.ops.push(Operation::Value { - field: Property::Value.into(), - family: 0, + class: Property::Value.into(), set: current.serialize().into(), }); } @@ -561,10 +552,10 @@ fn build_batch( if let (Some(Value::Id(id)), Some(Value::UnsignedInt(acl))) = (item.first(), item.last()) { - batch.ops.push(Operation::Acl { - grant_account_id: id.document_id(), - set: if set { acl.serialize().into() } else { None }, - }); + batch.ops.push(Operation::acl( + id.document_id(), + if set { acl.serialize().into() } else { None }, + )); } } } diff --git a/crates/jmap-proto/src/object/mod.rs b/crates/jmap-proto/src/object/mod.rs index be3b4cf8..b1dacec1 100644 --- a/crates/jmap-proto/src/object/mod.rs +++ b/crates/jmap-proto/src/object/mod.rs @@ -30,7 +30,7 @@ pub mod sieve; use std::slice::Iter; use store::{ - write::{DeserializeFrom, SerializeInto, ToBitmaps}, + write::{DeserializeFrom, SerializeInto, ToBitmaps, ValueClass}, Deserialize, Serialize, }; use utils::{ @@ -261,3 +261,12 @@ impl DeserializeFrom for Value { } } } + +impl From<Property> for ValueClass { + fn from(value: Property) -> Self { + ValueClass::Property { + field: value.into(), + family: 0, + } + } +} diff --git a/crates/jmap-proto/src/types/collection.rs b/crates/jmap-proto/src/types/collection.rs index 0d1b4a90..99dcd6e1 100644 --- a/crates/jmap-proto/src/types/collection.rs +++ b/crates/jmap-proto/src/types/collection.rs @@ -37,7 +37,8 @@ pub enum Collection { EmailSubmission = 4, SieveScript = 5, PushSubscription = 6, - None = 7, + Principal = 7, + None = 8, } impl From<u8> for Collection { @@ -50,6 +51,7 @@ impl From<u8> for Collection { 4 => Collection::EmailSubmission, 5 => Collection::SieveScript, 6 => Collection::PushSubscription, + 7 => Collection::Principal, _ => Collection::None, } } @@ -65,6 +67,7 @@ impl From<u64> for Collection { 4 => Collection::EmailSubmission, 5 => Collection::SieveScript, 6 => Collection::PushSubscription, + 7 => Collection::Principal, _ => Collection::None, } } @@ -107,6 +110,7 @@ impl Display for Collection { Collection::Identity => write!(f, "identity"), Collection::EmailSubmission => write!(f, "emailSubmission"), Collection::SieveScript => write!(f, "sieveScript"), + Collection::Principal => write!(f, "principal"), Collection::None => write!(f, ""), } } |