1
Files
dbt/dbt-demo/src/ratpack/Ratpack.groovy

77 lines
1.9 KiB
Groovy
Raw Normal View History

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
}
}
}
}