Browse Source

Switched to ApiResult<T>

pull/2667/head
MFijak 3 years ago
parent
commit
909477a304
  1. 48
      src/api/core/organizations.rs
  2. 4
      src/db/models/group.rs

48
src/api/core/organizations.rs

@ -6,7 +6,8 @@ use serde_json::Value;
use crate::{ use crate::{
api::{ api::{
core::{CipherSyncData, CipherSyncType}, core::{CipherSyncData, CipherSyncType},
EmptyResult, JsonResult, JsonUpcase, JsonUpcaseVec, JsonVec, Notify, NumberOrString, PasswordData, UpdateType, ApiResult, EmptyResult, JsonResult, JsonUpcase, JsonUpcaseVec, JsonVec, Notify, NumberOrString, PasswordData,
UpdateType,
}, },
auth::{decode_invite, AdminHeaders, Headers, ManagerHeaders, ManagerHeadersLoose, OwnerHeaders}, auth::{decode_invite, AdminHeaders, Headers, ManagerHeaders, ManagerHeadersLoose, OwnerHeaders},
db::{models::*, DbConn}, db::{models::*, DbConn},
@ -1760,26 +1761,29 @@ struct GroupRequest {
} }
impl GroupRequest { impl GroupRequest {
pub fn to_group(&self, organizations_uuid: &str) -> Result<Group, String> { pub fn to_group(&self, organizations_uuid: &str) -> ApiResult<Group> {
let access_all_value = match self.AccessAll { match self.AccessAll {
Some(value) => value, Some(access_all_value) => Ok(Group::new(
organizations_uuid.to_owned(),
self.Name.clone(),
access_all_value,
self.ExternalId.clone(),
)),
_ => err!("Could not convert GroupRequest to Group, because AccessAll has no value!"), _ => err!("Could not convert GroupRequest to Group, because AccessAll has no value!"),
}; }
Ok(Group::new(organizations_uuid.to_owned(), self.Name.clone(), access_all_value, self.ExternalId.clone()))
} }
pub fn update_group(&self, mut group: Group) -> Result<Group, String> { pub fn update_group(&self, mut group: Group) -> ApiResult<Group> {
let access_all_value = match self.AccessAll { match self.AccessAll {
Some(value) => value, Some(access_all_value) => {
_ => return Err(String::from("Could not update group, because AccessAll has no value!")), group.name = self.Name.clone();
}; group.access_all = access_all_value;
group.set_external_id(self.ExternalId.clone());
group.name = self.Name.clone();
group.access_all = access_all_value;
group.set_external_id(self.ExternalId.clone());
Ok(group) Ok(group)
}
_ => err!("Could not update group, because AccessAll has no value!"),
}
} }
} }
@ -1836,10 +1840,7 @@ async fn post_groups(
conn: DbConn, conn: DbConn,
) -> JsonResult { ) -> JsonResult {
let group_request = data.into_inner().data; let group_request = data.into_inner().data;
let group = match group_request.to_group(&org_id) { let group = group_request.to_group(&org_id)?;
Ok(group) => group,
Err(err) => err!(&err),
};
add_update_group(group, group_request.Collections, &conn).await add_update_group(group, group_request.Collections, &conn).await
} }
@ -1858,10 +1859,7 @@ async fn put_group(
}; };
let group_request = data.into_inner().data; let group_request = data.into_inner().data;
let updated_group = match group_request.update_group(group) { let updated_group = group_request.update_group(group)?;
Ok(group) => group,
Err(err) => err!(&err),
};
CollectionGroup::delete_all_by_group(&group_id, &conn).await?; CollectionGroup::delete_all_by_group(&group_id, &conn).await?;

4
src/db/models/group.rs

@ -78,8 +78,8 @@ impl Group {
} else { } else {
self.external_id = Some(external_id) self.external_id = Some(external_id)
} }
}, }
None => self.external_id = None None => self.external_id = None,
} }
} }

Loading…
Cancel
Save