commit 03/09/2025
This commit is contained in:
1
.idea/inspectionProfiles/Project_Default.xml
generated
1
.idea/inspectionProfiles/Project_Default.xml
generated
@@ -6,6 +6,7 @@
|
|||||||
<inspection_tool class="DuplicatedCode" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
<inspection_tool class="DuplicatedCode" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="EnumEntryName" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
<inspection_tool class="EnumEntryName" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="FunctionName" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
<inspection_tool class="FunctionName" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||||
|
<inspection_tool class="LocalVariableName" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="MethodNameSameAsClassName" enabled="false" level="WARNING" enabled_by_default="false" />
|
<inspection_tool class="MethodNameSameAsClassName" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="PropertyName" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
<inspection_tool class="PropertyName" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="RedundantCast" enabled="false" level="WARNING" enabled_by_default="false" />
|
<inspection_tool class="RedundantCast" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
|
|||||||
@@ -22,5 +22,23 @@
|
|||||||
<orderEntry type="library" name="fasterxml.jackson.module.kotlin" level="project" />
|
<orderEntry type="library" name="fasterxml.jackson.module.kotlin" level="project" />
|
||||||
<orderEntry type="library" name="fasterxml.jackson.core.databind" level="project" />
|
<orderEntry type="library" name="fasterxml.jackson.core.databind" level="project" />
|
||||||
<orderEntry type="library" name="github.oshi.core" level="project" />
|
<orderEntry type="library" name="github.oshi.core" level="project" />
|
||||||
|
<orderEntry type="module-library">
|
||||||
|
<library>
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://C:/SLC/Apache POI/poi-5.4.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</orderEntry>
|
||||||
|
<orderEntry type="module-library">
|
||||||
|
<library>
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://C:/SLC/Apache POI/poi-ooxml-5.4.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</orderEntry>
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package database
|
package database
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
data class BroadcastZones(val index: UInt, val description: String, val SoundChannel: String, val Box: String, val Relay: String)
|
data class BroadcastZones(var index: UInt, var description: String, var SoundChannel: String, var Box: String, var Relay: String)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package database
|
package database
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
data class IpZones(val index:UInt, val description: String, val ip: String)
|
data class IpZones(var index:UInt, var description: String, var ip: String)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package database
|
package database
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
data class LanguageLink(val index: UInt, val TAG: String, val Language: String)
|
data class LanguageLink(var index: UInt, var TAG: String, var Language: String)
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,11 +1,11 @@
|
|||||||
package database
|
package database
|
||||||
|
|
||||||
data class Messagebank(
|
data class Messagebank(
|
||||||
val index : UInt,
|
var index : UInt,
|
||||||
val Description: String,
|
var Description: String,
|
||||||
val Language: String,
|
var Language: String,
|
||||||
val ANN_ID : UInt,
|
var ANN_ID : UInt,
|
||||||
val Voice_Type: String,
|
var Voice_Type: String,
|
||||||
val Message_Detail: String,
|
var Message_Detail: String,
|
||||||
val Message_TAGS: String
|
var Message_TAGS: String
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package database
|
package database
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
data class QueueFids(val index: UInt, val ALCODE: String, val FLNUM: String, val ORIGIN: String, val ETAD: String, val FREMARK: String)
|
data class QueueFids(var index: UInt, var ALCODE: String, var FLNUM: String, var ORIGIN: String, var ETAD: String, var FREMARK: String)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package database
|
package database
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
data class QueuePaging(val index: UInt, val Date_Time: String, val Source: String, val Type: String, val Message: String, val BroadcastZones: String)
|
data class QueuePaging(var index: UInt, var Date_Time: String, var Source: String, var Type: String, var Message: String, var BroadcastZones: String)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package database
|
package database
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
data class QueueTable(val index: UInt, val Date_Time: String, val Source: String, val Type: String, val Message: String, val SB_TAGS: String, val BroadcastZones: String, val Repeat: UInt, val Language: String)
|
data class QueueTable(var index: UInt, var Date_Time: String, var Source: String, var Type: String, var Message: String, var SB_TAGS: String, var BroadcastZones: String, var Repeat: UInt, var Language: String)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package database
|
package database
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
data class ScheduleBank(val index: UInt, val Description: String, val Day: String, val Time: String, val Soundpath: String, val Repeat: UByte, val Enable: Boolean, val BroadcastZones: String, val Language: String)
|
data class ScheduleBank(var index: UInt, var Description: String, var Day: String, var Time: String, var Soundpath: String, var Repeat: UByte, var Enable: Boolean, var BroadcastZones: String, var Language: String)
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package database
|
package database
|
||||||
|
|
||||||
data class Soundbank(
|
data class Soundbank(
|
||||||
val index: UInt,
|
var index: UInt,
|
||||||
val Description: String,
|
var Description: String,
|
||||||
val TAG : String,
|
var TAG : String,
|
||||||
val Category: String,
|
var Category: String,
|
||||||
val Language: String,
|
var Language: String,
|
||||||
val VoiceType: String,
|
var VoiceType: String,
|
||||||
val Path: String,
|
var Path: String,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package database
|
package database
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
data class UserDB(val index: UInt, val username: String, val password: String, val location: String)
|
data class UserDB(var index: UInt, var username: String, var password: String, var location: String)
|
||||||
|
|||||||
@@ -2,17 +2,23 @@ package web
|
|||||||
|
|
||||||
import codes.Somecodes
|
import codes.Somecodes
|
||||||
import codes.Somecodes.Companion.ValidDate
|
import codes.Somecodes.Companion.ValidDate
|
||||||
|
import codes.Somecodes.Companion.ValidFile
|
||||||
import codes.Somecodes.Companion.ValidString
|
import codes.Somecodes.Companion.ValidString
|
||||||
|
import com.fasterxml.jackson.databind.JsonNode
|
||||||
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
|
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
|
||||||
|
import content.Category
|
||||||
import database.MariaDB
|
import database.MariaDB
|
||||||
|
import database.Soundbank
|
||||||
import io.javalin.Javalin
|
import io.javalin.Javalin
|
||||||
import io.javalin.apibuilder.ApiBuilder.before
|
import io.javalin.apibuilder.ApiBuilder.before
|
||||||
import io.javalin.apibuilder.ApiBuilder.delete
|
import io.javalin.apibuilder.ApiBuilder.delete
|
||||||
import io.javalin.apibuilder.ApiBuilder.get
|
import io.javalin.apibuilder.ApiBuilder.get
|
||||||
|
import io.javalin.apibuilder.ApiBuilder.patch
|
||||||
import io.javalin.apibuilder.ApiBuilder.path
|
import io.javalin.apibuilder.ApiBuilder.path
|
||||||
import io.javalin.apibuilder.ApiBuilder.post
|
import io.javalin.apibuilder.ApiBuilder.post
|
||||||
import io.javalin.apibuilder.ApiBuilder.ws
|
import io.javalin.apibuilder.ApiBuilder.ws
|
||||||
import io.javalin.http.Context
|
import io.javalin.http.Context
|
||||||
|
import io.javalin.json.JavalinJackson
|
||||||
import io.javalin.websocket.WsMessageContext
|
import io.javalin.websocket.WsMessageContext
|
||||||
import java.time.LocalDateTime
|
import java.time.LocalDateTime
|
||||||
|
|
||||||
@@ -36,6 +42,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
|||||||
config ->
|
config ->
|
||||||
config.useVirtualThreads = true
|
config.useVirtualThreads = true
|
||||||
config.staticFiles.add("/webpage")
|
config.staticFiles.add("/webpage")
|
||||||
|
config.jsonMapper(JavalinJackson(jacksonObjectMapper()))
|
||||||
config.router.apiBuilder {
|
config.router.apiBuilder {
|
||||||
path("/"){
|
path("/"){
|
||||||
get { ctx ->
|
get { ctx ->
|
||||||
@@ -133,143 +140,250 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
|||||||
}
|
}
|
||||||
path("soundbank.html") {
|
path("soundbank.html") {
|
||||||
before {CheckUsers(it)}
|
before {CheckUsers(it)}
|
||||||
get("List"){
|
|
||||||
// get soundbank list
|
|
||||||
it.result(MariaDB.ArrayListtoString(db.SoundbankList))
|
|
||||||
}
|
|
||||||
delete("List"){
|
|
||||||
// truncate soundbank table
|
|
||||||
if (db.Clear_Soundbank()){
|
|
||||||
it.result("OK")
|
|
||||||
} else {
|
|
||||||
it.status(500).result("Failed to truncate soundbank table")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
delete("DeleteByIndex/{index}"){
|
|
||||||
// delete by index
|
|
||||||
val index = it.pathParam("index").toUIntOrNull()
|
|
||||||
if (index == null){
|
|
||||||
it.status(400).result("Invalid index")
|
|
||||||
} else{
|
|
||||||
if (db.Delete_Soundbank_by_index(index)){
|
|
||||||
it.result("OK")
|
|
||||||
} else {
|
|
||||||
it.status(500).result("Failed to delete soundbank with index $index")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
path("messagebank.html") {
|
path("messagebank.html") {
|
||||||
before { CheckUsers(it) }
|
before { CheckUsers(it) }
|
||||||
get("List"){
|
|
||||||
// get messagebank list
|
|
||||||
it.result(MariaDB.ArrayListtoString(db.MessagebankList))
|
|
||||||
}
|
|
||||||
delete("List"){
|
|
||||||
// truncate messagebank table
|
|
||||||
if (db.Clear_Messagebank()){
|
|
||||||
it.result("OK")
|
|
||||||
} else {
|
|
||||||
it.status(500).result("Failed to truncate messagebank table")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
delete("DeleteByIndex/{index}"){
|
|
||||||
// delete by index
|
|
||||||
val index = it.pathParam("index").toUIntOrNull()
|
|
||||||
if (index == null){
|
|
||||||
it.status(400).result("Invalid index")
|
|
||||||
} else{
|
|
||||||
if (db.Delete_Messagebank_by_index(index)){
|
|
||||||
it.result("OK")
|
|
||||||
} else {
|
|
||||||
it.status(500).result("Failed to delete messagebank with index $index")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
path("language.html") {
|
path("language.html") {
|
||||||
before { CheckUsers(it) }
|
before { CheckUsers(it) }
|
||||||
get("List"){
|
|
||||||
// get language link list
|
|
||||||
it.result(MariaDB.ArrayListtoString(db.LanguageLinkList))
|
|
||||||
}
|
|
||||||
delete("List"){
|
|
||||||
// truncate language link table
|
|
||||||
if (db.Clear_LanguageLink()){
|
|
||||||
it.result("OK")
|
|
||||||
} else {
|
|
||||||
it.status(500).result("Failed to truncate language link table")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
delete("DeleteByIndex/{index}"){
|
|
||||||
// delete by index
|
|
||||||
val index = it.pathParam("index").toUIntOrNull()
|
|
||||||
if (index == null){
|
|
||||||
it.status(400).result("Invalid index")
|
|
||||||
} else{
|
|
||||||
if (db.Delete_LanguageLink_by_index(index)){
|
|
||||||
it.result("OK")
|
|
||||||
} else {
|
|
||||||
it.status(500).result("Failed to delete language link with index $index")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
path("log.html") {
|
path("log.html") {
|
||||||
before { CheckUsers(it) }
|
before { CheckUsers(it) }
|
||||||
get("List/<logdate>/<logfilter>"){ get1 ->
|
|
||||||
val logdate = get1.pathParam("logdate")
|
|
||||||
val logfilter = get1.pathParam("logfilter")
|
|
||||||
if (ValidDate(logdate)){
|
|
||||||
if (ValidString(logfilter)){
|
|
||||||
// ada log filter
|
|
||||||
db.GetLog(logdate, logfilter){
|
|
||||||
get1.result(MariaDB.ArrayListtoString(it))
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
db.GetLog(logdate){
|
|
||||||
get1.result(MariaDB.ArrayListtoString(it))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else get1.status(400).result("Invalid logdate")
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
path("setting.html") {
|
path("setting.html") {
|
||||||
before { CheckUsers(it) }
|
before { CheckUsers(it) }
|
||||||
|
|
||||||
}
|
}
|
||||||
path("timer.html") {
|
path("timer.html") {
|
||||||
before { CheckUsers(it) }
|
before { CheckUsers(it) }
|
||||||
get("List"){
|
}
|
||||||
// get timer list
|
path("api"){
|
||||||
it.result(MariaDB.ArrayListtoString(db.SchedulebankList))
|
path("SoundBank"){
|
||||||
}
|
get("List"){
|
||||||
delete("List"){
|
// get soundbank list
|
||||||
// truncate timer table
|
it.result(MariaDB.ArrayListtoString(db.SoundbankList))
|
||||||
if (db.Clear_Schedulebank()){
|
|
||||||
it.result("OK")
|
|
||||||
} else {
|
|
||||||
it.status(500).result("Failed to truncate schedulebank table")
|
|
||||||
}
|
}
|
||||||
}
|
post("Add"){
|
||||||
delete("DeleteByIndex/{index}"){
|
try {
|
||||||
// delete by index
|
val addvalue = objectmapper.readValue(it.body(), Soundbank::class.java)
|
||||||
val index = it.pathParam("index").toUIntOrNull()
|
if (ValidString(addvalue.Description)){
|
||||||
if (index == null){
|
if (ValidString(addvalue.TAG)){
|
||||||
it.status(400).result("Invalid index")
|
if (ValidString(addvalue.Category)){
|
||||||
} else{
|
if (ValidString(addvalue.Language)){
|
||||||
if (db.Delete_Schedulebank_by_index(index)){
|
if (ValidString(addvalue.Path)){
|
||||||
|
// check apakah TAG sudah ada untuk language dan category yang sama
|
||||||
|
val exists = db.SoundbankList.any { sb ->
|
||||||
|
sb.TAG == addvalue.TAG && sb.Language == addvalue.Language && sb.Category == addvalue.Category
|
||||||
|
}
|
||||||
|
if (!exists){
|
||||||
|
if (ValidFile(addvalue.Path)){
|
||||||
|
if (db.Add_Soundbank(addvalue)){
|
||||||
|
it.result("OK")
|
||||||
|
} else it.status(500).result("Failed to add soundbank to database")
|
||||||
|
} else it.status(400).result("Invalid Path, file does not exist")
|
||||||
|
} else it.status(400).result("TAG=${addvalue.TAG} already exists for the same Language=${addvalue.Language} and Category=${addvalue.Category}")
|
||||||
|
} else it.status(400).result("Invalid Path")
|
||||||
|
} else it.status(400).result("Invalid Language")
|
||||||
|
} else it.status(400).result("Invalid Category")
|
||||||
|
} else it.status(400).result("Invalid TAG")
|
||||||
|
} else it.status(400).result("Invalid Description")
|
||||||
|
} catch (_: Exception){
|
||||||
|
it.status(400).result("Invalid request body")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delete("List"){
|
||||||
|
// truncate soundbank table
|
||||||
|
if (db.Clear_Soundbank()){
|
||||||
it.result("OK")
|
it.result("OK")
|
||||||
} else {
|
} else {
|
||||||
it.status(500).result("Failed to delete schedule with index $index")
|
it.status(500).result("Failed to truncate soundbank table")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
delete("DeleteByIndex/{index}"){
|
||||||
|
// delete by index
|
||||||
|
val index = it.pathParam("index").toUIntOrNull()
|
||||||
|
if (index == null){
|
||||||
|
it.status(400).result("Invalid index")
|
||||||
|
} else{
|
||||||
|
if (db.Delete_Soundbank_by_index(index)){
|
||||||
|
it.result("OK")
|
||||||
|
} else {
|
||||||
|
it.status(500).result("Failed to delete soundbank with index $index")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
patch("UpdateByIndex/{index}"){
|
||||||
|
// update by index
|
||||||
|
val index = it.pathParam("index").toUIntOrNull()
|
||||||
|
if (index == null){
|
||||||
|
// tidak ada path param index
|
||||||
|
it.status(400).result("Invalid index")
|
||||||
|
} else {
|
||||||
|
val sb = db.SoundbankList.find{ xx -> xx.index == index }
|
||||||
|
if (sb == null){
|
||||||
|
// soundbank dengan index tersebut tidak ditemukan
|
||||||
|
it.status(404).result("Soundbank with index $index not found")
|
||||||
|
} else {
|
||||||
|
// soundbank dengan index tersebut ditemukan, sekarang update
|
||||||
|
val json : JsonNode = objectmapper.readTree(it.body())
|
||||||
|
if (json.isEmpty){
|
||||||
|
it.status(400).result("UpdateByIndex with index=$index has empty body")
|
||||||
|
} else {
|
||||||
|
val _description = json.get("Description").asText()
|
||||||
|
val _tag = json.get("TAG").asText()
|
||||||
|
val _category = json.get("Category").asText()
|
||||||
|
val _language = json.get("Language").asText()
|
||||||
|
val _path = json.get("Path").asText()
|
||||||
|
var changed = false
|
||||||
|
if (ValidString(_description) && _description!=sb.Description){
|
||||||
|
sb.Description = _description
|
||||||
|
changed = true
|
||||||
|
}
|
||||||
|
if (ValidString(_tag) && _tag!=sb.TAG){
|
||||||
|
sb.TAG = _tag
|
||||||
|
changed = true
|
||||||
|
}
|
||||||
|
if (ValidString(_category) && _category!=sb.Category){
|
||||||
|
if (Category.entries.any {
|
||||||
|
cat -> cat.name == _category
|
||||||
|
}) {
|
||||||
|
sb.Category = _category
|
||||||
|
changed = true
|
||||||
|
} else {
|
||||||
|
it.status(400).result("Invalid Category")
|
||||||
|
return@patch
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ValidString(_language) && _language!=sb.Language){
|
||||||
|
sb.Language = _language
|
||||||
|
changed = true
|
||||||
|
}
|
||||||
|
if (ValidString(_path) && _path!=sb.Path){
|
||||||
|
if (ValidFile(_path)){
|
||||||
|
sb.Path = _path
|
||||||
|
changed = true
|
||||||
|
} else {
|
||||||
|
it.status(400).result("Invalid Path, file does not exist")
|
||||||
|
return@patch
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (changed){
|
||||||
|
if (db.Update_Soundbank_by_index(index, sb)){
|
||||||
|
it.result("OK")
|
||||||
|
} else it.status(500).result("Failed to update soundbank with index $index")
|
||||||
|
} else it.status(400).result("Nothing has changed for soundbank with index $index")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
get("ExportXLSX"){
|
||||||
|
|
||||||
|
}
|
||||||
|
post("ImportXLSX"){
|
||||||
|
val uploaded = it.uploadedFile("file")
|
||||||
|
if (uploaded==null){
|
||||||
|
it.status(400).result("No file uploaded")
|
||||||
|
return@post
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
path("MessageBank"){
|
||||||
|
get("List"){
|
||||||
|
// get messagebank list
|
||||||
|
it.result(MariaDB.ArrayListtoString(db.MessagebankList))
|
||||||
|
}
|
||||||
|
delete("List"){
|
||||||
|
// truncate messagebank table
|
||||||
|
if (db.Clear_Messagebank()){
|
||||||
|
it.result("OK")
|
||||||
|
} else {
|
||||||
|
it.status(500).result("Failed to truncate messagebank table")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delete("DeleteByIndex/{index}"){
|
||||||
|
// delete by index
|
||||||
|
val index = it.pathParam("index").toUIntOrNull()
|
||||||
|
if (index == null){
|
||||||
|
it.status(400).result("Invalid index")
|
||||||
|
} else{
|
||||||
|
if (db.Delete_Messagebank_by_index(index)){
|
||||||
|
it.result("OK")
|
||||||
|
} else {
|
||||||
|
it.status(500).result("Failed to delete messagebank with index $index")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
path("LanguageLink"){
|
||||||
|
get("List"){
|
||||||
|
// get language link list
|
||||||
|
it.result(MariaDB.ArrayListtoString(db.LanguageLinkList))
|
||||||
|
}
|
||||||
|
delete("List"){
|
||||||
|
// truncate language link table
|
||||||
|
if (db.Clear_LanguageLink()){
|
||||||
|
it.result("OK")
|
||||||
|
} else {
|
||||||
|
it.status(500).result("Failed to truncate language link table")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delete("DeleteByIndex/{index}"){
|
||||||
|
// delete by index
|
||||||
|
val index = it.pathParam("index").toUIntOrNull()
|
||||||
|
if (index == null){
|
||||||
|
it.status(400).result("Invalid index")
|
||||||
|
} else{
|
||||||
|
if (db.Delete_LanguageLink_by_index(index)){
|
||||||
|
it.result("OK")
|
||||||
|
} else {
|
||||||
|
it.status(500).result("Failed to delete language link with index $index")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
path("ScheduleBank"){
|
||||||
|
get("List"){
|
||||||
|
// get timer list
|
||||||
|
it.result(MariaDB.ArrayListtoString(db.SchedulebankList))
|
||||||
|
}
|
||||||
|
delete("List"){
|
||||||
|
// truncate timer table
|
||||||
|
if (db.Clear_Schedulebank()){
|
||||||
|
it.result("OK")
|
||||||
|
} else {
|
||||||
|
it.status(500).result("Failed to truncate schedulebank table")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delete("DeleteByIndex/{index}"){
|
||||||
|
// delete by index
|
||||||
|
val index = it.pathParam("index").toUIntOrNull()
|
||||||
|
if (index == null){
|
||||||
|
it.status(400).result("Invalid index")
|
||||||
|
} else{
|
||||||
|
if (db.Delete_Schedulebank_by_index(index)){
|
||||||
|
it.result("OK")
|
||||||
|
} else {
|
||||||
|
it.status(500).result("Failed to delete schedule with index $index")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
path("Log"){
|
||||||
|
get("List/<logdate>/<logfilter>"){ get1 ->
|
||||||
|
val logdate = get1.pathParam("logdate")
|
||||||
|
val logfilter = get1.pathParam("logfilter")
|
||||||
|
if (ValidDate(logdate)){
|
||||||
|
if (ValidString(logfilter)){
|
||||||
|
// ada log filter
|
||||||
|
db.GetLog(logdate, logfilter){
|
||||||
|
get1.result(MariaDB.ArrayListtoString(it))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
db.GetLog(logdate){
|
||||||
|
get1.result(MariaDB.ArrayListtoString(it))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else get1.status(400).result("Invalid logdate")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user