more stuff

This commit is contained in:
gowthaman 2023-11-06 12:09:13 +05:30
parent f54509cfa4
commit 203c2b97a7
3 changed files with 22 additions and 11 deletions

1
.idea/gradle.xml generated
View File

@ -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
View File

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

View File

@ -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}") {