Skip to content

Commit 67eaffd

Browse files
committed
request multiple elements at once
1 parent c148a26 commit 67eaffd

File tree

4 files changed

+30
-32
lines changed

4 files changed

+30
-32
lines changed

com.incquerylabs.vhci.modelaccess.twc.rest/src/main/kotlin/com/incquerylabs/vhci/modelaccess/twc/rest/Crawler.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
11
package com.incquerylabs.vhci.modelaccess.twc.rest
22

3+
import com.incquerylabs.vhci.modelaccess.twc.rest.data.*
34
import io.vertx.core.Vertx
4-
import com.incquerylabs.vhci.modelaccess.twc.rest.data.Message
5-
import com.incquerylabs.vhci.modelaccess.twc.rest.data.Repo
6-
import com.incquerylabs.vhci.modelaccess.twc.rest.data.Server
75
import io.vertx.core.json.Json
8-
import io.vertx.core.json.JsonArray
96
import io.vertx.core.json.JsonObject
10-
import com.incquerylabs.vhci.modelaccess.twc.rest.data.User
117
import com.incquerylabs.vhci.modelaccess.twc.rest.verticles.MainVerticle
128
import com.incquerylabs.vhci.modelaccess.twc.rest.verticles.RESTVerticle
139
import io.vertx.core.DeploymentOptions
1410
import io.vertx.core.cli.Argument
1511
import io.vertx.core.cli.CLI
1612
import io.vertx.core.cli.Option
13+
import io.vertx.core.shareddata.LocalMap
14+
import io.vertx.ext.web.client.WebClient
15+
import io.vertx.ext.web.client.WebClientOptions
1716
import java.io.File
1817

1918

@@ -134,5 +133,3 @@ fun main(args: Array<String>) {
134133

135134
}
136135

137-
138-

com.incquerylabs.vhci.modelaccess.twc.rest/src/main/kotlin/com/incquerylabs/vhci/modelaccess/twc/rest/data/Data.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ data class Workspace(val id:String, val resources:JsonArray)
1010
data class Resource(val id:String, val workspace_id:String, val branches:JsonArray)
1111
data class Branch(val id:String,val resource_id:String ,val workspace_id:String,val revisions:JsonArray)
1212
data class Revision(val id:Int, val branch_id:String, val resource_id:String ,val workspace_id:String, val elements:JsonArray)
13-
data class Element(val id:String, val branch_id:String, val resource_id:String ,val workspace_id:String, val elements:JsonArray)
13+
data class Element(val id:String, val revision_id:Int, val branch_id:String, val resource_id:String ,val workspace_id:String, val elements:JsonArray)
14+
data class Elements(val revision_id:Int, val branch_id:String, val resource_id:String ,val workspace_id:String, val elements:JsonArray)
1415

1516
object DataConstants {
1617
const val REPO = "repo"
@@ -21,7 +22,7 @@ object DataConstants {
2122
const val BRANCH = "branch"
2223
const val BRANCH_ID = "branch_id"
2324
const val REVISION = "revision"
24-
const val REVISION_ID = "rev_id"
25+
const val REVISION_ID = "revision_id"
2526
const val ELEMENTS = "elements"
2627
const val ELEMENT_IDS = "element_ids"
2728
const val ELEMENT = "element"

com.incquerylabs.vhci.modelaccess.twc.rest/src/main/kotlin/com/incquerylabs/vhci/modelaccess/twc/rest/verticles/MainVerticle.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,6 @@ class MainVerticle(val usr: String, val pswd: String) : AbstractVerticle() {
114114
DataConstants.BRANCH -> {
115115
// println("Received Branch")
116116
// println(data)
117-
118117
val branchId = data.getString("id")
119118
val resourceId = data.getString(DataConstants.RESOURCE_ID)
120119
val workspaceId = data.getString(DataConstants.WORKSPACE_ID)
@@ -134,10 +133,10 @@ class MainVerticle(val usr: String, val pswd: String) : AbstractVerticle() {
134133
// println("Received Revision")
135134
// println(data)
136135

136+
val revisionId = data.getInteger("id")
137137
val branchId = data.getString(DataConstants.BRANCH_ID)
138138
val resourceId = data.getString(DataConstants.RESOURCE_ID)
139139
val workspaceId = data.getString(DataConstants.WORKSPACE_ID)
140-
val revisionId = data.getInteger("id")
141140
val requestSingleElements = false
142141
if(requestSingleElements) {
143142
data.getJsonArray(DataConstants.ELEMENTS).forEach { element ->
@@ -147,6 +146,7 @@ class MainVerticle(val usr: String, val pswd: String) : AbstractVerticle() {
147146
.put(DataConstants.WORKSPACE_ID, workspaceId)
148147
.put(DataConstants.RESOURCE_ID, resourceId)
149148
.put(DataConstants.BRANCH_ID, branchId)
149+
.put(DataConstants.REVISION_ID, revisionId)
150150
.put(DataConstants.ELEMENT_ID, elemId)
151151
)))
152152
}
@@ -187,17 +187,19 @@ class MainVerticle(val usr: String, val pswd: String) : AbstractVerticle() {
187187
// println("Received Elements")
188188
// println(data)
189189

190+
val revisionId = data.getInteger(DataConstants.REVISION_ID)
190191
val branchId = data.getString(DataConstants.BRANCH_ID)
191192
val resourceId = data.getString(DataConstants.RESOURCE_ID)
192193
val workspaceId = data.getString(DataConstants.WORKSPACE_ID)
193-
val element_ids = data.getJsonArray(DataConstants.ELEMENT_IDS).map { element ->
194+
val element_ids = data.getJsonArray(DataConstants.ELEMENTS).map { element ->
194195
(element as JsonObject).getString("@id")
195196
}
196197
vertx.eventBus().send(DataConstants.TWCVERT_ADDRESS, Json.encode(Message(DataConstants.GET_ELEMENTS,
197198
JsonObject()
198199
.put(DataConstants.WORKSPACE_ID, workspaceId)
199200
.put(DataConstants.RESOURCE_ID, resourceId)
200201
.put(DataConstants.BRANCH_ID, branchId)
202+
.put(DataConstants.REVISION_ID, revisionId)
201203
.put(DataConstants.ELEMENT_IDS, element_ids)
202204
)))
203205
}

com.incquerylabs.vhci.modelaccess.twc.rest/src/main/kotlin/com/incquerylabs/vhci/modelaccess/twc/rest/verticles/RESTVerticle.kt

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -78,19 +78,19 @@ class RESTVerticle() : AbstractVerticle(){
7878
}
7979

8080
private fun getElements(client: WebClient, twcMap: LocalMap<Any, Any>, obj: JsonObject) {
81+
val workspaceId = obj.getString(DataConstants.WORKSPACE_ID)
82+
val resourceId = obj.getString(DataConstants.RESOURCE_ID)
83+
val branchId = obj.getString(DataConstants.BRANCH_ID)
84+
val revisionId = obj.getInteger(DataConstants.REVISION_ID)
85+
val elementIds = obj.getJsonArray(DataConstants.ELEMENT_IDS)
8186
vertx.sharedData().getCounter(DataConstants.QUERIES, { res ->
8287
if (res.succeeded()) {
8388
val counter = res.result()
84-
counter.incrementAndGet{}
89+
counter.addAndGet(elementIds.size().toLong(),{})
8590
} else {
8691
error("Counter: queries not available.")
8792
}
8893
})
89-
val workspaceId = obj.getString(DataConstants.WORKSPACE_ID)
90-
val resourceId = obj.getString(DataConstants.RESOURCE_ID)
91-
val branchId = obj.getString(DataConstants.BRANCH_ID)
92-
val revisionId = obj.getInteger(DataConstants.REVISION_ID)
93-
val elementIds = obj.getJsonArray(DataConstants.ELEMENT_IDS)
9494

9595
client.post(port,serverPath,
9696
"/osmc/workspaces/$workspaceId/resources/$resourceId/branches/$branchId/revisions/$revisionId/elements")
@@ -104,21 +104,18 @@ class RESTVerticle() : AbstractVerticle(){
104104

105105
val data = ar.result().bodyAsJsonObject()
106106

107-
elementIds.forEach { elementId ->
107+
val containedElements = elementIds.flatMap { elementId ->
108108
val element = data.getJsonArray(elementId as String)
109109
saveElement(elementId,element)
110-
110+
element.getJsonObject(0).getJsonArray("ldp:contains")
111+
}
112+
if(!containedElements.isEmpty()) {
113+
val elementM = Elements(revisionId,branchId,resourceId,workspaceId,JsonArray(containedElements))
114+
vertx.eventBus().send(DataConstants.TWCMAIN_ADDRESS, Json.encode(Message(DataConstants.ELEMENTS, elementM)))
111115
}
112-
113-
// saveElement(elementId,data)
114-
115-
// val element = Element(elementId,branchId,resourceId,workspaceId,
116-
// data.getJsonObject(0).getJsonArray("ldp:contains"))
117-
118-
// vertx.eventBus().send(DataConstants.TWCMAIN_ADDRESS, Json.encode(Message(DataConstants.ELEMENT, element)))
119116

120117
} else {
121-
println("${ar.result().statusCode()} : ${ar.result().statusMessage()}")
118+
println("getElements: ${ar.result().statusCode()} : ${ar.result().statusMessage()}")
122119
myError()
123120
}
124121
} else {
@@ -145,9 +142,10 @@ class RESTVerticle() : AbstractVerticle(){
145142
val workspaceId = obj.getString(DataConstants.WORKSPACE_ID)
146143
val resourceId = obj.getString(DataConstants.RESOURCE_ID)
147144
val branchId = obj.getString(DataConstants.BRANCH_ID)
145+
val revisionId = obj.getInteger(DataConstants.REVISION_ID)
148146
val elementId = obj.getString(DataConstants.ELEMENT_ID)
149147
client.get(port,serverPath,
150-
"/osmc/workspaces/${workspaceId}/resources/${resourceId}/branches/${branchId}/elements/${elementId}")
148+
"/osmc/workspaces/$workspaceId/resources/$resourceId/branches/$branchId/elements/$elementId")
151149
.putHeader("content-type","application/ld+json")
152150
.putHeader("Authorization", "${twcMap.get("credential")}")
153151
.putHeader("Cookie","${twcMap.get("user_cookie")}")
@@ -160,13 +158,13 @@ class RESTVerticle() : AbstractVerticle(){
160158

161159
saveElement(elementId,data)
162160

163-
val element = Element(elementId,branchId,resourceId,workspaceId,
161+
val element = Element(elementId,revisionId,branchId,resourceId,workspaceId,
164162
data.getJsonObject(0).getJsonArray("ldp:contains"))
165163

166164
vertx.eventBus().send(DataConstants.TWCMAIN_ADDRESS, Json.encode(Message(DataConstants.ELEMENT, element)))
167165

168166
} else {
169-
println("${ar.result().statusCode()} : ${ar.result().statusMessage()}")
167+
println("getRootElement: ${ar.result().statusCode()} : ${ar.result().statusMessage()}")
170168
myError()
171169
}
172170
} else {
@@ -234,7 +232,7 @@ class RESTVerticle() : AbstractVerticle(){
234232
vertx.eventBus().send(DataConstants.TWCMAIN_ADDRESS, Json.encode(Message(DataConstants.REVISION, revision)))
235233

236234
} else {
237-
println("${ar.result().statusCode()} : ${ar.result().statusMessage()}")
235+
println("getRootElementIds: ${ar.result().statusCode()} : ${ar.result().statusMessage()}")
238236
myError()
239237
}
240238
} else {

0 commit comments

Comments
 (0)