@@ -44,7 +44,6 @@ import org.springframework.web.bind.annotation.RequestMapping
4444import org.springframework.web.bind.annotation.RequestMethod.GET
4545import org.springframework.web.bind.annotation.RequestMethod.POST
4646import org.springframework.web.bind.annotation.RestController
47- import java.util.ArrayList
4847import javax.servlet.http.HttpServletRequest
4948
5049/* *
@@ -70,20 +69,31 @@ class ApiController {
7069 val jsonArray = JsonArray ()
7170 FsResourceType (dbConnectionList.getConnectionsByMask(connectionName), emptyList())
7271 .resourceTypes()
73- .forEach {jsonArray.add(it.toJson())}
72+ .forEach { jsonArray.add(it.toJson()) }
7473 return jsonArray.toString()
7574 }
7675
77- @RequestMapping(value = [" /api/{connectionName}/**" ], method = [GET , POST ])
78- fun getResourcesHeadersJson (request : HttpServletRequest ) =
79- getListResponseEntityHeaders(SqlPlaceholdersWrapper (DbUri (parseUri(request, " api/headers" ))))
80-
8176
8277 @RequestMapping(value = [" /api/meta/{connectionName}/**" ], method = [GET , POST ])
83- fun getResourceMetadata (request : HttpServletRequest ) =
84- responseEntity(SqlPlaceholdersWrapper (DbUri (parseUri(request, " api/meta" ))))
78+ fun getResourceMetadata (request : HttpServletRequest ): ResponseEntity <String > {
79+ val jsonArray = JsonArray ()
80+ val uri = SqlPlaceholdersWrapper (
81+ DbUri (parseUri(request, " api/meta" )))
82+ FsResourceType (listOf (dbConnectionList.getConnectionByName(uri.connection())), emptyList())
83+ .resourceTypes()
84+ .asSequence()
85+ .filter { v -> v.name().equals(uri.type(), ignoreCase = true ) }
86+ .map { it.metaData(uri) }
87+ .first()
88+ .forEach { jsonArray.add(it.toJson()) }
89+ return ResponseEntity (jsonArray.toString(), HttpStatus .OK )
90+ }
8591
8692
93+ @RequestMapping(value = [" /api/{connectionName}/**" ], method = [GET , POST ])
94+ fun getResourcesHeadersJson (request : HttpServletRequest ) =
95+ getListResponseEntityHeaders(SqlPlaceholdersWrapper (DbUri (parseUri(request, " api/headers" ))))
96+
8797 private fun getListResponseEntityHeaders (uri : Uri ): ResponseEntity <List <Map <String , Any >>> {
8898 val connections = dbConnectionList.getConnectionsByMask(uri.connection())
8999 try {
@@ -106,20 +116,6 @@ class ApiController {
106116 }
107117
108118
109- private fun responseEntity (uri : Uri ): ResponseEntity <List <Metadata >> {
110- val fsResourceTypes = FsResourceType (
111- listOf (dbConnectionList.getConnectionByName(uri.connection())),
112- emptyList())
113- val resourceType = fsResourceTypes
114- .resourceTypes()
115- .stream()
116- .filter { v -> v.name().equals(uri.type(), ignoreCase = true ) }
117- .findAny()
118- .orElse(null ) ? : return ResponseEntity (ArrayList (), HttpStatus .NO_CONTENT )
119- return ResponseEntity (resourceType.metaData(uri), HttpStatus .OK )
120- }
121-
122-
123119 private fun parseUri (request : HttpServletRequest , basePath : String ): String {
124120 val path = request.servletPath
125121 .split(" /" )
0 commit comments