Skip to content

Commit e49af8b

Browse files
committed
288
1 parent 43f3226 commit e49af8b

1 file changed

Lines changed: 18 additions & 26 deletions

File tree

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

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -73,17 +73,19 @@ class ApiController {
7373
request: HttpServletRequest,
7474
@PathVariable connectionName: String
7575
): ResponseEntity<List<Map<String, Any>>> {
76-
val uriString = request.servletPath
77-
.split("/")
78-
.asSequence()
79-
.filter { it.isNotEmpty() }
80-
.filter { it != "api" }
81-
.filter { it != "headers" }
82-
.joinToString(separator = "/") { it }
83-
val uri: Uri = SqlPlaceholdersWrapper(DbUri(parseUri(uriString, request)))
84-
return getListResponseEntityHeaders(uri)
76+
return getListResponseEntityHeaders(SqlPlaceholdersWrapper(DbUri(parseUri(request, "api/headers"))))
77+
}
78+
79+
80+
@RequestMapping(value = ["/api/meta/{connectionName}/**"], method = [GET, POST])
81+
fun getResourceMetadata(
82+
request: HttpServletRequest,
83+
@PathVariable connectionName: String
84+
): ResponseEntity<List<Metadata>> {
85+
return responseEntity(SqlPlaceholdersWrapper(DbUri(parseUri(request, "api/meta"))))
8586
}
8687

88+
8789
private fun getListResponseEntityHeaders(uri: Uri): ResponseEntity<List<Map<String, Any>>> {
8890
val connections = dbConnectionList.getConnectionsByMask(uri.connection())
8991
try {
@@ -106,22 +108,6 @@ class ApiController {
106108
}
107109

108110

109-
@RequestMapping(value = ["/api/meta/{connectionName}/**"], method = [GET, POST])
110-
fun getResourceMetadata(
111-
request: HttpServletRequest,
112-
@PathVariable connectionName: String
113-
): ResponseEntity<List<Metadata>> {
114-
val uriString = request.servletPath
115-
.split("/")
116-
.filter { it.isNotEmpty() }
117-
.filter { it != "api" }
118-
.filter { it != "meta" }
119-
.joinToString(separator = "/") { it }
120-
val uri = SqlPlaceholdersWrapper(DbUri(parseUri(uriString, request)))
121-
return responseEntity(uri)
122-
}
123-
124-
125111
private fun responseEntity(uri: Uri): ResponseEntity<List<Metadata>> {
126112
val fsResourceTypes = FsResourceTypes(
127113
listOf(dbConnectionList.getConnectionByName(uri.connection())), uri)
@@ -135,7 +121,13 @@ class ApiController {
135121
}
136122

137123

138-
private fun parseUri(path: String, request: HttpServletRequest): String {
124+
private fun parseUri(request: HttpServletRequest, basePath: String): String {
125+
val path = request.servletPath
126+
.split("/")
127+
.asSequence()
128+
.filter { it.isNotEmpty() }
129+
.filter { !basePath.split("/").contains(it) }
130+
.joinToString(separator = "/") { it }
139131
return if (request.queryString == null || request.queryString.isEmpty()) {
140132
path
141133
} else {

0 commit comments

Comments
 (0)