Add port
field to the SearchResponse
class
This commit is contained in:
parent
3fc97ff6ea
commit
0ff94af54d
|
@ -37,4 +37,5 @@ data class SearchRequest(
|
|||
@Serializable
|
||||
data class SearchResponse(
|
||||
val ip: String,
|
||||
val port: Int,
|
||||
)
|
|
@ -128,22 +128,24 @@ fun Application.tracker() {
|
|||
}
|
||||
|
||||
get("/protected/search") {
|
||||
var request: SearchRequest? = null
|
||||
val request: SearchRequest?
|
||||
|
||||
try {
|
||||
request = call.receive()
|
||||
} catch (e: Exception) {
|
||||
call.respond(HttpStatusCode.BadRequest, "Invalid request")
|
||||
return@get call.respond(HttpStatusCode.BadRequest, "Invalid request")
|
||||
}
|
||||
|
||||
if (request != null) {
|
||||
val client = DatabaseHandler.getClient(request!!.id)
|
||||
val client = DatabaseHandler.getClient(request.id)
|
||||
|
||||
if (client!!.sampledClients == request!!.sampledClients) {
|
||||
call.respond(HttpStatusCode.OK, SearchResponse(client.ip))
|
||||
} else {
|
||||
call.respond(HttpStatusCode.BadRequest, "Invalid request")
|
||||
}
|
||||
if (client!!.port == null) {
|
||||
return@get call.respond(HttpStatusCode.BadRequest, "Invalid request")
|
||||
}
|
||||
|
||||
if (client.sampledClients == request.sampledClients) {
|
||||
return@get call.respond(HttpStatusCode.OK, SearchResponse(client.ip, client.port!!))
|
||||
} else {
|
||||
return@get call.respond(HttpStatusCode.BadRequest, "Invalid request")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -192,7 +192,7 @@ class TrackerApplicationKtTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
fun testSearchRequestCorrectBody() = testApplication {
|
||||
fun testSearchRequestCorrectBodyNoPort() = testApplication {
|
||||
val client = createClient {
|
||||
install(ContentNegotiation) {
|
||||
json()
|
||||
|
@ -213,7 +213,7 @@ class TrackerApplicationKtTest {
|
|||
)
|
||||
basicAuth("00000000-0000-0000-0000-000000000001", pw_hash)
|
||||
}.apply {
|
||||
assertEquals(200, this.status.value)
|
||||
assertEquals(400, this.status.value)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user