commit 11/09/2025
This commit is contained in:
@@ -3,7 +3,6 @@ package web
|
||||
import codes.Somecodes
|
||||
import codes.Somecodes.Companion.ListAudioFiles
|
||||
import codes.Somecodes.Companion.ValiDateForLogHtml
|
||||
import codes.Somecodes.Companion.ValidDate
|
||||
import codes.Somecodes.Companion.ValidFile
|
||||
import codes.Somecodes.Companion.ValidScheduleDay
|
||||
import codes.Somecodes.Companion.ValidScheduleTime
|
||||
@@ -66,13 +65,13 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
val username = it.formParam("username")
|
||||
val password = it.formParam("password")
|
||||
if (username == null || password == null) {
|
||||
it.status(400).result("Username and password are required")
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Username and password are required")))
|
||||
return@post
|
||||
}
|
||||
// Check if user exists in userlist
|
||||
val user = userlist.find { it.first == username && it.second == password }
|
||||
if (user == null) {
|
||||
it.status(401).result("Invalid username or password")
|
||||
it.status(401).result(objectmapper.writeValueAsString(resultMessage("Invalid username or password")))
|
||||
return@post
|
||||
}
|
||||
// Set user session
|
||||
@@ -208,40 +207,43 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
if (!exists) {
|
||||
if (ValidFile(addvalue.Path)) {
|
||||
if (db.Add_Soundbank(addvalue)) {
|
||||
it.result(objectmapper.writeValueAsString(mapOf("message" to "OK")))
|
||||
db.Resort_Soundbank_by_Description()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else it.status(500)
|
||||
.result("Failed to add soundbank to database")
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to add soundbank to database")))
|
||||
} else it.status(400)
|
||||
.result("Invalid Path, file does not exist")
|
||||
.result(objectmapper.writeValueAsString(resultMessage("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(objectmapper.writeValueAsString(mapOf("message" to "Invalid Language")))
|
||||
} else it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "Invalid Category")))
|
||||
} else it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "Invalid TAG")))
|
||||
} else it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "Invalid Description")))
|
||||
.result(objectmapper.writeValueAsString(resultMessage("TAG=${addvalue.TAG} already exists for the same Language=${addvalue.Language} and Category=${addvalue.Category}")))
|
||||
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Path")))
|
||||
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Language")))
|
||||
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Category")))
|
||||
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid TAG")))
|
||||
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Description")))
|
||||
} catch (_: Exception) {
|
||||
it.status(400).result("Invalid request body")
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid request body")))
|
||||
}
|
||||
}
|
||||
delete("List") {
|
||||
// truncate soundbank table
|
||||
if (db.Clear_Soundbank()) {
|
||||
it.result(objectmapper.writeValueAsString(mapOf("message" to "OK")))
|
||||
db.Reload_Soundbank()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result("Failed to truncate soundbank table")
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to truncate soundbank table")))
|
||||
}
|
||||
}
|
||||
delete("DeleteByIndex/{index}") {
|
||||
// delete by index
|
||||
val index = it.pathParam("index").toUIntOrNull()
|
||||
if (index == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "Invalid index")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid index")))
|
||||
} else {
|
||||
if (db.Delete_Soundbank_by_index(index)) {
|
||||
it.result(objectmapper.writeValueAsString(mapOf("message" to "OK")))
|
||||
db.Resort_Soundbank_by_Description()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result("Failed to delete soundbank with index $index")
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to delete soundbank with index $index")))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -250,17 +252,17 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
val index = it.pathParam("index").toUIntOrNull()
|
||||
if (index == null) {
|
||||
// tidak ada path param index
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "Invalid index")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("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")
|
||||
it.status(404).result(objectmapper.writeValueAsString(resultMessage("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(objectmapper.writeValueAsString(mapOf("message" to "UpdateByIndex with index=$index has empty body")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("UpdateByIndex with index=$index has empty body")))
|
||||
} else {
|
||||
val _description = json.get("Description").asText()
|
||||
val _tag = json.get("TAG").asText()
|
||||
@@ -283,7 +285,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
sb.Category = _category
|
||||
changed = true
|
||||
} else {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "Invalid Category")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Category")))
|
||||
return@patch
|
||||
}
|
||||
}
|
||||
@@ -296,16 +298,17 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
sb.Path = _path
|
||||
changed = true
|
||||
} else {
|
||||
it.status(400).result("Invalid Path, file does not exist")
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Path, file does not exist")))
|
||||
return@patch
|
||||
}
|
||||
}
|
||||
if (changed) {
|
||||
if (db.Update_Soundbank_by_index(index, sb)) {
|
||||
it.result(objectmapper.writeValueAsString(mapOf("message" to "OK")))
|
||||
} else it.status(500).result("Failed to update soundbank with index $index")
|
||||
db.Resort_Soundbank_by_Description()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to update soundbank with index $index")))
|
||||
} else it.status(400)
|
||||
.result("Nothing has changed for soundbank with index $index")
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Nothing has changed for soundbank with index $index")))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -322,24 +325,25 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
xlsxdata.write(out)
|
||||
}
|
||||
} else {
|
||||
it.status(500).result("Failed to export soundbank to XLSX")
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to export soundbank to XLSX")))
|
||||
}
|
||||
}
|
||||
post("ImportXLSX") {
|
||||
val uploaded = it.uploadedFile("file")
|
||||
if (uploaded == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "No file uploaded")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("No file uploaded")))
|
||||
return@post
|
||||
}
|
||||
try {
|
||||
val xlsx = XSSFWorkbook(uploaded.content())
|
||||
if (db.Import_Soundbank_XLSX(xlsx)) {
|
||||
it.result(objectmapper.writeValueAsString(mapOf("message" to "OK")))
|
||||
db.Resort_Soundbank_by_Description()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result("Failed to import soundbank from XLSX")
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to import soundbank from XLSX")))
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "Invalid XLSX file")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid XLSX file")))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -354,21 +358,23 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
delete("List") {
|
||||
// truncate messagebank table
|
||||
if (db.Clear_Messagebank()) {
|
||||
it.result(objectmapper.writeValueAsString(mapOf("message" to "OK")))
|
||||
db.Reload_Messagebank()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(mapOf("message" to "Failed to truncate messagebank table")))
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to truncate messagebank table")))
|
||||
}
|
||||
}
|
||||
delete("DeleteByIndex/{index}") {
|
||||
// delete by index
|
||||
val index = it.pathParam("index").toUIntOrNull()
|
||||
if (index == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "Invalid index")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid index")))
|
||||
} else {
|
||||
if (db.Delete_Messagebank_by_index(index)) {
|
||||
it.result(objectmapper.writeValueAsString(mapOf("message" to "OK")))
|
||||
db.Resort_Messagebank_by_ANN_ID()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(mapOf("message" to "Failed to delete messagebank with index $index")))
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to delete messagebank with index $index")))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -376,15 +382,15 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
// update messagebank by index
|
||||
val index = it.pathParam("index").toUIntOrNull()
|
||||
if (index == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "Invalid index")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid index")))
|
||||
} else {
|
||||
val mb = db.MessagebankList.find { xx -> xx.index == index }
|
||||
if (mb == null) {
|
||||
it.status(404).result(objectmapper.writeValueAsString(mapOf("message" to "Messagebank with index $index not found")))
|
||||
it.status(404).result(objectmapper.writeValueAsString(resultMessage("Messagebank with index $index not found")))
|
||||
} else {
|
||||
val json: JsonNode = objectmapper.readTree(it.body())
|
||||
if (json.isEmpty) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "UpdateByIndex with index=$index has empty body")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("UpdateByIndex with index=$index has empty body")))
|
||||
} else {
|
||||
val _description = json.get("Description").asText()
|
||||
val _language = json.get("Language").asText()
|
||||
@@ -411,7 +417,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
mb.Voice_Type = _voice_type
|
||||
changed = true
|
||||
} else {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "Invalid Voice_Type")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Voice_Type")))
|
||||
return@patch
|
||||
}
|
||||
}
|
||||
@@ -425,11 +431,12 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
}
|
||||
if (changed) {
|
||||
if (db.Update_Messagebank_by_index(index, mb)) {
|
||||
it.result(objectmapper.writeValueAsString(mapOf("message" to "OK")))
|
||||
db.Resort_Messagebank_by_ANN_ID()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else it.status(500)
|
||||
.result(objectmapper.writeValueAsString(mapOf("message" to "Failed to update messagebank with index $index")))
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to update messagebank with index $index")))
|
||||
} else it.status(400)
|
||||
.result(objectmapper.writeValueAsString(mapOf("message" to "Nothing has changed for messagebank with index $index")))
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Nothing has changed for messagebank with index $index")))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -446,24 +453,25 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
xlsxdata.write(out)
|
||||
}
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(mapOf("message" to "Failed to export messagebank to XLSX")))
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to export messagebank to XLSX")))
|
||||
}
|
||||
}
|
||||
post("ImportXLSX") {
|
||||
val uploaded = it.uploadedFile("file")
|
||||
if (uploaded == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "No file uploaded")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("No file uploaded")))
|
||||
return@post
|
||||
}
|
||||
try {
|
||||
val xlsx = XSSFWorkbook(uploaded.content())
|
||||
if (db.Import_Messagebank_XLSX(xlsx)) {
|
||||
it.result(objectmapper.writeValueAsString(mapOf("message" to "OK")))
|
||||
db.Resort_Messagebank_by_ANN_ID()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(mapOf("message" to "Failed to import messagebank from XLSX")))
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to import messagebank from XLSX")))
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "Invalid XLSX file")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid XLSX file")))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -477,35 +485,51 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
val json: JsonNode = objectmapper.readTree(it.body())
|
||||
val tag = json.get("tag").asText()
|
||||
val languages = json.get("language").asText().split(";")
|
||||
println("Add Language Link, tag=$tag, languages=$languages")
|
||||
if (ValidString(tag)){
|
||||
if (languages.all { xx -> Language.entries.any { yy -> yy.name== xx} }){
|
||||
if (db.LanguageLinkList.any { ll -> ll.TAG==tag }){
|
||||
if (languages.all { xx -> Language.entries.any { yy -> yy.name.equals(xx,true)} }){
|
||||
if (!db.LanguageLinkList.any { ll -> ll.TAG.equals(tag,true) }) {
|
||||
val newvalue = LanguageLink(0u, tag, languages.joinToString(";"))
|
||||
if (db.Add_LanguageLink(newvalue)){
|
||||
it.result(objectmapper.writeValueAsString(mapOf("message" to "OK")))
|
||||
} else it.status(500).result(objectmapper.writeValueAsString(mapOf("message" to "Failed to add language link to database")))
|
||||
} else it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "TAG=$tag already exists")))
|
||||
} else it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "Contains unsupported language")))
|
||||
} else it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "Invalid tag or language")))
|
||||
db.Resort_LanguageLink_by_TAG()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to add language link to database")))
|
||||
println("Failed to add language link to database")
|
||||
}
|
||||
} else {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("TAG=$tag already exists")))
|
||||
println("TAG=$tag already exists")
|
||||
}
|
||||
} else {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Contains unsupported language")))
|
||||
println("Contains unsupported language")
|
||||
}
|
||||
} else {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid tag or language")))
|
||||
println("Invalid tag")
|
||||
}
|
||||
}
|
||||
delete("List") {
|
||||
// truncate language link table
|
||||
if (db.Clear_LanguageLink()) {
|
||||
it.result(objectmapper.writeValueAsString(mapOf("message" to "OK")))
|
||||
db.Reload_LanguageLink()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(mapOf("message" to "Failed to truncate language link table")))
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("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(objectmapper.writeValueAsString(mapOf("message" to "Invalid index")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid index")))
|
||||
} else {
|
||||
if (db.Delete_LanguageLink_by_index(index)) {
|
||||
it.result(objectmapper.writeValueAsString(mapOf("message" to "OK")))
|
||||
db.Resort_LanguageLink_by_TAG()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(mapOf("message" to "Failed to delete language link with index $index")))
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to delete language link with index $index")))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -513,15 +537,15 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
// update by index
|
||||
val index = it.pathParam("index").toUIntOrNull()
|
||||
if (index == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "Invalid index")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid index")))
|
||||
} else {
|
||||
val ll = db.LanguageLinkList.find { xx -> xx.index == index }
|
||||
if (ll == null) {
|
||||
it.status(404).result(objectmapper.writeValueAsString(mapOf("message" to "Language link with index $index not found")))
|
||||
it.status(404).result(objectmapper.writeValueAsString(resultMessage("Language link with index $index not found")))
|
||||
} else {
|
||||
val json: JsonNode = objectmapper.readTree(it.body())
|
||||
if (json.isEmpty) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "UpdateByIndex with index=$index has empty body")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("UpdateByIndex with index=$index has empty body")))
|
||||
} else {
|
||||
val _tag = json.get("tag").asText()
|
||||
val _language = json.get("language").asText()
|
||||
@@ -536,11 +560,12 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
}
|
||||
if (changed) {
|
||||
if (db.Update_LanguageLink_by_index(index, ll)) {
|
||||
it.result(objectmapper.writeValueAsString(mapOf("message" to "OK")))
|
||||
db.Resort_LanguageLink_by_TAG()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else it.status(500)
|
||||
.result(objectmapper.writeValueAsString(mapOf("message" to "Failed to update language link with index $index")))
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to update language link with index $index")))
|
||||
} else it.status(400)
|
||||
.result(objectmapper.writeValueAsString(mapOf("message" to "Nothing has changed for language link with index $index")))
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Nothing has changed for language link with index $index")))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -557,24 +582,25 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
xlsxdata.write(out)
|
||||
}
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(mapOf("message" to "Failed to export language link to XLSX")))
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to export language link to XLSX")))
|
||||
}
|
||||
}
|
||||
post("ImportXLSX") {
|
||||
val uploaded = it.uploadedFile("file")
|
||||
if (uploaded == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "No file uploaded")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("No file uploaded")))
|
||||
return@post
|
||||
}
|
||||
try {
|
||||
val xlsx = XSSFWorkbook(uploaded.content())
|
||||
if (db.Import_LanguageLink_XLSX(xlsx)) {
|
||||
it.result(objectmapper.writeValueAsString(mapOf("message" to "OK")))
|
||||
db.Resort_LanguageLink_by_TAG()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(mapOf("message" to "Failed to import language link from XLSX")))
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to import language link from XLSX")))
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "Invalid XLSX file")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid XLSX file")))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -586,21 +612,23 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
delete("List") {
|
||||
// truncate timer table
|
||||
if (db.Clear_Schedulebank()) {
|
||||
it.result(objectmapper.writeValueAsString(mapOf("message" to "OK")))
|
||||
db.Reload_Schedulebank()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(mapOf("message" to "Failed to truncate schedulebank table")))
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to truncate schedulebank table")))
|
||||
}
|
||||
}
|
||||
delete("DeleteByIndex/{index}") {
|
||||
// delete by index
|
||||
val index = it.pathParam("index").toUIntOrNull()
|
||||
if (index == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "Invalid index")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid index")))
|
||||
} else {
|
||||
if (db.Delete_Schedulebank_by_index(index)) {
|
||||
it.result(objectmapper.writeValueAsString(mapOf("message" to "OK")))
|
||||
db.Resort_Schedulebank_by_Day_Time()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result("Failed to delete schedule with index $index")
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to delete schedule with index $index")))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -608,15 +636,15 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
// update by index
|
||||
val index = it.pathParam("index").toUIntOrNull()
|
||||
if (index == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "Invalid index")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid index")))
|
||||
} else {
|
||||
val sb = db.SchedulebankList.find { xx -> xx.index == index }
|
||||
if (sb == null) {
|
||||
it.status(404).result("Schedule with index $index not found")
|
||||
it.status(404).result(objectmapper.writeValueAsString(resultMessage("Schedule with index $index not found")))
|
||||
} else {
|
||||
val json: JsonNode = objectmapper.readTree(it.body())
|
||||
if (json.isEmpty) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "UpdateByIndex with index=$index has empty body")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("UpdateByIndex with index=$index has empty body")))
|
||||
} else {
|
||||
val _description = json.get("Description").asText()
|
||||
val _time = json.get("Time").asText()
|
||||
@@ -636,7 +664,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
sb.Time = _time
|
||||
changed = true
|
||||
} else {
|
||||
it.status(400).result("Invalid Time format, must be HH:mm")
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Time format, must be HH:mm")))
|
||||
return@patch
|
||||
}
|
||||
}
|
||||
@@ -645,7 +673,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
sb.Day = _day
|
||||
changed = true
|
||||
} else {
|
||||
it.status(400).result("Invalid Day format")
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Day format")))
|
||||
return@patch
|
||||
}
|
||||
}
|
||||
@@ -670,17 +698,18 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
sb.Language = _language
|
||||
changed = true
|
||||
} else {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "Invalid Language")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Language")))
|
||||
return@patch
|
||||
}
|
||||
}
|
||||
if (changed) {
|
||||
if (db.Update_Schedulebank_by_index(index, sb)) {
|
||||
it.result(objectmapper.writeValueAsString(mapOf("message" to "OK")))
|
||||
db.Resort_Schedulebank_by_Day_Time()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else it.status(500)
|
||||
.result(objectmapper.writeValueAsString(mapOf("message" to "Failed to update schedule with index $index")))
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to update schedule with index $index")))
|
||||
} else it.status(400)
|
||||
.result(objectmapper.writeValueAsString(mapOf("message" to "Nothing has changed for schedule with index $index")))
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Nothing has changed for schedule with index $index")))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -697,24 +726,25 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
xlsxdata.write(out)
|
||||
}
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(mapOf("message" to "Failed to export schedulebank to XLSX")))
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to export schedulebank to XLSX")))
|
||||
}
|
||||
}
|
||||
post("ImportXLSX") {
|
||||
val uploaded = it.uploadedFile("file")
|
||||
if (uploaded == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "No file uploaded")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("No file uploaded")))
|
||||
return@post
|
||||
}
|
||||
try {
|
||||
val xlsx = XSSFWorkbook(uploaded.content())
|
||||
if (db.Import_Schedulebank_XLSX(xlsx)) {
|
||||
it.result(objectmapper.writeValueAsString(mapOf("message" to "OK")))
|
||||
db.Resort_Schedulebank_by_Day_Time()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result("Failed to import schedulebank from XLSX")
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to import schedulebank from XLSX")))
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(mapOf("message" to "Invalid XLSX file")))
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid XLSX file")))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -735,7 +765,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
}
|
||||
} else {
|
||||
println("Invalid logdate=$logdate")
|
||||
get1.status(400).result("Invalid logdate")
|
||||
get1.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid logdate")))
|
||||
}
|
||||
}
|
||||
get("ExportXLSX") { get1 ->
|
||||
@@ -758,11 +788,86 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
||||
xlsxdata.write(out)
|
||||
}
|
||||
} else {
|
||||
get1.status(500).result("Failed to export log to XLSX")
|
||||
get1.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to export log to XLSX")))
|
||||
}
|
||||
} else get1.status(400).result("Invalid logdate")
|
||||
} else get1.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid logdate")))
|
||||
}
|
||||
}
|
||||
path("BroadcastZones"){
|
||||
get("List") {
|
||||
// get broadcast zones list
|
||||
it.result(MariaDB.ArrayListtoString(db.BroadcastZoneList))
|
||||
}
|
||||
delete("List"){
|
||||
// truncate broadcast zones table
|
||||
if (db.Clear_BroadcastZones()) {
|
||||
db.GetBroadcastZones()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to truncate broadcast zones table")))
|
||||
}
|
||||
}
|
||||
post("Add") {
|
||||
// Parse JSON from request body
|
||||
val json: JsonNode = objectmapper.readTree(it.body())
|
||||
val zone = json.get("zone").asText()
|
||||
val description = json.get("description").asText()
|
||||
println("Add Broadcast Zone, zone=$zone, description=$description")
|
||||
// TODO continue tomorrow
|
||||
}
|
||||
delete("DeleteByIndex/{index}") {
|
||||
// delete by index
|
||||
val index = it.pathParam("index").toUIntOrNull()
|
||||
if (index == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid index")))
|
||||
} else {
|
||||
if (db.Delete_BroadcastZones_by_index(index)) {
|
||||
db.Resort_BroadcastZones_by_description()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to delete broadcast zone with index $index")))
|
||||
}
|
||||
}
|
||||
}
|
||||
post("UpdateByIndex/{index}") {
|
||||
// TODO continue tomorrow
|
||||
|
||||
}
|
||||
get("ExportXLSX") {
|
||||
val xlsxdata = db.Export_BroadcastZones_XLSX()
|
||||
if (xlsxdata != null) {
|
||||
it.header(
|
||||
"Content-Type",
|
||||
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
||||
)
|
||||
it.header("Content-Disposition", "attachment; filename=\"broadcastzones.xlsx\"")
|
||||
it.outputStream().use { out ->
|
||||
xlsxdata.write(out)
|
||||
}
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to export broadcast zones to XLSX")))
|
||||
}
|
||||
}
|
||||
post("ImportXLSX") {
|
||||
val uploaded = it.uploadedFile("file")
|
||||
if (uploaded == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("No file uploaded")))
|
||||
return@post
|
||||
}
|
||||
try {
|
||||
val xlsx = XSSFWorkbook(uploaded.content())
|
||||
if (db.Import_BroadcastZones_XLSX(xlsx)) {
|
||||
db.Resort_BroadcastZones_by_description()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to import broadcast zones from XLSX")))
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid XLSX file")))
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}.start(listenPort)
|
||||
|
||||
Reference in New Issue
Block a user