src/main/kotlin/de/uapcore/lightpit/viewmodel/PathInfos.kt

changeset 311
bf67e0ff7131
parent 292
703591e739f4
--- a/src/main/kotlin/de/uapcore/lightpit/viewmodel/PathInfos.kt	Mon Aug 05 17:41:56 2024 +0200
+++ b/src/main/kotlin/de/uapcore/lightpit/viewmodel/PathInfos.kt	Mon Aug 05 18:40:47 2024 +0200
@@ -31,13 +31,13 @@
 import de.uapcore.lightpit.entities.Component
 import de.uapcore.lightpit.entities.Version
 
-data class PathInfos(
+abstract class PathInfos(val issuesHref: String)
+class PathInfosOnlyIssues(issuesHref: String): PathInfos(issuesHref)
+data class PathInfosFull(
     val projectInfo: ProjectInfo,
     val versionInfo: OptionalPathInfo<Version>,
     val componentInfo: OptionalPathInfo<Component>
-) {
-    val issuesHref by lazyOf("projects/${projectInfo.project.node}/issues/${versionInfo.node}/${componentInfo.node}/")
-}
+): PathInfos("projects/${projectInfo.project.node}/issues/${versionInfo.node}/${componentInfo.node}/")
 
 private fun obtainProjectInfo(http: HttpRequest, dao: DataAccessObject): ProjectInfo? {
     val pathParam = http.pathParams["project"] ?: return null
@@ -54,7 +54,7 @@
     )
 }
 
-fun withPathInfo(http: HttpRequest, dao: DataAccessObject): PathInfos? {
+fun withPathInfo(http: HttpRequest, dao: DataAccessObject): PathInfosFull? {
     val projectInfo = obtainProjectInfo(http, dao)
     if (projectInfo == null) {
         http.response.sendError(404)
@@ -69,5 +69,5 @@
         return null
     }
 
-    return PathInfos(projectInfo, version, component)
+    return PathInfosFull(projectInfo, version, component)
 }

mercurial