Skip to content

Commit cb3cc2b

Browse files
committed
1 parent a53789c commit cb3cc2b

File tree

6 files changed

+36
-67
lines changed

6 files changed

+36
-67
lines changed

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

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ interface ResourceType {
3838
* Name of resource type, e.g "table", "index", "stored procedure" etc
3939
*/
4040
@JsonProperty
41-
@JvmDefault
4241
fun name(): String {
4342
return aliases()[0]
4443
}
@@ -50,25 +49,16 @@ interface ResourceType {
5049
fun aliases(): List<String>
5150

5251
/**
53-
* Path of resource e.g. ["schema", "table", "column"] or ["schema", "table", "index",
54-
* "index_column"]
52+
* Path of resource e.g. ["schema", "table", "column"] or ["schema", "table", "index", "index_column"]
5553
*/
5654
@JsonProperty
5755
fun path(): List<String>
5856

5957
/**
60-
* Retrieves a map that contains information about the resource metadata (properties) "name" -> "type"
58+
* Information about the resource metadata (properties) "name" -> "type"
6159
*/
62-
// @JsonProperty
63-
// fun metaData(): Map<String, String>
64-
6560
@JsonProperty
6661
fun metaData(uri: Uri): List<Metadata>
67-
// {
68-
// return metaData().entries
69-
// .map { e -> Metadata(e.key, e.value) }
70-
// .toList()
71-
// }
7262

7363
/**
7464
* Read resources by uri

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,11 @@ class SqlResourceType(
8989
}
9090
}
9191

92-
override fun metaData(uri: Uri): List<Metadata> = simpleSelectQuery
93-
.columns()
94-
.map { Metadata(it.key, it.value) } +
95-
Metadata("database", """{"label": "Database", "description": "Database name", "visible": true}""")
92+
override fun metaData(uri: Uri): List<Metadata> =
93+
simpleSelectQuery
94+
.columns()
95+
.map { Metadata(it.key, it.value) } +
96+
Metadata("database", """{"label": "Database", "description": "Database name", "visible": true}""")
9697

9798
private fun createQuery(uri: Uri, connection: DbConnection): SelectQuery {
9899
val properties = simpleSelectQuery.properties()

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

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424

2525
package com.github.mgramin.sqlboot.model.resourcetype.wrappers.body
2626

27-
import com.github.mgramin.sqlboot.exceptions.BootException
2827
import com.github.mgramin.sqlboot.model.resource.DbResource
2928
import com.github.mgramin.sqlboot.model.resource.wrappers.DbResourceBodyWrapper
3029
import com.github.mgramin.sqlboot.model.resourcetype.Metadata
@@ -41,21 +40,14 @@ class BodyWrapper(
4140
private val templateGenerator: TemplateGenerator
4241
) : ResourceType {
4342

44-
override fun aliases(): List<String> {
45-
return origin.aliases()
46-
}
43+
override fun aliases() = origin.aliases()
4744

48-
override fun path(): List<String> {
49-
return origin.path()
50-
}
45+
override fun path() = origin.path()
5146

52-
@Throws(BootException::class)
53-
override fun read(uri: Uri): Flux<DbResource> {
54-
return origin.read(uri)
55-
.map { r -> DbResourceBodyWrapper(r, templateGenerator.generate(r.headers())) }
56-
}
47+
override fun read(uri: Uri): Flux<DbResource> =
48+
origin.read(uri)
49+
.map { r -> DbResourceBodyWrapper(r, templateGenerator.generate(r.headers())) }
50+
51+
override fun metaData(uri: Uri): List<Metadata> = origin.metaData(uri)
5752

58-
override fun metaData(uri: Uri): List<Metadata> {
59-
return origin.metaData(uri)
60-
}
6153
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class DbNameWrapper(private val origin: ResourceType,
3838

3939
override fun path() = origin.path()
4040

41-
override fun metaData(uri: Uri) = origin.metaData(uri) + Metadata("database", "Database name")
41+
override fun metaData(uri: Uri): List<Metadata> = origin.metaData(uri) + Metadata("database", "Database name")
4242

4343
override fun read(uri: Uri): Flux<DbResource> =
4444
origin

src/main/kotlin/com/github/mgramin/sqlboot/rest/controllers/ApiController.kt

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import com.github.mgramin.sqlboot.exceptions.BootException
2828
import com.github.mgramin.sqlboot.model.connection.DbConnectionList
2929
import com.github.mgramin.sqlboot.model.dialect.DbDialectList
3030
import com.github.mgramin.sqlboot.model.resourcetype.Metadata
31-
import com.github.mgramin.sqlboot.model.resourcetype.ResourceType
3231
import com.github.mgramin.sqlboot.model.resourcetype.impl.FsResourceType
3332
import com.github.mgramin.sqlboot.model.uri.Uri
3433
import com.github.mgramin.sqlboot.model.uri.impl.DbUri
@@ -66,27 +65,18 @@ class ApiController {
6665

6766

6867
@RequestMapping(value = ["/api/{connectionName}/types"])
69-
fun types(@PathVariable connectionName: String): List<ResourceType>? {
70-
return FsResourceType(dbConnectionList.getConnectionsByMask(connectionName), emptyList()).resourceTypes()
71-
}
68+
fun types(@PathVariable connectionName: String) =
69+
FsResourceType(dbConnectionList.getConnectionsByMask(connectionName), emptyList()).resourceTypes()
7270

7371

7472
@RequestMapping(value = ["/api/{connectionName}/**"], method = [GET, POST])
75-
fun getResourcesHeadersJson(
76-
request: HttpServletRequest,
77-
@PathVariable connectionName: String
78-
): ResponseEntity<List<Map<String, Any>>> {
79-
return getListResponseEntityHeaders(SqlPlaceholdersWrapper(DbUri(parseUri(request, "api/headers"))))
80-
}
73+
fun getResourcesHeadersJson(request: HttpServletRequest) =
74+
getListResponseEntityHeaders(SqlPlaceholdersWrapper(DbUri(parseUri(request, "api/headers"))))
8175

8276

8377
@RequestMapping(value = ["/api/meta/{connectionName}/**"], method = [GET, POST])
84-
fun getResourceMetadata(
85-
request: HttpServletRequest,
86-
@PathVariable connectionName: String
87-
): ResponseEntity<List<Metadata>> {
88-
return responseEntity(SqlPlaceholdersWrapper(DbUri(parseUri(request, "api/meta"))))
89-
}
78+
fun getResourceMetadata(request: HttpServletRequest) =
79+
responseEntity(SqlPlaceholdersWrapper(DbUri(parseUri(request, "api/meta"))))
9080

9181

9282
private fun getListResponseEntityHeaders(uri: Uri): ResponseEntity<List<Map<String, Any>>> {

src/test/kotlin/com/github/mgramin/sqlboot/model/resourcetype/impl/SqlResourceTypeTest.kt

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ class SqlResourceTypeTest {
7474
| , table_name as "@table"
7575
| from information_schema.tables)""".trimMargin()
7676
StepVerifier
77-
.create(createSqlResourceType(sql).read(FakeUri()))
77+
.create(createType(sql, "table").read(FakeUri()))
7878
.expectNextCount(46)
7979
.verifyComplete()
8080
}
@@ -87,7 +87,7 @@ class SqlResourceTypeTest {
8787
| , column_name as "@column"
8888
| from information_schema.columns)""".trimMargin()
8989
StepVerifier
90-
.create(createSqlResourceType(sql).read(FakeUri()))
90+
.create(createType(sql, "table").read(FakeUri()))
9191
.expectNextCount(347)
9292
.verifyComplete()
9393
}
@@ -101,36 +101,32 @@ class SqlResourceTypeTest {
101101
| from processes
102102
| limit 5""".trimMargin()
103103
StepVerifier
104-
.create(createSqlResourceType(sql).read(DbUri("prod/process")))
104+
.create(createType(sql, "table").read(DbUri("prod/process")))
105105
.expectNextCount(5)
106106
.verifyComplete()
107107
}
108108

109109
@Test
110110
fun path() {
111-
val sql = """select @schema
112-
| , @table
113-
| , @column
114-
| from (select table_schema as "@schema"
115-
| , table_name as "@table"
116-
| , column_name as "@column"
117-
| from information_schema.columns)""".trimMargin()
118-
val type =
119-
SqlResourceType(
120-
aliases = arrayListOf("column"),
121-
sql = sql,
122-
connections = listOf(db),
123-
dialects = emptyList())
124-
assertEquals("[schema, table, column]", type.path().toString())
111+
val sql = """select table_schema as "@schema"
112+
| , table_name as "@table"
113+
| , column_name as "@column"
114+
| from information_schema.columns""".trimMargin()
115+
assertEquals("[schema, table, column]", createType(sql, "column").path().toString())
125116
}
126117

127118
@Test
128119
fun metaData() {
120+
val sql = """select table_schema as "@schema"
121+
| , table_name as "@table"
122+
| , column_name as "@column"
123+
| from information_schema.columns""".trimMargin()
124+
assertEquals(4, createType(sql, "column").metaData(FakeUri()).count())
129125
}
130126

131-
private fun createSqlResourceType(sql: String) =
127+
private fun createType(sql: String, type: String) =
132128
SqlResourceType(
133-
aliases = arrayListOf("table"),
129+
aliases = arrayListOf(type),
134130
sql = sql,
135131
connections = listOf(db),
136132
dialects = listOf(FakeDialect()))

0 commit comments

Comments
 (0)