2018-05-03 14:07:02 +03:00
|
|
|
import com.devsoap.dbt.DBTModule
|
2018-02-25 07:43:48 +02:00
|
|
|
import com.devsoap.dbt.config.DBTConfig
|
2018-05-04 17:52:37 +03:00
|
|
|
import com.devsoap.dbt.demo.DatabaseService
|
2018-05-03 14:07:02 +03:00
|
|
|
import com.devsoap.dbt.services.TransactionManagerService
|
2018-02-25 07:43:48 +02:00
|
|
|
import org.h2.jdbcx.JdbcDataSource
|
2018-05-05 09:20:04 +03:00
|
|
|
import ratpack.form.Form
|
|
|
|
|
import ratpack.handlebars.HandlebarsModule
|
|
|
|
|
import ratpack.http.Status
|
2018-02-25 07:43:48 +02:00
|
|
|
|
|
|
|
|
import javax.sql.DataSource
|
|
|
|
|
|
|
|
|
|
import static ratpack.groovy.Groovy.ratpack
|
2018-05-05 09:20:04 +03:00
|
|
|
import static ratpack.handlebars.Template.handlebarsTemplate
|
2018-02-25 07:43:48 +02:00
|
|
|
|
|
|
|
|
ratpack {
|
|
|
|
|
|
|
|
|
|
serverConfig {
|
2018-05-03 14:07:02 +03:00
|
|
|
sysProps()
|
|
|
|
|
require('/dbt', DBTConfig)
|
2018-02-25 07:43:48 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bindings {
|
2018-05-05 09:20:04 +03:00
|
|
|
module HandlebarsModule
|
|
|
|
|
|
2018-05-03 14:07:02 +03:00
|
|
|
module (DBTModule) {
|
|
|
|
|
it.ledger.remoteUrl = 'http://localhost:5050/ledger'
|
|
|
|
|
it.executor.remoteUrl = 'http://localhost:5050/executor'
|
|
|
|
|
}
|
2018-02-25 07:43:48 +02:00
|
|
|
|
2018-05-03 14:07:02 +03:00
|
|
|
bindInstance(DataSource, new JdbcDataSource(url: 'jdbc:h2:mem:dbtdb;DB_CLOSE_DELAY=-1', user: ''))
|
|
|
|
|
bind DatabaseService
|
2018-02-25 07:43:48 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
handlers {
|
|
|
|
|
|
2018-05-05 09:20:04 +03:00
|
|
|
get {
|
|
|
|
|
render handlebarsTemplate('index.html')
|
2018-02-25 07:43:48 +02:00
|
|
|
}
|
|
|
|
|
|
2018-05-05 09:20:04 +03:00
|
|
|
post('addQueryToTransaction') {
|
|
|
|
|
def transactionManager = get(TransactionManagerService)
|
|
|
|
|
parse(Form).then { Form form ->
|
|
|
|
|
def query = form.get('query')
|
|
|
|
|
def transactionId = form.get('transactionId')
|
|
|
|
|
if(transactionId) {
|
|
|
|
|
transactionManager.execute(transactionId) {
|
|
|
|
|
it.query(query)
|
|
|
|
|
} .then {
|
|
|
|
|
response.send(it.toString())
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
transactionManager.execute {
|
|
|
|
|
it.query(query)
|
|
|
|
|
} .then {
|
|
|
|
|
response.send(it.toString())
|
|
|
|
|
}
|
|
|
|
|
}
|
2018-02-25 07:43:48 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-05 09:20:04 +03:00
|
|
|
post('executeTransaction') {
|
|
|
|
|
def transactionManager = get(TransactionManagerService)
|
|
|
|
|
parse(Form).then { Form form ->
|
|
|
|
|
def transactionId = form.get('transactionId')
|
|
|
|
|
transactionManager.execute(transactionId) {
|
|
|
|
|
it.complete()
|
|
|
|
|
}.onError {
|
|
|
|
|
response.status(Status.of(501))
|
|
|
|
|
response.send(it.message)
|
|
|
|
|
}.then {
|
|
|
|
|
response.send(it.toString())
|
|
|
|
|
}
|
2018-02-25 07:43:48 +02:00
|
|
|
}
|
|
|
|
|
}
|
2018-05-05 10:05:23 +03:00
|
|
|
|
|
|
|
|
post('executeQuery') {
|
|
|
|
|
def transactionManager = get(TransactionManagerService)
|
|
|
|
|
parse(Form).then { Form form ->
|
|
|
|
|
def query = form.get('query')
|
|
|
|
|
transactionManager.execute {
|
|
|
|
|
it.query(query).complete()
|
|
|
|
|
} .then {
|
|
|
|
|
response.send(it.toString())
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2018-02-25 07:43:48 +02:00
|
|
|
}
|
|
|
|
|
}
|