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"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings"> <component name="GradleSettings">
<option name="linkedExternalProjectsSettings"> <option name="linkedExternalProjectsSettings">
<GradleProjectSettings> <GradleProjectSettings>

2
.idea/misc.xml generated
View File

@ -9,7 +9,7 @@
<list /> <list />
</option> </option>
</component> </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" /> <output url="file://$PROJECT_DIR$/out" />
</component> </component>
</project> </project>

View File

@ -3,20 +3,13 @@ package com.readymixerp
import com.readymixerp.domain.DataModel import com.readymixerp.domain.DataModel
import com.readymixerp.domain.Session import com.readymixerp.domain.Session
import com.readymixerp.domain.Session.database import com.readymixerp.domain.Session.database
import io.ebean.CallableSql
import io.ebean.DuplicateKeyException import io.ebean.DuplicateKeyException
import io.ebean.RawSql
import io.ebean.RawSqlBuilder import io.ebean.RawSqlBuilder
import io.javalin.Javalin import io.javalin.Javalin
import io.javalin.apibuilder.ApiBuilder.before import io.javalin.apibuilder.ApiBuilder.*
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.http.* import io.javalin.http.*
import io.javalin.json.JavalinJackson import io.javalin.json.JavalinJackson
import io.javalin.plugin.bundled.CorsContainer
import java.time.LocalDateTime import java.time.LocalDateTime
fun main(args: Array<String>) { fun main(args: Array<String>) {
@ -41,6 +34,17 @@ fun main(args: Array<String>) {
//validate, auth token //validate, auth token
} }
path("/api") { 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}") { get("/{entity}/{id}") {
it.json( it.json(
database.find(DataModel::class.java, it.pathParam("id")) ?: throw NotFoundResponse() database.find(DataModel::class.java, it.pathParam("id")) ?: throw NotFoundResponse()
@ -63,7 +67,13 @@ fun main(args: Array<String>) {
} }
post("/{entity}") { post("/{entity}") {
database.save( 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}") { put("/{entity}/{id}") {