11package org.sinytra.probe.core.service
22
3+ import kotlinx.coroutines.coroutineScope
34import org.sinytra.probe.base.db.Project
45import org.sinytra.probe.core.model.*
56import org.sinytra.probe.core.platform.PlatformProject
@@ -22,12 +23,14 @@ class PersistenceService(
2223 return results.getTestResultFor(dbProject.internalModId, testEnvironment)
2324 }
2425
25- // TODO Account for failed transformations
26- suspend fun saveResult (project : PlatformProject , modid : String , versionId : String , passing : Boolean , testEnvironment : TestEnvironment ): TestResult {
27- val mod = mods.modByModid(modid) ? : mods.addMod(Mod (id = 0 , modid = modid, projects = listOf ()))
28-
29- val dbProject = projects.projectByPlatformAndId(project.platform, project.id)
30- ? : projects.addProject(Project (platform = project.platform, id = project.id, internalModId = mod.id, modid = mod.modid))
26+ suspend fun saveResult (project : PlatformProject , modid : String? , versionId : String , passing : Boolean , testEnvironment : TestEnvironment ): TestResult {
27+ val (dbProject, mod) = projects.projectByPlatformAndId(project.platform, project.id)
28+ ?.let { it to mods.modById(it.internalModId)!! }
29+ ? : coroutineScope {
30+ val mod = mods.addMod(Mod (id = 0 , modid = modid, projects = listOf ()))
31+ val saved = projects.addProject(Project (platform = project.platform, id = project.id, internalModId = mod.id))
32+ saved to mod
33+ }
3134
3235 if (dbProject !in mod.projects) {
3336 projects.assignModToProject(dbProject, mod)
0 commit comments