Added-External_id for Collections

This commit is contained in:
Folke Ashberg
2023-06-28 20:37:13 +02:00
committed by Mathijs van Veluw
parent 19e671ff25
commit 6050c8dac5
11 changed files with 36 additions and 8 deletions

View File

@@ -10,6 +10,7 @@ db_object! {
pub uuid: String,
pub org_uuid: String,
pub name: String,
pub external_id: Option<String>,
}
#[derive(Identifiable, Queryable, Insertable)]
@@ -33,18 +34,21 @@ db_object! {
/// Local methods
impl Collection {
pub fn new(org_uuid: String, name: String) -> Self {
Self {
pub fn new(org_uuid: String, name: String, external_id: Option<String>) -> Self {
let mut new_model = Self {
uuid: crate::util::get_uuid(),
org_uuid,
name,
}
external_id: None,
};
new_model.set_external_id(external_id);
new_model
}
pub fn to_json(&self) -> Value {
json!({
"ExternalId": null, // Not support by us
"ExternalId": self.external_id,
"Id": self.uuid,
"OrganizationId": self.org_uuid,
"Name": self.name,
@@ -52,6 +56,21 @@ impl Collection {
})
}
pub fn set_external_id(&mut self, external_id: Option<String>) {
//Check if external id is empty. We don't want to have
//empty strings in the database
match external_id {
Some(external_id) => {
if external_id.is_empty() {
self.external_id = None;
} else {
self.external_id = Some(external_id)
}
}
None => self.external_id = None,
}
}
pub async fn to_json_details(
&self,
user_uuid: &str,