Compare commits
7 Commits
110e6d5b12
...
a133f9a170
| Author | SHA1 | Date | |
|---|---|---|---|
| a133f9a170 | |||
| 1d2c8d1307 | |||
| 6b00bc7eb0 | |||
| 8409307631 | |||
| c0e920d1d5 | |||
| 0d6b4aa49e | |||
| 86d50bdb6c |
@@ -260,7 +260,7 @@ class MainExtension01 {
|
|||||||
val value = variables["AL"].orEmpty()
|
val value = variables["AL"].orEmpty()
|
||||||
if (ValidString(value)) {
|
if (ValidString(value)) {
|
||||||
val airplane =
|
val airplane =
|
||||||
sb.firstOrNull { it.Category == Category.Airline_Name.name && it.TAG == value }
|
sb.firstOrNull { it.Category == Category.Airplane_Name.name && it.TAG == value }
|
||||||
if (airplane != null) {
|
if (airplane != null) {
|
||||||
if (ValidFile(airplane.Path)) {
|
if (ValidFile(airplane.Path)) {
|
||||||
files.add(airplane.Path)
|
files.add(airplane.Path)
|
||||||
|
|||||||
@@ -111,11 +111,13 @@ class BarixConnection(val index: UInt, var channel: String, val ipaddress: Strin
|
|||||||
try {
|
try {
|
||||||
val chunk = ByteArray(if (bb.remaining() > maxUDPsize) maxUDPsize else bb.remaining())
|
val chunk = ByteArray(if (bb.remaining() > maxUDPsize) maxUDPsize else bb.remaining())
|
||||||
bb.get(chunk)
|
bb.get(chunk)
|
||||||
|
println("Buffer remain: $bufferRemain, sending chunk size: ${chunk.size}")
|
||||||
while(bufferRemain<chunk.size){
|
while(bufferRemain<chunk.size){
|
||||||
delay(10)
|
delay(10)
|
||||||
|
println("Waiting until buffer enough..")
|
||||||
}
|
}
|
||||||
udp.send(DatagramPacket(chunk, chunk.size, inet))
|
udp.send(DatagramPacket(chunk, chunk.size, inet))
|
||||||
delay(1)
|
//delay(1)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
cbFail.accept("SendData to $ipaddress:$port failed, message: ${e.message}")
|
cbFail.accept("SendData to $ipaddress:$port failed, message: ${e.message}")
|
||||||
return@launch
|
return@launch
|
||||||
|
|||||||
@@ -37,8 +37,10 @@ class TCP_Barix_Command_Server {
|
|||||||
val key : String = socket.inetAddress.hostAddress
|
val key : String = socket.inetAddress.hostAddress
|
||||||
socketMap[key] = socket
|
socketMap[key] = socket
|
||||||
Logger.info { "Start communicating with Streamer Output with IP : $key" }
|
Logger.info { "Start communicating with Streamer Output with IP : $key" }
|
||||||
|
try{
|
||||||
val din = socket.getInputStream()
|
val din = socket.getInputStream()
|
||||||
while (isActive) {
|
while (isActive) {
|
||||||
|
|
||||||
if (din.available()>0){
|
if (din.available()>0){
|
||||||
val bb = ByteArray(din.available())
|
val bb = ByteArray(din.available())
|
||||||
din.read(bb)
|
din.read(bb)
|
||||||
@@ -62,6 +64,10 @@ class TCP_Barix_Command_Server {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (ex:Exception){
|
||||||
|
Logger.error { "Error in communication with Streamer Output with IP $key, Message : ${ex.message}" }
|
||||||
|
}
|
||||||
|
|
||||||
Logger.info { "Finished communicating with Streamer Output with IP $key" }
|
Logger.info { "Finished communicating with Streamer Output with IP $key" }
|
||||||
socketMap.remove(key)
|
socketMap.remove(key)
|
||||||
|
|
||||||
|
|||||||
@@ -349,7 +349,7 @@ class TCP_Android_Command_Server {
|
|||||||
.filter { it.isNotBlank() }
|
.filter { it.isNotBlank() }
|
||||||
.forEach { al ->
|
.forEach { al ->
|
||||||
val sb = db.soundDB.List
|
val sb = db.soundDB.List
|
||||||
.filter { it.Category.equals(Category.Airline_Name.name, true) }
|
.filter { it.Category.equals(Category.Airplane_Name.name, true) }
|
||||||
.filter { it.TAG.equals(al, true)}
|
.filter { it.TAG.equals(al, true)}
|
||||||
.distinctBy { it.TAG }
|
.distinctBy { it.TAG }
|
||||||
VARAPTOTAL.addAll(sb)
|
VARAPTOTAL.addAll(sb)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package content
|
|||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
enum class Category(name: String) {
|
enum class Category(name: String) {
|
||||||
Airline_Code("Airline_Code"),
|
Airline_Code("Airline_Code"),
|
||||||
Airline_Name("Airline_Name"),
|
Airplane_Name("Airplane_Name"),
|
||||||
AlphabetNumeric("AlphabetNumeric"),
|
AlphabetNumeric("AlphabetNumeric"),
|
||||||
City("City"),
|
City("City"),
|
||||||
Phrase("Phrase"),
|
Phrase("Phrase"),
|
||||||
|
|||||||
@@ -2280,7 +2280,7 @@ class MariaDB(
|
|||||||
|
|
||||||
fun Find_Soundbank_AirplaneName(tag: String) : List<Soundbank>{
|
fun Find_Soundbank_AirplaneName(tag: String) : List<Soundbank>{
|
||||||
return soundDB.List
|
return soundDB.List
|
||||||
.filter{ it.Category== Category.Airline_Name.name }
|
.filter{ it.Category== Category.Airplane_Name.name }
|
||||||
.filter { it.TAG.equals(tag,true)}
|
.filter { it.TAG.equals(tag,true)}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import database.BroadcastZones
|
|||||||
import database.LanguageLink
|
import database.LanguageLink
|
||||||
import database.MariaDB
|
import database.MariaDB
|
||||||
import database.Messagebank
|
import database.Messagebank
|
||||||
|
import database.ScheduleBank
|
||||||
import database.SoundChannel
|
import database.SoundChannel
|
||||||
import database.Soundbank
|
import database.Soundbank
|
||||||
import database.UserDB
|
import database.UserDB
|
||||||
@@ -75,15 +76,13 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
val username = it.formParam("username")
|
val username = it.formParam("username")
|
||||||
val password = it.formParam("password")
|
val password = it.formParam("password")
|
||||||
if (username == null || password == null) {
|
if (username == null || password == null) {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Username and password are required")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Username and password are required")))
|
|
||||||
return@post
|
return@post
|
||||||
}
|
}
|
||||||
// Check if user exists in userlist
|
// Check if user exists in userlist
|
||||||
val user = userlist.find { it.first == username && it.second == password }
|
val user = userlist.find { it.first == username && it.second == password }
|
||||||
if (user == null) {
|
if (user == null) {
|
||||||
it.status(401)
|
it.status(401).result(objectmapper.writeValueAsString(resultMessage("Invalid username or password")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid username or password")))
|
|
||||||
return@post
|
return@post
|
||||||
}
|
}
|
||||||
// Set user session
|
// Set user session
|
||||||
@@ -135,28 +134,16 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
SendReply(wsMessageContext, cmd.command, "OK")
|
SendReply(wsMessageContext, cmd.command, "OK")
|
||||||
}
|
}
|
||||||
|
|
||||||
"getPagingQueue" -> {
|
"getPagingQueue" ->{
|
||||||
SendReply(
|
SendReply(wsMessageContext, cmd.command, objectmapper.writeValueAsString(db.queuepagingDB.List))
|
||||||
wsMessageContext,
|
|
||||||
cmd.command,
|
|
||||||
objectmapper.writeValueAsString(db.queuepagingDB.List)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
"getAASQueue" -> {
|
"getAASQueue" ->{
|
||||||
SendReply(
|
SendReply(wsMessageContext, cmd.command, objectmapper.writeValueAsString(db.queuetableDB.List))
|
||||||
wsMessageContext,
|
|
||||||
cmd.command,
|
|
||||||
objectmapper.writeValueAsString(db.queuetableDB.List)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
"getStreamerOutputs" -> {
|
"getStreamerOutputs" -> {
|
||||||
SendReply(
|
SendReply(wsMessageContext, cmd.command, objectmapper.writeValueAsString(StreamerOutputs.values.toList()))
|
||||||
wsMessageContext,
|
|
||||||
cmd.command,
|
|
||||||
objectmapper.writeValueAsString(StreamerOutputs.values.toList())
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else -> {
|
else -> {
|
||||||
@@ -194,19 +181,19 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
before { CheckUsers(it) }
|
before { CheckUsers(it) }
|
||||||
}
|
}
|
||||||
path("api") {
|
path("api") {
|
||||||
path("VoiceType") {
|
path("VoiceType"){
|
||||||
get {
|
get{
|
||||||
it.result(objectmapper.writeValueAsString(VoiceType.entries.map { vt -> vt.name }))
|
it.result(objectmapper.writeValueAsString(VoiceType.entries.map { vt -> vt.name }))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
path("Category") {
|
path("Category") {
|
||||||
get {
|
get {
|
||||||
it.result(objectmapper.writeValueAsString(Category.entries.map { cat -> cat.name }))
|
it.result(objectmapper.writeValueAsString(Category.entries.map { cat -> cat.name}) )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
path("Language") {
|
path("Language") {
|
||||||
get {
|
get {
|
||||||
it.result(objectmapper.writeValueAsString(Language.entries.map { lang -> lang.name }))
|
it.result(objectmapper.writeValueAsString(Language.entries.map { lang -> lang.name }) )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
path("ScheduleDay") {
|
path("ScheduleDay") {
|
||||||
@@ -250,7 +237,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
}
|
}
|
||||||
get("AirlineTags") { ctx ->
|
get("AirlineTags") { ctx ->
|
||||||
val value = db.soundDB.List
|
val value = db.soundDB.List
|
||||||
.filter { it.Category == Category.Airline_Name.name }
|
.filter { it.Category == Category.Airplane_Name.name }
|
||||||
.distinctBy { it.TAG }
|
.distinctBy { it.TAG }
|
||||||
.sortedBy { it.TAG }
|
.sortedBy { it.TAG }
|
||||||
.map { KeyValueMessage(it.TAG, it.Description) }
|
.map { KeyValueMessage(it.TAG, it.Description) }
|
||||||
@@ -280,32 +267,20 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
if (ValidFile(addvalue.Path)) {
|
if (ValidFile(addvalue.Path)) {
|
||||||
if (db.soundDB.Add(addvalue)) {
|
if (db.soundDB.Add(addvalue)) {
|
||||||
db.soundDB.Resort()
|
db.soundDB.Resort()
|
||||||
it.result(
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
objectmapper.writeValueAsString(
|
|
||||||
resultMessage(
|
|
||||||
"OK"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
} else it.status(500)
|
} else it.status(500)
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to add soundbank to database")))
|
.result(objectmapper.writeValueAsString(resultMessage("Failed to add soundbank to database")))
|
||||||
} else it.status(400)
|
} else it.status(400)
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Path, file does not exist")))
|
.result(objectmapper.writeValueAsString(resultMessage("Invalid Path, file does not exist")))
|
||||||
} else it.status(400)
|
} else it.status(400)
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("TAG=${addvalue.TAG} already exists for the same Language=${addvalue.Language} and Category=${addvalue.Category}")))
|
.result(objectmapper.writeValueAsString(resultMessage("TAG=${addvalue.TAG} already exists for the same Language=${addvalue.Language} and Category=${addvalue.Category}")))
|
||||||
} else it.status(400)
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Path")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Path")))
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Language")))
|
||||||
} else it.status(400)
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Category")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Language")))
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid TAG")))
|
||||||
} else it.status(400)
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Description")))
|
||||||
.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) {
|
} catch (_: Exception) {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid request body")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid request body")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
delete("List") {
|
delete("List") {
|
||||||
@@ -314,8 +289,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
db.soundDB.Get()
|
db.soundDB.Get()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to truncate soundbank table")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to truncate soundbank table")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
delete("DeleteByIndex/{index}") {
|
delete("DeleteByIndex/{index}") {
|
||||||
@@ -328,8 +302,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
db.soundDB.Resort()
|
db.soundDB.Resort()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to delete soundbank with index $index")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to delete soundbank with index $index")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -343,14 +316,12 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
val sb = db.soundDB.List.find { xx -> xx.index == index }
|
val sb = db.soundDB.List.find { xx -> xx.index == index }
|
||||||
if (sb == null) {
|
if (sb == null) {
|
||||||
// soundbank dengan index tersebut tidak ditemukan
|
// soundbank dengan index tersebut tidak ditemukan
|
||||||
it.status(404)
|
it.status(404).result(objectmapper.writeValueAsString(resultMessage("Soundbank with index $index not found")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Soundbank with index $index not found")))
|
|
||||||
} else {
|
} else {
|
||||||
// soundbank dengan index tersebut ditemukan, sekarang update
|
// soundbank dengan index tersebut ditemukan, sekarang update
|
||||||
val json: JsonNode = objectmapper.readTree(it.body())
|
val json: JsonNode = objectmapper.readTree(it.body())
|
||||||
if (json.isEmpty) {
|
if (json.isEmpty) {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("UpdateByIndex with index=$index has empty body")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("UpdateByIndex with index=$index has empty body")))
|
|
||||||
} else {
|
} else {
|
||||||
val _description = json.get("Description").asText("")
|
val _description = json.get("Description").asText("")
|
||||||
val _tag = json.get("TAG").asText("")
|
val _tag = json.get("TAG").asText("")
|
||||||
@@ -373,8 +344,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
sb.Category = _category
|
sb.Category = _category
|
||||||
changed = true
|
changed = true
|
||||||
} else {
|
} else {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Category")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Category")))
|
|
||||||
return@patch
|
return@patch
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -387,8 +357,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
sb.Path = _path
|
sb.Path = _path
|
||||||
changed = true
|
changed = true
|
||||||
} else {
|
} else {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Path, file does not exist")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Path, file does not exist")))
|
|
||||||
return@patch
|
return@patch
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -396,8 +365,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
if (db.soundDB.UpdateByIndex(index.toInt(), sb)) {
|
if (db.soundDB.UpdateByIndex(index.toInt(), sb)) {
|
||||||
db.soundDB.Resort()
|
db.soundDB.Resort()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else it.status(500)
|
} else it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to update soundbank with index $index")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to update soundbank with index $index")))
|
|
||||||
} else it.status(400)
|
} else it.status(400)
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Nothing has changed for soundbank with index $index")))
|
.result(objectmapper.writeValueAsString(resultMessage("Nothing has changed for soundbank with index $index")))
|
||||||
}
|
}
|
||||||
@@ -416,15 +384,13 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
xlsxdata.write(out)
|
xlsxdata.write(out)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to export soundbank to XLSX")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to export soundbank to XLSX")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
post("ImportXLSX") {
|
post("ImportXLSX") {
|
||||||
val uploaded = it.uploadedFile("file")
|
val uploaded = it.uploadedFile("file")
|
||||||
if (uploaded == null) {
|
if (uploaded == null) {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("No file uploaded")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("No file uploaded")))
|
|
||||||
return@post
|
return@post
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
@@ -433,12 +399,10 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
db.soundDB.Resort()
|
db.soundDB.Resort()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to import soundbank from XLSX")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to import soundbank from XLSX")))
|
|
||||||
}
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid XLSX file")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid XLSX file")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -462,38 +426,23 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
val voice_type = json.get("Voice_Type")?.asText("") ?: ""
|
val voice_type = json.get("Voice_Type")?.asText("") ?: ""
|
||||||
val message_detail = json.get("Message_Detail")?.asText("") ?: ""
|
val message_detail = json.get("Message_Detail")?.asText("") ?: ""
|
||||||
val message_tags = json.get("Message_TAGS")?.asText("") ?: ""
|
val message_tags = json.get("Message_TAGS")?.asText("") ?: ""
|
||||||
if (description.isNotEmpty()) {
|
if (description.isNotEmpty()){
|
||||||
if (language.isNotEmpty() && Language.entries.any { lang -> lang.name == language }) {
|
if (language.isNotEmpty() && Language.entries.any{ lang -> lang.name == language }){
|
||||||
if (ann_id > 0u) {
|
if (ann_id>0u){
|
||||||
if (voice_type.isNotEmpty() && VoiceType.entries.any { vt -> vt.name == voice_type }) {
|
if (voice_type.isNotEmpty() && VoiceType.entries.any{ vt -> vt.name == voice_type }){
|
||||||
if (message_detail.isNotEmpty()) {
|
if (message_detail.isNotEmpty()){
|
||||||
if (message_tags.isNotEmpty()) {
|
if (message_tags.isNotEmpty()){
|
||||||
val mb = Messagebank(
|
val mb = Messagebank(0u, description, language, ann_id, voice_type, message_detail, message_tags)
|
||||||
0u,
|
if (db.messageDB.Add(mb)){
|
||||||
description,
|
|
||||||
language,
|
|
||||||
ann_id,
|
|
||||||
voice_type,
|
|
||||||
message_detail,
|
|
||||||
message_tags
|
|
||||||
)
|
|
||||||
if (db.messageDB.Add(mb)) {
|
|
||||||
db.messageDB.Resort()
|
db.messageDB.Resort()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else it.status(500)
|
} else it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to add messagebank to database")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to add messagebank to database")))
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Message_TAGS")))
|
||||||
} else it.status(400)
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Message_Detail")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Message_TAGS")))
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Voice_Type")))
|
||||||
} else it.status(400)
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid ANN_ID")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Message_Detail")))
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Language")))
|
||||||
} else it.status(400)
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Description")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Voice_Type")))
|
|
||||||
} else it.status(400)
|
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid ANN_ID")))
|
|
||||||
} else it.status(400)
|
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Language")))
|
|
||||||
} else it.status(400)
|
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Description")))
|
|
||||||
}
|
}
|
||||||
delete("List") {
|
delete("List") {
|
||||||
// truncate messagebank table
|
// truncate messagebank table
|
||||||
@@ -501,8 +450,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
db.messageDB.Get()
|
db.messageDB.Get()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to truncate messagebank table")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to truncate messagebank table")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
delete("DeleteByIndex/{index}") {
|
delete("DeleteByIndex/{index}") {
|
||||||
@@ -515,8 +463,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
db.messageDB.Resort()
|
db.messageDB.Resort()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to delete messagebank with index $index")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to delete messagebank with index $index")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -528,13 +475,11 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
} else {
|
} else {
|
||||||
val mb = db.messageDB.List.find { xx -> xx.index == index }
|
val mb = db.messageDB.List.find { xx -> xx.index == index }
|
||||||
if (mb == null) {
|
if (mb == null) {
|
||||||
it.status(404)
|
it.status(404).result(objectmapper.writeValueAsString(resultMessage("Messagebank with index $index not found")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Messagebank with index $index not found")))
|
|
||||||
} else {
|
} else {
|
||||||
val json: JsonNode = objectmapper.readTree(it.body())
|
val json: JsonNode = objectmapper.readTree(it.body())
|
||||||
if (json.isEmpty) {
|
if (json.isEmpty) {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("UpdateByIndex with index=$index has empty body")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("UpdateByIndex with index=$index has empty body")))
|
|
||||||
} else {
|
} else {
|
||||||
val _description = json.get("Description").asText("")
|
val _description = json.get("Description").asText("")
|
||||||
val _language = json.get("Language").asText("")
|
val _language = json.get("Language").asText("")
|
||||||
@@ -561,8 +506,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
mb.Voice_Type = _voice_type
|
mb.Voice_Type = _voice_type
|
||||||
changed = true
|
changed = true
|
||||||
} else {
|
} else {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Voice_Type")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Voice_Type")))
|
|
||||||
return@patch
|
return@patch
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -598,15 +542,13 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
xlsxdata.write(out)
|
xlsxdata.write(out)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to export messagebank to XLSX")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to export messagebank to XLSX")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
post("ImportXLSX") {
|
post("ImportXLSX") {
|
||||||
val uploaded = it.uploadedFile("file")
|
val uploaded = it.uploadedFile("file")
|
||||||
if (uploaded == null) {
|
if (uploaded == null) {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("No file uploaded")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("No file uploaded")))
|
|
||||||
return@post
|
return@post
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
@@ -615,12 +557,10 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
db.messageDB.Resort()
|
db.messageDB.Resort()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to import messagebank from XLSX")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to import messagebank from XLSX")))
|
|
||||||
}
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid XLSX file")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid XLSX file")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -629,37 +569,33 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
// get language link list
|
// get language link list
|
||||||
it.result(MariaDB.ArrayListtoString(db.languageDB.List))
|
it.result(MariaDB.ArrayListtoString(db.languageDB.List))
|
||||||
}
|
}
|
||||||
post("Add") {
|
post("Add"){
|
||||||
// Parse JSON from request body
|
// Parse JSON from request body
|
||||||
val json: JsonNode = objectmapper.readTree(it.body())
|
val json: JsonNode = objectmapper.readTree(it.body())
|
||||||
val tag = json.get("tag").asText("")
|
val tag = json.get("tag").asText("")
|
||||||
val languages = json.get("language").asText("").split(";")
|
val languages = json.get("language").asText("").split(";")
|
||||||
println("Add Language Link, tag=$tag, languages=$languages")
|
println("Add Language Link, tag=$tag, languages=$languages")
|
||||||
if (ValidString(tag)) {
|
if (ValidString(tag)){
|
||||||
if (languages.all { xx -> Language.entries.any { yy -> yy.name.equals(xx, true) } }) {
|
if (languages.all { xx -> Language.entries.any { yy -> yy.name.equals(xx,true)} }){
|
||||||
if (!db.languageDB.List.any { ll -> ll.TAG.equals(tag, true) }) {
|
if (!db.languageDB.List.any { ll -> ll.TAG.equals(tag,true) }) {
|
||||||
val newvalue = LanguageLink(0u, tag, languages.joinToString(";"))
|
val newvalue = LanguageLink(0u, tag, languages.joinToString(";"))
|
||||||
if (db.languageDB.Add(newvalue)) {
|
if (db.languageDB.Add(newvalue)){
|
||||||
db.languageDB.Resort()
|
db.languageDB.Resort()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to add language link to database")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to add language link to database")))
|
|
||||||
println("Failed to add language link to database")
|
println("Failed to add language link to database")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("TAG=$tag already exists")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("TAG=$tag already exists")))
|
|
||||||
println("TAG=$tag already exists")
|
println("TAG=$tag already exists")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Contains unsupported language")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Contains unsupported language")))
|
|
||||||
println("Contains unsupported language")
|
println("Contains unsupported language")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid tag or language")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid tag or language")))
|
|
||||||
println("Invalid tag")
|
println("Invalid tag")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -669,8 +605,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
db.languageDB.Resort()
|
db.languageDB.Resort()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to truncate language link table")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to truncate language link table")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
delete("DeleteByIndex/{index}") {
|
delete("DeleteByIndex/{index}") {
|
||||||
@@ -683,8 +618,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
db.languageDB.Resort()
|
db.languageDB.Resort()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to delete language link with index $index")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to delete language link with index $index")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -696,13 +630,11 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
} else {
|
} else {
|
||||||
val ll = db.languageDB.List.find { xx -> xx.index == index }
|
val ll = db.languageDB.List.find { xx -> xx.index == index }
|
||||||
if (ll == null) {
|
if (ll == null) {
|
||||||
it.status(404)
|
it.status(404).result(objectmapper.writeValueAsString(resultMessage("Language link with index $index not found")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Language link with index $index not found")))
|
|
||||||
} else {
|
} else {
|
||||||
val json: JsonNode = objectmapper.readTree(it.body())
|
val json: JsonNode = objectmapper.readTree(it.body())
|
||||||
if (json.isEmpty) {
|
if (json.isEmpty) {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("UpdateByIndex with index=$index has empty body")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("UpdateByIndex with index=$index has empty body")))
|
|
||||||
} else {
|
} else {
|
||||||
val _tag = json.get("tag").asText("")
|
val _tag = json.get("tag").asText("")
|
||||||
val _language = json.get("language").asText("")
|
val _language = json.get("language").asText("")
|
||||||
@@ -739,15 +671,13 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
xlsxdata.write(out)
|
xlsxdata.write(out)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to export language link to XLSX")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to export language link to XLSX")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
post("ImportXLSX") {
|
post("ImportXLSX") {
|
||||||
val uploaded = it.uploadedFile("file")
|
val uploaded = it.uploadedFile("file")
|
||||||
if (uploaded == null) {
|
if (uploaded == null) {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("No file uploaded")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("No file uploaded")))
|
|
||||||
return@post
|
return@post
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
@@ -756,12 +686,10 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
db.languageDB.Resort()
|
db.languageDB.Resort()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to import language link from XLSX")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to import language link from XLSX")))
|
|
||||||
}
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid XLSX file")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid XLSX file")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -776,12 +704,53 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
db.scheduleDB.Get()
|
db.scheduleDB.Get()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to truncate schedulebank table")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to truncate schedulebank table")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
post("Add") {
|
post("Add"){
|
||||||
// TODO add new schedule
|
// TODO add new schedule
|
||||||
|
// recheck lagi tambahan steph
|
||||||
|
val json: JsonNode = objectmapper.readTree(it.body())
|
||||||
|
val description = json.get("Description")?.asText("") ?: ""
|
||||||
|
val day = json.get("Day")?.asText("") ?: ""
|
||||||
|
val time = json.get("Time")?.asText("") ?: ""
|
||||||
|
val soundpath = json.get("Soundpath")?.asText("") ?: ""
|
||||||
|
val repeat = json.get("Repeat")?.asInt()?.toUByte() ?: 0u
|
||||||
|
val enable = json.get("Enable")?.asBoolean() ?: false
|
||||||
|
val broadcast_zones = json.get("BroadcastZones")?.asText("") ?: ""
|
||||||
|
val language = json.get("Language")?.asText("") ?: ""
|
||||||
|
if (ValidString(description)){
|
||||||
|
if (ValidString(day) && ValidScheduleDay(day)){
|
||||||
|
if (ValidString(time) && ValidScheduleTime(time)){
|
||||||
|
if (ValidString(soundpath) && ValidFile(soundpath)){
|
||||||
|
if (repeat in 0u..127u){
|
||||||
|
if (ValidString(broadcast_zones)){
|
||||||
|
val zones = broadcast_zones.split(";")
|
||||||
|
if (zones.all { zz -> db.broadcastDB.List.any { xx -> xx.description.equals(zz,true) } }){
|
||||||
|
if (ValidString(language) && Language.entries.any{ lang -> lang.name == language }){
|
||||||
|
val newvalue = ScheduleBank(
|
||||||
|
0u,
|
||||||
|
description,
|
||||||
|
day,
|
||||||
|
time,
|
||||||
|
soundpath,
|
||||||
|
repeat,
|
||||||
|
enable,
|
||||||
|
broadcast_zones,
|
||||||
|
language
|
||||||
|
)
|
||||||
|
if (db.scheduleDB.Add(newvalue)){
|
||||||
|
db.scheduleDB.Resort()
|
||||||
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
|
} else it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to add schedule to database")))
|
||||||
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Language")))
|
||||||
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Contains unsupported BroadcastZones")))
|
||||||
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid BroadcastZones")))
|
||||||
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Repeat, must be between 0-127")))
|
||||||
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Soundpath")))
|
||||||
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Time format, must be HH:mm")))
|
||||||
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Day format")))
|
||||||
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Description")))
|
||||||
}
|
}
|
||||||
delete("DeleteByIndex/{index}") {
|
delete("DeleteByIndex/{index}") {
|
||||||
// delete by index
|
// delete by index
|
||||||
@@ -793,8 +762,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
db.scheduleDB.Resort()
|
db.scheduleDB.Resort()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to delete schedule with index $index")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to delete schedule with index $index")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -806,13 +774,11 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
} else {
|
} else {
|
||||||
val sb = db.scheduleDB.List.find { xx -> xx.index == index }
|
val sb = db.scheduleDB.List.find { xx -> xx.index == index }
|
||||||
if (sb == null) {
|
if (sb == null) {
|
||||||
it.status(404)
|
it.status(404).result(objectmapper.writeValueAsString(resultMessage("Schedule with index $index not found")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Schedule with index $index not found")))
|
|
||||||
} else {
|
} else {
|
||||||
val json: JsonNode = objectmapper.readTree(it.body())
|
val json: JsonNode = objectmapper.readTree(it.body())
|
||||||
if (json.isEmpty) {
|
if (json.isEmpty) {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("UpdateByIndex with index=$index has empty body")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("UpdateByIndex with index=$index has empty body")))
|
|
||||||
} else {
|
} else {
|
||||||
val _description = json.get("Description").asText("")
|
val _description = json.get("Description").asText("")
|
||||||
val _time = json.get("Time").asText("")
|
val _time = json.get("Time").asText("")
|
||||||
@@ -832,8 +798,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
sb.Time = _time
|
sb.Time = _time
|
||||||
changed = true
|
changed = true
|
||||||
} else {
|
} else {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Time format, must be HH:mm")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Time format, must be HH:mm")))
|
|
||||||
return@patch
|
return@patch
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -842,8 +807,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
sb.Day = _day
|
sb.Day = _day
|
||||||
changed = true
|
changed = true
|
||||||
} else {
|
} else {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Day format")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Day format")))
|
|
||||||
return@patch
|
return@patch
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -864,12 +828,11 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
changed = true
|
changed = true
|
||||||
}
|
}
|
||||||
if (ValidString(_language) && _language != sb.Language) {
|
if (ValidString(_language) && _language != sb.Language) {
|
||||||
if (Language.entries.any { lang -> lang.name == _language }) {
|
if (Language.entries.any{ lang -> lang.name == _language }) {
|
||||||
sb.Language = _language
|
sb.Language = _language
|
||||||
changed = true
|
changed = true
|
||||||
} else {
|
} else {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Language")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Language")))
|
|
||||||
return@patch
|
return@patch
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -897,15 +860,13 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
xlsxdata.write(out)
|
xlsxdata.write(out)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to export schedulebank to XLSX")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to export schedulebank to XLSX")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
post("ImportXLSX") {
|
post("ImportXLSX") {
|
||||||
val uploaded = it.uploadedFile("file")
|
val uploaded = it.uploadedFile("file")
|
||||||
if (uploaded == null) {
|
if (uploaded == null) {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("No file uploaded")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("No file uploaded")))
|
|
||||||
return@post
|
return@post
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
@@ -1085,10 +1046,20 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to import user table from XLSX")))
|
.result(objectmapper.writeValueAsString(resultMessage("Failed to import user table from XLSX")))
|
||||||
}
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid XLSX file")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid XLSX file")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO kirim list message dan broadcast zones untuk ADD/Edit schedule
|
||||||
|
get("GetMessageAndBroadcastZones") {
|
||||||
|
val result = object {
|
||||||
|
//TODO filter message without input variable
|
||||||
|
val messages = db.messageDB.List
|
||||||
|
|
||||||
|
val broadcastzones = db.broadcastDB.List
|
||||||
|
}
|
||||||
|
it.result(objectmapper.writeValueAsString(result))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
path("Log") {
|
path("Log") {
|
||||||
get("List") { get1 ->
|
get("List") { get1 ->
|
||||||
@@ -1108,8 +1079,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
println("Invalid logdate=$logdate")
|
println("Invalid logdate=$logdate")
|
||||||
get1.status(400)
|
get1.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid logdate")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid logdate")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
get("ExportXLSX") { get1 ->
|
get("ExportXLSX") { get1 ->
|
||||||
@@ -1118,9 +1088,9 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
println("Export log to XLSX, date=$logdate, filter=$logfilter")
|
println("Export log to XLSX, date=$logdate, filter=$logfilter")
|
||||||
if (ValiDateForLogHtml(logdate)) {
|
if (ValiDateForLogHtml(logdate)) {
|
||||||
val xlsxdata = if (ValidString(logfilter)) {
|
val xlsxdata = if (ValidString(logfilter)) {
|
||||||
db.Export_Log_XLSX(logdate.replace('-', '/'), logfilter)
|
db.Export_Log_XLSX(logdate.replace('-','/'), logfilter)
|
||||||
} else {
|
} else {
|
||||||
db.Export_Log_XLSX(logdate.replace('-', '/'), "")
|
db.Export_Log_XLSX(logdate.replace('-','/'), "")
|
||||||
}
|
}
|
||||||
if (xlsxdata != null) {
|
if (xlsxdata != null) {
|
||||||
get1.header(
|
get1.header(
|
||||||
@@ -1132,14 +1102,12 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
xlsxdata.write(out)
|
xlsxdata.write(out)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
get1.status(500)
|
get1.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to export log to XLSX")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to export log to XLSX")))
|
|
||||||
}
|
}
|
||||||
} else get1.status(400)
|
} else get1.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid logdate")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid logdate")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
path("BroadcastZones") {
|
path("BroadcastZones"){
|
||||||
get("List") {
|
get("List") {
|
||||||
it.result(MariaDB.ArrayListtoString(db.broadcastDB.List))
|
it.result(MariaDB.ArrayListtoString(db.broadcastDB.List))
|
||||||
}
|
}
|
||||||
@@ -1155,34 +1123,28 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
db.broadcastDB.Get()
|
db.broadcastDB.Get()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to truncate broadcast zones table")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to truncate broadcast zones table")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
post("Add") {
|
post("Add") {
|
||||||
val json: JsonNode = objectmapper.readTree(it.body())
|
val json : JsonNode = objectmapper.readTree(it.body())
|
||||||
val _description = json.get("description").asText("")
|
val _description = json.get("description").asText("")
|
||||||
val _soundchannel = json.get("SoundChannel").asText("")
|
val _soundchannel = json.get("SoundChannel").asText("")
|
||||||
val _box = json.get("Box").asText("")
|
val _box = json.get("Box").asText("")
|
||||||
val _relay = json.get("Relay").asText("")
|
val _relay = json.get("Relay").asText("")
|
||||||
if (ValidString(_description)) {
|
if (ValidString(_description)){
|
||||||
if (ValidString(_soundchannel)) {
|
if (ValidString(_soundchannel)){
|
||||||
if (ValidString(_box)) {
|
if (ValidString(_box)){
|
||||||
if (ValidString(_relay)) {
|
if (ValidString(_relay)){
|
||||||
val newbp = BroadcastZones(0u, _description, _soundchannel, _box, _relay)
|
val newbp = BroadcastZones(0u,_description,_soundchannel,_box,_relay)
|
||||||
if (db.broadcastDB.Add(newbp)) {
|
if (db.broadcastDB.Add(newbp)){
|
||||||
db.broadcastDB.Resort()
|
db.broadcastDB.Resort()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else it.status(500)
|
} else it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to add broadcast zone to database")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to add broadcast zone to database")))
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Relay")))
|
||||||
} else it.status(400)
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Box")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Relay")))
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid SoundChannel")))
|
||||||
} else it.status(400)
|
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid description")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Box")))
|
|
||||||
} else it.status(400)
|
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid SoundChannel")))
|
|
||||||
} else it.status(400)
|
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid description")))
|
|
||||||
}
|
}
|
||||||
delete("DeleteByIndex/{index}") {
|
delete("DeleteByIndex/{index}") {
|
||||||
// delete by index
|
// delete by index
|
||||||
@@ -1194,8 +1156,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
db.broadcastDB.Resort()
|
db.broadcastDB.Resort()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to delete broadcast zone with index $index")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to delete broadcast zone with index $index")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1207,13 +1168,11 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
} else {
|
} else {
|
||||||
val bz = db.broadcastDB.List.find { xx -> xx.index == index }
|
val bz = db.broadcastDB.List.find { xx -> xx.index == index }
|
||||||
if (bz == null) {
|
if (bz == null) {
|
||||||
it.status(404)
|
it.status(404).result(objectmapper.writeValueAsString(resultMessage("Broadcast zone with index $index not found")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Broadcast zone with index $index not found")))
|
|
||||||
} else {
|
} else {
|
||||||
val json: JsonNode = objectmapper.readTree(it.body())
|
val json: JsonNode = objectmapper.readTree(it.body())
|
||||||
if (json.isEmpty) {
|
if (json.isEmpty) {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("UpdateByIndex with index=$index has empty body")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("UpdateByIndex with index=$index has empty body")))
|
|
||||||
} else {
|
} else {
|
||||||
val _description = json.get("description").asText("")
|
val _description = json.get("description").asText("")
|
||||||
val _soundchannel = json.get("SoundChannel").asText("")
|
val _soundchannel = json.get("SoundChannel").asText("")
|
||||||
@@ -1261,15 +1220,13 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
xlsxdata.write(out)
|
xlsxdata.write(out)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to export broadcast zones to XLSX")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to export broadcast zones to XLSX")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
post("ImportXLSX") {
|
post("ImportXLSX") {
|
||||||
val uploaded = it.uploadedFile("file")
|
val uploaded = it.uploadedFile("file")
|
||||||
if (uploaded == null) {
|
if (uploaded == null) {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("No file uploaded")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("No file uploaded")))
|
|
||||||
return@post
|
return@post
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
@@ -1278,18 +1235,16 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
db.broadcastDB.Resort()
|
db.broadcastDB.Resort()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to import broadcast zones from XLSX")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to import broadcast zones from XLSX")))
|
|
||||||
}
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid XLSX file")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid XLSX file")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
path("SoundChannel") {
|
path("SoundChannel"){
|
||||||
get("List") {
|
get("List"){
|
||||||
it.result(MariaDB.ArrayListtoString(db.soundchannelDB.List))
|
it.result(MariaDB.ArrayListtoString(db.soundchannelDB.List))
|
||||||
}
|
}
|
||||||
get("SoundChannelDescriptions") {
|
get("SoundChannelDescriptions") {
|
||||||
@@ -1301,11 +1256,10 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
db.soundchannelDB.Get()
|
db.soundchannelDB.Get()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to truncate sound channel table")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to truncate sound channel table")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
patch("UpdateByIndex/{index}") {
|
patch("UpdateByIndex/{index}"){
|
||||||
|
|
||||||
val index = it.pathParam("index").toUIntOrNull()
|
val index = it.pathParam("index").toUIntOrNull()
|
||||||
if (index == null) {
|
if (index == null) {
|
||||||
@@ -1314,25 +1268,22 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
val sc = db.soundchannelDB.List.find { xx -> xx.index == index }
|
val sc = db.soundchannelDB.List.find { xx -> xx.index == index }
|
||||||
if (sc == null) {
|
if (sc == null) {
|
||||||
println("Sound channel with index $index not found")
|
println("Sound channel with index $index not found")
|
||||||
it.status(404)
|
it.status(404).result(objectmapper.writeValueAsString(resultMessage("Sound channel with index $index not found")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Sound channel with index $index not found")))
|
|
||||||
} else {
|
} else {
|
||||||
val json: JsonNode = objectmapper.readTree(it.body())
|
val json: JsonNode = objectmapper.readTree(it.body())
|
||||||
println("Received JSON: $json")
|
println("Received JSON: $json")
|
||||||
if (json.isEmpty) {
|
if (json.isEmpty) {
|
||||||
println("UpdateByIndex with index=$index has empty body")
|
println("UpdateByIndex with index=$index has empty body")
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("UpdateByIndex with index=$index has empty body")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("UpdateByIndex with index=$index has empty body")))
|
|
||||||
} else {
|
} else {
|
||||||
val _channel = json.get("description").asText("")
|
val _channel = json.get("description").asText("")
|
||||||
val _ip = json.get("ip").asText("")
|
val _ip = json.get("ip").asText("")
|
||||||
println("Update sound channel with index $index, channel=$_channel, ip=$_ip")
|
println("Update sound channel with index $index, channel=$_channel, ip=$_ip")
|
||||||
if (ValidString(_channel)) {
|
if (ValidString(_channel)){
|
||||||
if (ValidIPV4(_ip)) {
|
if (ValidIPV4(_ip)){
|
||||||
if (_channel.equals(sc.channel) && _ip.equals(sc.ip)) {
|
if (_channel.equals(sc.channel) && _ip.equals(sc.ip)) {
|
||||||
println("Nothing has changed for sound channel with index $index")
|
println("Nothing has changed for sound channel with index $index")
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Nothing has changed for sound channel with index $index")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Nothing has changed for sound channel with index $index")))
|
|
||||||
return@patch
|
return@patch
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
@@ -1359,13 +1310,11 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
println("Invalid IP address")
|
println("Invalid IP address")
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid IP address")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid IP address")))
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
println("Invalid channel")
|
println("Invalid channel")
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid channel")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid channel")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1374,7 +1323,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
get("ExportXLSX") {
|
get("ExportXLSX"){
|
||||||
val xlsxdata = db.soundchannelDB.Export_XLSX()
|
val xlsxdata = db.soundchannelDB.Export_XLSX()
|
||||||
if (xlsxdata != null) {
|
if (xlsxdata != null) {
|
||||||
it.header(
|
it.header(
|
||||||
@@ -1386,15 +1335,13 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
xlsxdata.write(out)
|
xlsxdata.write(out)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to export sound channel to XLSX")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to export sound channel to XLSX")))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
post("ImportXLSX") {
|
post("ImportXLSX"){
|
||||||
val uploaded = it.uploadedFile("file")
|
val uploaded = it.uploadedFile("file")
|
||||||
if (uploaded == null) {
|
if (uploaded == null) {
|
||||||
it.status(400)
|
it.status(400).result(objectmapper.writeValueAsString(resultMessage("No file uploaded")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("No file uploaded")))
|
|
||||||
return@post
|
return@post
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
@@ -1403,8 +1350,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
db.soundchannelDB.Resort()
|
db.soundchannelDB.Resort()
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else {
|
} else {
|
||||||
it.status(500)
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to import sound channel from XLSX")))
|
||||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to import sound channel from XLSX")))
|
|
||||||
}
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
it.status(400)
|
it.status(400)
|
||||||
@@ -1412,6 +1358,69 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Steph : coba tambah untuk QueuePaging Table. Belum ada di JS file(?)
|
||||||
|
path("QueuePaging"){
|
||||||
|
get("List"){
|
||||||
|
it.result(MariaDB.ArrayListtoString(db.queuepagingDB.List))
|
||||||
|
}
|
||||||
|
delete("List"){
|
||||||
|
// truncate queue paging table
|
||||||
|
if (db.queuepagingDB.Clear()) {
|
||||||
|
db.queuepagingDB.Get()
|
||||||
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
|
} else {
|
||||||
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to truncate queue paging table")))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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.queuepagingDB.DeleteByIndex(index.toInt())) {
|
||||||
|
db.queuepagingDB.Resort()
|
||||||
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
|
} else {
|
||||||
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to delete queue paging with index $index")))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Steph : coba tambah untuk QueueTable Table. Belum ada di JS file(?)
|
||||||
|
path("QueueTable"){
|
||||||
|
get("List"){
|
||||||
|
it.result(MariaDB.ArrayListtoString(db.queuetableDB.List))
|
||||||
|
}
|
||||||
|
delete("List"){
|
||||||
|
// truncate queue table
|
||||||
|
if (db.queuetableDB.Clear()) {
|
||||||
|
db.queuetableDB.Get()
|
||||||
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
|
} else {
|
||||||
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to truncate queue sound table")))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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.queuetableDB.DeleteByIndex(index.toInt())) {
|
||||||
|
db.queuetableDB.Resort()
|
||||||
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
|
} else {
|
||||||
|
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to delete queue sound with index $index")))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.start(listenPort)
|
}.start(listenPort)
|
||||||
|
|||||||
Reference in New Issue
Block a user