Skip to content

Commit 627c08e

Browse files
committed
293
1 parent 9bf42d5 commit 627c08e

14 files changed

Lines changed: 38 additions & 63 deletions

File tree

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/ResourceType.kt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,17 +57,18 @@ interface ResourceType {
5757
fun path(): List<String>
5858

5959
/**
60-
* Retrieves a map that contains information about the resource metadata (properties) "name" ->
61-
* "type"
60+
* Retrieves a map that contains information about the resource metadata (properties) "name" -> "type"
6261
*/
63-
@JsonProperty
64-
fun metaData(): Map<String, String>
62+
// @JsonProperty
63+
// fun metaData(): Map<String, String>
6564

66-
fun metaData(uri: Uri): List<Metadata> {
67-
return metaData().entries
68-
.map { e -> Metadata(e.key, e.value) }
69-
.toList()
70-
}
65+
@JsonProperty
66+
fun metaData(uri: Uri): List<Metadata>
67+
// {
68+
// return metaData().entries
69+
// .map { e -> Metadata(e.key, e.value) }
70+
// .toList()
71+
// }
7172

7273
/**
7374
* Read resources by uri

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/impl/FakeResourceType.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ package com.github.mgramin.sqlboot.model.resourcetype.impl
2626

2727
import com.github.mgramin.sqlboot.model.resource.DbResource
2828
import com.github.mgramin.sqlboot.model.resource.impl.FakeDbResource
29+
import com.github.mgramin.sqlboot.model.resourcetype.Metadata
2930
import com.github.mgramin.sqlboot.model.resourcetype.ResourceType
3031
import com.github.mgramin.sqlboot.model.uri.Uri
3132
import com.github.mgramin.sqlboot.model.uri.impl.DbUri
@@ -53,7 +54,9 @@ class FakeResourceType : ResourceType {
5354
FakeDbResource(DbUri("prod/table/hr.jobs"))).toFlux()
5455
}
5556

56-
override fun metaData(): Map<String, String> {
57-
return hashMapOf("@schema" to "Schema name", "@table" to "Table name", "@index" to "Index name")
57+
override fun metaData(uri: Uri): List<Metadata> {
58+
return listOf(Metadata("@schema", "Schema name"),
59+
Metadata("@table", "Table name"),
60+
Metadata("@index", "Index name"))
5861
}
5962
}

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/impl/FsResourceType.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ package com.github.mgramin.sqlboot.model.resourcetype.impl
2727
import com.github.mgramin.sqlboot.exceptions.BootException
2828
import com.github.mgramin.sqlboot.model.connection.SimpleDbConnection
2929
import com.github.mgramin.sqlboot.model.resource.DbResource
30+
import com.github.mgramin.sqlboot.model.resourcetype.Metadata
3031
import com.github.mgramin.sqlboot.model.resourcetype.ResourceType
3132
import com.github.mgramin.sqlboot.model.resourcetype.wrappers.body.BodyWrapper
3233
import com.github.mgramin.sqlboot.model.resourcetype.wrappers.header.SelectWrapper
@@ -91,12 +92,12 @@ class FsResourceType(
9192
.toList())
9293
}
9394

94-
override fun metaData(): Map<String, String> {
95+
override fun metaData(uri: Uri): List<Metadata> {
9596
try {
9697
return resourceTypes
9798
.asSequence()
9899
.first { v -> v.name().equals(uri.type(), ignoreCase = true) }
99-
.metaData()
100+
.metaData(uri)
100101
} catch (e: Exception) {
101102
throw BootException("Type not found", 404)
102103
}

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/impl/SqlResourceType.kt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ package com.github.mgramin.sqlboot.model.resourcetype.impl
2727
import com.github.mgramin.sqlboot.model.connection.DbConnection
2828
import com.github.mgramin.sqlboot.model.resource.DbResource
2929
import com.github.mgramin.sqlboot.model.resource.impl.DbResourceImpl
30+
import com.github.mgramin.sqlboot.model.resourcetype.Metadata
3031
import com.github.mgramin.sqlboot.model.resourcetype.ResourceType
3132
import com.github.mgramin.sqlboot.model.uri.Uri
3233
import com.github.mgramin.sqlboot.model.uri.impl.DbUri
@@ -84,12 +85,9 @@ class SqlResourceType(
8485
}
8586
}
8687

87-
override fun metaData(): Map<String, String> {
88-
val columns = simpleSelectQuery.columns()
89-
val newColumns = columns.toMutableMap()
90-
newColumns["database"] = """{"label": "Database", "description": "Database name", "visible": true}"""
91-
return newColumns
92-
}
88+
override fun metaData(uri: Uri): List<Metadata> = simpleSelectQuery.columns()
89+
.map { Metadata(it.key, it.value) } +
90+
Metadata("database", """{"label": "Database", "description": "Database name", "visible": true}""")
9391

9492
private fun createQuery(uri: Uri, connection: DbConnection): SelectQuery {
9593
return JdbcSelectQuery(

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/wrappers/body/BodyWrapper.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ package com.github.mgramin.sqlboot.model.resourcetype.wrappers.body
2727
import com.github.mgramin.sqlboot.exceptions.BootException
2828
import com.github.mgramin.sqlboot.model.resource.DbResource
2929
import com.github.mgramin.sqlboot.model.resource.wrappers.DbResourceBodyWrapper
30+
import com.github.mgramin.sqlboot.model.resourcetype.Metadata
3031
import com.github.mgramin.sqlboot.model.resourcetype.ResourceType
3132
import com.github.mgramin.sqlboot.model.uri.Uri
3233
import com.github.mgramin.sqlboot.template.generator.TemplateGenerator
@@ -54,7 +55,7 @@ class BodyWrapper(
5455
.map { r -> DbResourceBodyWrapper(r, templateGenerator.generate(r.headers())) }
5556
}
5657

57-
override fun metaData(): Map<String, String> {
58-
return origin.metaData()
58+
override fun metaData(uri: Uri): List<Metadata> {
59+
return origin.metaData(uri)
5960
}
6061
}

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/wrappers/header/DbNameWrapper.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ package com.github.mgramin.sqlboot.model.resourcetype.wrappers.header
2626

2727
import com.github.mgramin.sqlboot.model.connection.DbConnection
2828
import com.github.mgramin.sqlboot.model.resource.DbResource
29+
import com.github.mgramin.sqlboot.model.resourcetype.Metadata
2930
import com.github.mgramin.sqlboot.model.resourcetype.ResourceType
3031
import com.github.mgramin.sqlboot.model.uri.Uri
3132
import reactor.core.publisher.Flux
@@ -41,11 +42,7 @@ class DbNameWrapper(private val origin: ResourceType,
4142
return origin.path()
4243
}
4344

44-
override fun metaData(): Map<String, String> {
45-
val metaData = origin.metaData().toMutableMap()
46-
metaData["database"] = "Database name"
47-
return metaData
48-
}
45+
override fun metaData(uri: Uri): List<Metadata> = origin.metaData(uri) + Metadata("database", "Database name")
4946

5047
override fun read(uri: Uri): Flux<DbResource> {
5148
return origin.read(uri).map {

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/wrappers/header/SelectWrapper.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,6 @@ class SelectWrapper(private val origin: ResourceType, private val parameterName:
6565
}
6666
}
6767

68-
override fun metaData(): Map<String, String> {
69-
return origin.metaData()
70-
}
71-
7268
override fun metaData(uri: Uri): List<Metadata> {
7369
val select = uri.params()[parameterName]
7470
return if (select != null) {

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/wrappers/list/CacheWrapper.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ package com.github.mgramin.sqlboot.model.resourcetype.wrappers.list
2626

2727
import com.github.mgramin.sqlboot.exceptions.BootException
2828
import com.github.mgramin.sqlboot.model.resource.DbResource
29+
import com.github.mgramin.sqlboot.model.resourcetype.Metadata
2930
import com.github.mgramin.sqlboot.model.resourcetype.ResourceType
3031
import com.github.mgramin.sqlboot.model.uri.Uri
3132
import reactor.core.publisher.Flux
@@ -66,7 +67,7 @@ class CacheWrapper(private val origin: ResourceType, private val parameterName:
6667
return cachedResources!!.toFlux()
6768
}
6869

69-
override fun metaData(): Map<String, String> {
70-
return origin.metaData()
70+
override fun metaData(uri: Uri): List<Metadata> {
71+
return origin.metaData(uri)
7172
}
7273
}

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/wrappers/list/LimitWrapper.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ class LimitWrapper(private val origin: ResourceType, private val parameterName:
5151
return origin.read(uri).take(limit.toLong())
5252
}
5353

54-
override fun metaData(): Map<String, String> {
55-
return origin.metaData()
56-
}
54+
override fun metaData(uri: Uri) = origin.metaData(uri)
55+
5756
}

src/main/kotlin/com/github/mgramin/sqlboot/model/resourcetype/wrappers/list/PageWrapper.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,7 @@ class PageWrapper constructor(
4545
return origin.path()
4646
}
4747

48-
override fun metaData(): Map<String, String> {
49-
return origin.metaData()
50-
}
48+
override fun metaData(uri: Uri) = origin.metaData(uri)
5149

5250
override fun read(uri: Uri): Flux<DbResource> {
5351
val pageParameter = uri.params()[parameterName]

0 commit comments

Comments
 (0)