prevents packages from producing conflicting ssl configs (#1195)

* prevents packages from producing conflicting ssl configs

* remove commented code

commits missing file

fix builds
This commit is contained in:
Keagan McClelland
2022-02-11 15:36:35 -07:00
parent 384bd74dee
commit b4269ce09b
5 changed files with 103 additions and 3 deletions

View File

@@ -1,4 +1,5 @@
pub mod model;
pub mod package;
pub mod util;
use std::borrow::Cow;

View File

@@ -223,6 +223,15 @@ impl PackageDataEntry {
Self::Updating { installed, .. } | Self::Installed { installed, .. } => Some(installed),
}
}
pub fn manifest(self) -> Manifest {
match self {
PackageDataEntry::Installing { manifest, .. } => manifest,
PackageDataEntry::Updating { manifest, .. } => manifest,
PackageDataEntry::Restoring { manifest, .. } => manifest,
PackageDataEntry::Removing { manifest, .. } => manifest,
PackageDataEntry::Installed { manifest, .. } => manifest,
}
}
}
impl PackageDataEntryModel {
pub fn installed(self) -> OptionModel<InstalledPackageDataEntry> {

25
backend/src/db/package.rs Normal file
View File

@@ -0,0 +1,25 @@
use patch_db::DbHandle;
use crate::s9pk::manifest::{Manifest, PackageId};
use crate::Error;
pub async fn get_packages<Db: DbHandle>(db: &mut Db) -> Result<Vec<PackageId>, Error> {
let packages = crate::db::DatabaseModel::new()
.package_data()
.get(db, false)
.await?;
Ok(packages.0.keys().cloned().collect())
}
pub async fn get_manifest<Db: DbHandle>(
db: &mut Db,
pkg: &PackageId,
) -> Result<Option<Manifest>, Error> {
let mpde = crate::db::DatabaseModel::new()
.package_data()
.idx_model(pkg)
.get(db, false)
.await?
.into_owned();
Ok(mpde.map(|pde| pde.manifest()))
}