| 227 | } |
| 228 | |
| 229 | pub async fn update(t: Tenant) -> Result<Tenant, Error> { |
| 230 | t.validate()?; |
| 231 | |
| 232 | let t: Tenant = diesel::update(tenant::dsl::tenant.find(&t.id)) |
| 233 | .set(( |
| 234 | tenant::updated_at.eq(Utc::now()), |
| 235 | tenant::name.eq(&t.name), |
| 236 | tenant::description.eq(&t.description), |
| 237 | tenant::can_have_gateways.eq(&t.can_have_gateways), |
| 238 | tenant::max_device_count.eq(&t.max_device_count), |
| 239 | tenant::max_gateway_count.eq(&t.max_gateway_count), |
| 240 | tenant::private_gateways_up.eq(&t.private_gateways_up), |
| 241 | tenant::private_gateways_down.eq(&t.private_gateways_down), |
| 242 | tenant::tags.eq(&t.tags), |
| 243 | tenant::dev_addr_prefixes.eq(&t.dev_addr_prefixes), |
| 244 | )) |
| 245 | .get_result(&mut get_async_db_conn().await?) |
| 246 | .await |
| 247 | .map_err(|e| Error::from_diesel(e, t.id.to_string()))?; |
| 248 | info!(id = %t.id, "Tenant updated"); |
| 249 | Ok(t) |
| 250 | } |
| 251 | |
| 252 | pub async fn delete(id: &Uuid) -> Result<(), Error> { |
| 253 | let ra = diesel::delete(tenant::dsl::tenant.find(&fields::Uuid::from(id))) |