more stuff
This commit is contained in:
parent
f54509cfa4
commit
203c2b97a7
1
.idea/gradle.xml
generated
1
.idea/gradle.xml
generated
@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GradleMigrationSettings" migrationVersion="1" />
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
|
||||
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@ -9,7 +9,7 @@
|
||||
<list />
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="corretto-17 (2)" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="semeru-17" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
||||
@ -3,20 +3,13 @@ package com.readymixerp
|
||||
import com.readymixerp.domain.DataModel
|
||||
import com.readymixerp.domain.Session
|
||||
import com.readymixerp.domain.Session.database
|
||||
import io.ebean.CallableSql
|
||||
import io.ebean.DuplicateKeyException
|
||||
import io.ebean.RawSql
|
||||
import io.ebean.RawSqlBuilder
|
||||
import io.javalin.Javalin
|
||||
import io.javalin.apibuilder.ApiBuilder.before
|
||||
import io.javalin.apibuilder.ApiBuilder.get
|
||||
import io.javalin.apibuilder.ApiBuilder.post
|
||||
import io.javalin.apibuilder.ApiBuilder.delete
|
||||
import io.javalin.apibuilder.ApiBuilder.path
|
||||
import io.javalin.apibuilder.ApiBuilder.put
|
||||
import io.javalin.apibuilder.ApiBuilder.patch
|
||||
import io.javalin.apibuilder.ApiBuilder.*
|
||||
import io.javalin.http.*
|
||||
import io.javalin.json.JavalinJackson
|
||||
import io.javalin.plugin.bundled.CorsContainer
|
||||
import java.time.LocalDateTime
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
@ -41,6 +34,17 @@ fun main(args: Array<String>) {
|
||||
//validate, auth token
|
||||
}
|
||||
path("/api") {
|
||||
post("/execute/{name}"){
|
||||
val name = it.pathParam("name")
|
||||
val params = it.bodyAsClass<Map<String,Any>>()
|
||||
val placeholders = (0..params.entries.size).joinToString(",") { "?" }
|
||||
val sql = "{call $name($placeholders)}"
|
||||
val cs: CallableSql = database.createCallableSql(sql)
|
||||
params.entries.forEachIndexed { index, entry ->
|
||||
cs.setParameter(index + 1, entry.value)
|
||||
}
|
||||
database.execute(cs)
|
||||
}
|
||||
get("/{entity}/{id}") {
|
||||
it.json(
|
||||
database.find(DataModel::class.java, it.pathParam("id")) ?: throw NotFoundResponse()
|
||||
@ -63,7 +67,13 @@ fun main(args: Array<String>) {
|
||||
}
|
||||
post("/{entity}") {
|
||||
database.save(
|
||||
it.bodyAsClass<DataModel>()
|
||||
it.bodyAsClass<DataModel>().apply {
|
||||
this.entityName = it.pathParam("entity")
|
||||
if(this.uniqueIdentifier.isEmpty()) {
|
||||
//todo: set a counter
|
||||
}
|
||||
this.uniqueIdentifier = "${this.entityName}_${this.uniqueIdentifier}"
|
||||
}
|
||||
)
|
||||
}
|
||||
put("/{entity}/{id}") {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user