mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-07-04 11:24:35 -05:00
Update graphql-playground endpoint
This commit is contained in:
@@ -7,16 +7,14 @@
|
|||||||
|
|
||||||
package suwayomi.tachidesk.graphql
|
package suwayomi.tachidesk.graphql
|
||||||
|
|
||||||
import io.javalin.apibuilder.ApiBuilder.get
|
import io.javalin.apibuilder.ApiBuilder.*
|
||||||
import io.javalin.apibuilder.ApiBuilder.post
|
|
||||||
import suwayomi.tachidesk.graphql.controller.GraphQLController
|
import suwayomi.tachidesk.graphql.controller.GraphQLController
|
||||||
|
|
||||||
object GraphQL {
|
object GraphQL {
|
||||||
fun defineEndpoints() {
|
fun defineEndpoints() {
|
||||||
post("graphql", GraphQLController.execute)
|
post("graphql", GraphQLController.execute)
|
||||||
get("graphql") { ctx ->
|
|
||||||
val html = javaClass.getResource("/graphql.html")?.readText()
|
// graphql playground
|
||||||
ctx.html(html ?: "Could not load playground")
|
get("graphql", GraphQLController::playground)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
package suwayomi.tachidesk.graphql.controller
|
package suwayomi.tachidesk.graphql.controller
|
||||||
|
|
||||||
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
|
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
|
||||||
|
import io.javalin.http.Context
|
||||||
import io.javalin.http.HttpCode
|
import io.javalin.http.HttpCode
|
||||||
import suwayomi.tachidesk.graphql.impl.getGraphQLServer
|
import suwayomi.tachidesk.graphql.impl.getGraphQLServer
|
||||||
import suwayomi.tachidesk.server.JavalinSetup.future
|
import suwayomi.tachidesk.server.JavalinSetup.future
|
||||||
@@ -38,4 +39,19 @@ object GraphQLController {
|
|||||||
json<Any>(HttpCode.OK)
|
json<Any>(HttpCode.OK)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
fun playground(ctx: Context) {
|
||||||
|
val playgroundHtml = javaClass.getResource("/graphql-playground.html")
|
||||||
|
|
||||||
|
val body = playgroundHtml.openStream().bufferedReader().use { reader ->
|
||||||
|
val graphQLEndpoint = "graphql"
|
||||||
|
val subscriptionsEndpoint = "graphql"
|
||||||
|
|
||||||
|
reader.readText()
|
||||||
|
.replace("\${graphQLEndpoint}", graphQLEndpoint)
|
||||||
|
.replace("\${subscriptionsEndpoint}", subscriptionsEndpoint)
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx.html(body ?: "Could not load playground")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,9 +50,11 @@
|
|||||||
</div>
|
</div>
|
||||||
<script>window.addEventListener('load', function (event) {
|
<script>window.addEventListener('load', function (event) {
|
||||||
GraphQLPlayground.init(document.getElementById('root'), {
|
GraphQLPlayground.init(document.getElementById('root'), {
|
||||||
// options as 'endpoint' belong here
|
settings: {'request.credentials': 'same-origin'},
|
||||||
|
endpoint: '/${graphQLEndpoint}',
|
||||||
|
subscriptionEndpoint: '/${subscriptionsEndpoint}'
|
||||||
})
|
})
|
||||||
})</script>
|
})</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
Reference in New Issue
Block a user