Commit 30/09/2025
This commit is contained in:
9
.idea/dataSources.xml
generated
9
.idea/dataSources.xml
generated
@@ -1,15 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
|
||||
<data-source source="LOCAL" name="mariadB" uuid="a738dd17-8123-478b-81aa-6ecf4f890ccc">
|
||||
<driver-ref>mariadb</driver-ref>
|
||||
<data-source source="LOCAL" name="mysql" uuid="6f68a2ce-92f6-4203-a8c0-f18965b0d627">
|
||||
<driver-ref>mysql.8</driver-ref>
|
||||
<synchronize>true</synchronize>
|
||||
<jdbc-driver>org.mariadb.jdbc.Driver</jdbc-driver>
|
||||
<jdbc-url>jdbc:mariadb://localhost:3306/aas</jdbc-url>
|
||||
<jdbc-driver>com.mysql.cj.jdbc.Driver</jdbc-driver>
|
||||
<jdbc-url>jdbc:mysql://localhost:3306/aas</jdbc-url>
|
||||
<jdbc-additional-properties>
|
||||
<property name="com.intellij.clouds.kubernetes.db.host.port" />
|
||||
<property name="com.intellij.clouds.kubernetes.db.enabled" value="false" />
|
||||
<property name="com.intellij.clouds.kubernetes.db.resource.type" value="Deployment" />
|
||||
<property name="com.intellij.clouds.kubernetes.db.container.port" />
|
||||
</jdbc-additional-properties>
|
||||
<working-dir>$ProjectFileDir$</working-dir>
|
||||
|
||||
2
.idea/sqldialects.xml
generated
2
.idea/sqldialects.xml
generated
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="SqlDialectMappings">
|
||||
<file url="file://$PROJECT_DIR$/src/database/MariaDB.kt" dialect="GenericSQL" />
|
||||
<file url="file://$PROJECT_DIR$/src/database/MariaDB.kt" dialect="MySQL" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -5,6 +5,7 @@ import com.sun.jna.Platform
|
||||
import commandServer.TCP_Android_Command_Server
|
||||
import content.Language
|
||||
import content.VoiceType
|
||||
import database.Log
|
||||
import database.MariaDB
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -19,7 +20,7 @@ import kotlin.concurrent.fixedRateTimer
|
||||
lateinit var db: MariaDB
|
||||
lateinit var audioPlayer: AudioPlayer
|
||||
val StreamerOutputs: MutableMap<String, BarixConnection> = HashMap()
|
||||
const val version = "0.0.1 (23/09/2025)"
|
||||
const val version = "0.0.2 (23/09/2025)"
|
||||
|
||||
// dipakai untuk pilih voice type, bisa diganti via web nanti
|
||||
var selected_voice = VoiceType.VOICE_1.name
|
||||
@@ -76,14 +77,15 @@ fun main() {
|
||||
val androidserver = TCP_Android_Command_Server()
|
||||
androidserver.StartTcpServer(5003){
|
||||
Logger.info { it }
|
||||
db.Add_Log("ANDROID", it)
|
||||
|
||||
db.logDB.Add(Log.NewLog("ANDROID", it))
|
||||
}
|
||||
|
||||
val barixserver = TCP_Barix_Command_Server()
|
||||
barixserver.StartTcpServer { cmd ->
|
||||
Logger.info { cmd }
|
||||
val _streamer = StreamerOutputs[cmd.ipaddress]
|
||||
val _sc = db.SoundChannelList.find { it.ip == cmd.ipaddress }
|
||||
val _sc = db.soundchannelDB.List.find { it.ip == cmd.ipaddress }
|
||||
if (_streamer == null) {
|
||||
// belum create BarixConnection untuk ipaddress ini
|
||||
Logger.info { "New Streamer Output connection from ${cmd.ipaddress}" }
|
||||
|
||||
@@ -39,7 +39,7 @@ class MainExtension01 {
|
||||
val validchannels = bz
|
||||
// check apakah tiap zone ada di database broadcast zones
|
||||
.filter { z1 ->
|
||||
db.BroadcastZoneList.find { z2 -> z2.SoundChannel == z1 } != null
|
||||
db.broadcastDB.List.find { z2 -> z2.SoundChannel == z1 } != null
|
||||
}
|
||||
// check apakah tiap zone ada di SoundChannelList dan Online
|
||||
.filter { z3 ->
|
||||
@@ -75,7 +75,7 @@ class MainExtension01 {
|
||||
fun Get_MessageBank_by_id(id: Int, languages: List<String> = urutan_bahasa): ArrayList<Messagebank> {
|
||||
val mb_list = ArrayList<Messagebank>()
|
||||
languages.forEach { lang ->
|
||||
db.MessagebankList.find { mb -> mb.ANN_ID == id.toUInt() && mb.Language == lang && mb.Voice_Type == selected_voice }
|
||||
db.messageDB.List.find { mb -> mb.ANN_ID == id.toUInt() && mb.Language == lang && mb.Voice_Type == selected_voice }
|
||||
?.let {
|
||||
mb_list.add(it)
|
||||
}
|
||||
@@ -169,7 +169,7 @@ class MainExtension01 {
|
||||
return
|
||||
}
|
||||
// dapatkan soundbank array berdasarkan VoiceType dan Language
|
||||
val sb = db.SoundbankList
|
||||
val sb = db.soundDB.List
|
||||
.filter { it.VoiceType == mb.Voice_Type }
|
||||
.filter { it.Language == mb.Language }
|
||||
if (sb.isEmpty()) {
|
||||
@@ -479,7 +479,8 @@ class MainExtension01 {
|
||||
* Read and process Queue_Paging table.
|
||||
*/
|
||||
fun Read_Queue_Paging(){
|
||||
for (qp in db.Read_Queue_Paging()) {
|
||||
db.queuepagingDB.Get()
|
||||
for (qp in db.queuepagingDB.List) {
|
||||
if (qp.BroadcastZones.isNotBlank()) {
|
||||
val zz = qp.BroadcastZones.split(";")
|
||||
if (AllBroadcastZonesValid(zz)) {
|
||||
@@ -496,12 +497,12 @@ class MainExtension01 {
|
||||
"Broadcast started PAGING with Filename '${qp.Message}' to zones: ${qp.BroadcastZones}"
|
||||
Logger.info { logmessage }
|
||||
db.Add_Log("AAS", logmessage)
|
||||
db.Delete_Queue_Paging_by_index(qp.index)
|
||||
db.queuepagingDB.DeleteByIndex(qp.index.toInt())
|
||||
|
||||
return
|
||||
} else {
|
||||
// file tidak valid, delete from queue paging
|
||||
db.Delete_Queue_Paging_by_index(qp.index)
|
||||
db.queuepagingDB.DeleteByIndex(qp.index.toInt())
|
||||
db.Add_Log(
|
||||
"AAS",
|
||||
"Cancelled paging message with index ${qp.index} due to invalid audio file"
|
||||
@@ -552,7 +553,7 @@ class MainExtension01 {
|
||||
"Broadcast started SHALAT message with generated file '$targetfile' to zones: ${qp.BroadcastZones}"
|
||||
Logger.info { logmsg }
|
||||
db.Add_Log("AAS", logmsg)
|
||||
db.Delete_Queue_Paging_by_index(qp.index)
|
||||
db.queuepagingDB.DeleteByIndex(qp.index.toInt())
|
||||
} else {
|
||||
db.Add_Log(
|
||||
"AAS",
|
||||
@@ -565,13 +566,13 @@ class MainExtension01 {
|
||||
|
||||
},
|
||||
{ err ->
|
||||
db.Delete_Queue_Paging_by_index(qp.index)
|
||||
db.queuepagingDB.DeleteByIndex(qp.index.toInt())
|
||||
db.Add_Log("AAS", err)
|
||||
}
|
||||
)
|
||||
} else {
|
||||
// tidak ada messagebank dengan ann_id ini, delete from queue paging
|
||||
db.Delete_Queue_Paging_by_index(qp.index)
|
||||
db.queuepagingDB.DeleteByIndex(qp.index.toInt())
|
||||
db.Add_Log(
|
||||
"AAS",
|
||||
"Cancelled Shalat message with index ${qp.index} due to ANN_ID $ann_id not found in Messagebank"
|
||||
@@ -580,7 +581,7 @@ class MainExtension01 {
|
||||
}
|
||||
} else {
|
||||
// invalid ann_id, delete from queue paging
|
||||
db.Delete_Queue_Paging_by_index(qp.index)
|
||||
db.queuepagingDB.DeleteByIndex(qp.index.toInt())
|
||||
db.Add_Log(
|
||||
"AAS",
|
||||
"Cancelled Shalat message with index ${qp.index} due to invalid ANN_ID"
|
||||
@@ -590,7 +591,7 @@ class MainExtension01 {
|
||||
}
|
||||
} else {
|
||||
// ada broadcast zone yang tidak valid, delete from queue paging
|
||||
db.Delete_Queue_Paging_by_index(qp.index)
|
||||
db.queuepagingDB.DeleteByIndex(qp.index.toInt())
|
||||
db.Add_Log(
|
||||
"AAS",
|
||||
"Cancelled paging message with index ${qp.index} due to invalid broadcast zone"
|
||||
@@ -598,7 +599,7 @@ class MainExtension01 {
|
||||
}
|
||||
} else {
|
||||
// invalid broadcast zone, delete from queue paging
|
||||
db.Delete_Queue_Paging_by_index(qp.index)
|
||||
db.queuepagingDB.DeleteByIndex(qp.index.toInt())
|
||||
db.Add_Log("AAS", "Cancelled paging message with index ${qp.index} due to empty broadcast zone")
|
||||
}
|
||||
}
|
||||
@@ -609,7 +610,8 @@ class MainExtension01 {
|
||||
* Read and process Queue_Table table.
|
||||
*/
|
||||
fun Read_Queue_Table(){
|
||||
db.Read_Queue_Table().forEach { qa ->
|
||||
db.queuetableDB.Get()
|
||||
db.queuetableDB.List.forEach { qa ->
|
||||
if (qa.BroadcastZones.isNotEmpty()) {
|
||||
val zz = qa.BroadcastZones.split(";")
|
||||
if (AllBroadcastZonesValid(zz)) {
|
||||
@@ -645,7 +647,7 @@ class MainExtension01 {
|
||||
"AAS",
|
||||
"Cancelled SOUNDBANK message with index ${qa.index} due to missing or invalid ANN_ID in SB_TAGS"
|
||||
)
|
||||
db.Delete_Queue_Table_by_index(qa.index)
|
||||
db.queuetableDB.DeleteByIndex(qa.index.toInt())
|
||||
return@forEach
|
||||
}
|
||||
// sampe sini punya ann_id valid
|
||||
@@ -680,7 +682,7 @@ class MainExtension01 {
|
||||
"Broadcast started SOUNDBANK message with generated file '$targetfile' to zones: ${qa.BroadcastZones}"
|
||||
Logger.info { logmsg }
|
||||
db.Add_Log("AAS", logmsg)
|
||||
db.Delete_Queue_Table_by_index(qa.index)
|
||||
db.queuetableDB.DeleteByIndex(qa.index.toInt())
|
||||
|
||||
}
|
||||
}
|
||||
@@ -690,12 +692,12 @@ class MainExtension01 {
|
||||
{
|
||||
err ->
|
||||
db.Add_Log("AAS", err)
|
||||
db.Delete_Queue_Table_by_index(qa.index)
|
||||
db.queuetableDB.DeleteByIndex(qa.index.toInt())
|
||||
})
|
||||
}
|
||||
} else {
|
||||
// tidak ada messagebank dengan ann_id ini, delete from queue table
|
||||
db.Delete_Queue_Table_by_index(qa.index)
|
||||
db.queuetableDB.DeleteByIndex(qa.index.toInt())
|
||||
db.Add_Log(
|
||||
"AAS",
|
||||
"Cancelled SOUNDBANK message with index ${qa.index} due to ANN_ID $ann_id not found in Messagebank"
|
||||
@@ -735,7 +737,7 @@ class MainExtension01 {
|
||||
"Broadcast started TIMER message with generated file '$targetfile' to zones: ${qa.BroadcastZones}"
|
||||
Logger.info { logmsg }
|
||||
db.Add_Log("AAS", logmsg)
|
||||
db.Delete_Queue_Table_by_index(qa.index)
|
||||
db.queuetableDB.DeleteByIndex(qa.index.toInt())
|
||||
}
|
||||
}
|
||||
db.Add_Log("AAS", message)
|
||||
@@ -744,13 +746,13 @@ class MainExtension01 {
|
||||
{
|
||||
err ->
|
||||
db.Add_Log("AAS", err)
|
||||
db.Delete_Queue_Table_by_index(qa.index)
|
||||
db.queuetableDB.DeleteByIndex(qa.index.toInt())
|
||||
})
|
||||
}
|
||||
|
||||
} else {
|
||||
// tidak ada messagebank dengan ann_id ini, delete from queue table
|
||||
db.Delete_Queue_Table_by_index(qa.index)
|
||||
db.queuetableDB.DeleteByIndex(qa.index.toInt())
|
||||
db.Add_Log(
|
||||
"AAS",
|
||||
"Cancelled TIMER with index ${qa.index} due to ANN_ID $ann_id not found in Messagebank"
|
||||
@@ -758,7 +760,7 @@ class MainExtension01 {
|
||||
}
|
||||
} else {
|
||||
// invalid ann_id, delete from queue table
|
||||
db.Delete_Queue_Table_by_index(qa.index)
|
||||
db.queuetableDB.DeleteByIndex(qa.index.toInt())
|
||||
db.Add_Log(
|
||||
"AAS",
|
||||
"Cancelled TIMER with index ${qa.index} due to invalid ANN_ID"
|
||||
@@ -769,7 +771,7 @@ class MainExtension01 {
|
||||
}
|
||||
} else {
|
||||
// ada broadcast zone yang tidak valid, delete from queue table
|
||||
db.Delete_Queue_Table_by_index(qa.index)
|
||||
db.queuetableDB.DeleteByIndex(qa.index.toInt())
|
||||
db.Add_Log(
|
||||
"AAS",
|
||||
"Cancelled table message with index ${qa.index} due to invalid broadcast zone"
|
||||
@@ -777,7 +779,7 @@ class MainExtension01 {
|
||||
}
|
||||
} else {
|
||||
// invalid broadcast zone, delete from queue table
|
||||
db.Delete_Queue_Table_by_index(qa.index)
|
||||
db.queuetableDB.DeleteByIndex(qa.index.toInt())
|
||||
db.Add_Log("AAS", "Cancelled table message with index ${qa.index} due to empty broadcast zone")
|
||||
}
|
||||
}
|
||||
@@ -794,7 +796,7 @@ class MainExtension01 {
|
||||
// detik harus 00
|
||||
if (localtime.second != 0) return
|
||||
val timestring = timeformat2.format(localtime)
|
||||
val sch = db.SchedulebankList.filter {
|
||||
val sch = db.scheduleDB.List.filter {
|
||||
it.Time == timestring && it.Enable
|
||||
}
|
||||
// tidak ada schedule dengan time sekarang dan enable=true
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package database
|
||||
|
||||
@Suppress("unused")
|
||||
data class BroadcastZones(var index: UInt, var description: String, var SoundChannel: String, var Box: String, var Relay: String)
|
||||
data class BroadcastZones(var index: UInt, var description: String, var SoundChannel: String, var id: String, var bp: String)
|
||||
|
||||
3
src/database/BroadcastZonesHtml.kt
Normal file
3
src/database/BroadcastZonesHtml.kt
Normal file
@@ -0,0 +1,3 @@
|
||||
package database
|
||||
|
||||
data class BroadcastZonesHtml(var index: UInt, var description: String, var SoundChannel: String, var Box: String, var Relay: String)
|
||||
@@ -7,4 +7,17 @@ data class Log(
|
||||
val timenya: String,
|
||||
val machine: String,
|
||||
val description : String
|
||||
)
|
||||
){
|
||||
companion object{
|
||||
|
||||
fun NewLog(
|
||||
machine: String,
|
||||
description: String
|
||||
) : Log {
|
||||
val current = java.time.LocalDateTime.now()
|
||||
val date = current.toLocalDate().toString() // format YYYY-MM-DD
|
||||
val time = current.toLocalTime().withNano(0).toString() // format HH:MM:SS
|
||||
return Log(0u, date, time, machine, description)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
package database
|
||||
|
||||
@Suppress("unused")
|
||||
data class UserDB(var index: UInt, var username: String, var password: String, var location: String)
|
||||
data class UserDB(var index: UInt, var username: String, var password: String, var location: String, var soundbank_tags: String, var messagebank_ann_id: String, var broadcastzones: String)
|
||||
|
||||
@@ -1,20 +1,106 @@
|
||||
package database
|
||||
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook
|
||||
import org.tinylog.Logger
|
||||
import java.sql.Connection
|
||||
|
||||
@Suppress("unused", "SqlDialectInspection", "SqlSourceToSinkFlow")
|
||||
abstract class dbFunctions<T>(val dbName: String, val connection: Connection) {
|
||||
var List : ArrayList<T> = ArrayList()
|
||||
fun Clear(){
|
||||
|
||||
/**
|
||||
* Clear all entries in the table
|
||||
* @return true if successful, false otherwise
|
||||
*/
|
||||
open fun Clear() : Boolean{
|
||||
try {
|
||||
val statement = connection.createStatement()
|
||||
// use TRUNCATE to reset auto increment index
|
||||
statement?.executeUpdate("TRUNCATE TABLE $dbName")
|
||||
Logger.info("$dbName table cleared" as Any)
|
||||
List.clear()
|
||||
return true
|
||||
} catch (e: Exception) {
|
||||
Logger.error("Error clearing $dbName table: ${e.message}" as Any)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
fun DeleteByIndex(index: Int) {
|
||||
|
||||
/**
|
||||
* Delete entry by index
|
||||
* @param index The index of the entry to delete
|
||||
* @return true if successful, false otherwise
|
||||
*/
|
||||
open fun DeleteByIndex(index: Int) : Boolean{
|
||||
try {
|
||||
val statement = connection.prepareStatement("DELETE FROM $dbName WHERE `index` = ?")
|
||||
statement?.setLong(1, index.toLong())
|
||||
val rowsAffected = statement?.executeUpdate()
|
||||
if (rowsAffected != null && rowsAffected > 0) {
|
||||
Logger.info("Deleted $rowsAffected row(s) from $dbName with index $index" as Any)
|
||||
return true
|
||||
} else {
|
||||
Logger.warn("No rows deleted from $dbName with index $index" as Any)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Logger.error("Error deleting from $dbName with index $index: ${e.message}" as Any)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/**
|
||||
* Create the table if it does not exist
|
||||
*/
|
||||
abstract fun Create()
|
||||
abstract fun Get(): ArrayList<T>
|
||||
|
||||
protected fun Create(tableDefinition: String) {
|
||||
try {
|
||||
val statement = connection.createStatement()
|
||||
statement?.executeUpdate(tableDefinition)
|
||||
Logger.info("$dbName table ensured to exists" as Any)
|
||||
} catch (e: Exception) {
|
||||
Logger.error("Error creating $dbName table: ${e.message}" as Any)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all entries from the table and populate the List
|
||||
*/
|
||||
abstract fun Get()
|
||||
|
||||
/**
|
||||
* Add a new entry to the table
|
||||
* @param data The data to add
|
||||
* @return true if successful, false otherwise
|
||||
*/
|
||||
abstract fun Add(data: T): Boolean
|
||||
|
||||
/**
|
||||
* Add multiple entries to the table
|
||||
* @param data The list of data to add
|
||||
* @return true if successful, false otherwise
|
||||
*/
|
||||
abstract fun AddAll(data: ArrayList<T>): Boolean
|
||||
|
||||
/**
|
||||
* Update an existing entry by index
|
||||
* @param index The index of the entry to update
|
||||
* @param data The new data
|
||||
* @return true if successful, false otherwise
|
||||
*/
|
||||
abstract fun UpdateByIndex(index: Int, data: T): Boolean
|
||||
abstract fun Resort(): Boolean
|
||||
|
||||
/**
|
||||
* Import the table from XLSX format
|
||||
* @param workbook The XSSFWorkbook object to import from
|
||||
* @return true if successful, false otherwise
|
||||
*/
|
||||
abstract fun Import_XLSX(workbook: XSSFWorkbook) : Boolean
|
||||
|
||||
/**
|
||||
* Export the table to XLSX format
|
||||
* @return XSSFWorkbook object if successful, null otherwise
|
||||
*/
|
||||
abstract fun Export_XLSX() : XSSFWorkbook?
|
||||
}
|
||||
@@ -16,6 +16,7 @@ import content.Language
|
||||
import content.ScheduleDay
|
||||
import content.VoiceType
|
||||
import database.BroadcastZones
|
||||
import database.BroadcastZonesHtml
|
||||
import database.LanguageLink
|
||||
import database.MariaDB
|
||||
import database.Messagebank
|
||||
@@ -129,11 +130,11 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
}
|
||||
|
||||
"getPagingQueue" ->{
|
||||
SendReply(wsMessageContext, cmd.command, objectmapper.writeValueAsString(db.Read_Queue_Paging()))
|
||||
SendReply(wsMessageContext, cmd.command, objectmapper.writeValueAsString(db.queuepagingDB.List))
|
||||
}
|
||||
|
||||
"getAASQueue" ->{
|
||||
SendReply(wsMessageContext, cmd.command, objectmapper.writeValueAsString(db.Read_Queue_Table()))
|
||||
SendReply(wsMessageContext, cmd.command, objectmapper.writeValueAsString(db.queuetableDB.List))
|
||||
}
|
||||
|
||||
"getStreamerOutputs" -> {
|
||||
@@ -197,7 +198,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
}
|
||||
path("SoundBank") {
|
||||
get("List") {
|
||||
it.result(MariaDB.ArrayListtoString(db.SoundbankList))
|
||||
it.result(MariaDB.ArrayListtoString(db.soundDB.List))
|
||||
}
|
||||
get("ListFiles"){
|
||||
it.result(objectmapper.writeValueAsString(ListAudioFiles("C:\\soundbank")))
|
||||
@@ -211,13 +212,13 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
if (ValidString(addvalue.Language)) {
|
||||
if (ValidString(addvalue.Path)) {
|
||||
// check apakah TAG sudah ada untuk language dan category yang sama
|
||||
val exists = db.SoundbankList.any { sb ->
|
||||
val exists = db.soundDB.List.any { sb ->
|
||||
sb.TAG == addvalue.TAG && sb.Language == addvalue.Language && sb.Category == addvalue.Category
|
||||
}
|
||||
if (!exists) {
|
||||
if (ValidFile(addvalue.Path)) {
|
||||
if (db.Add_Soundbank(addvalue)) {
|
||||
db.Resort_Soundbank_by_Description()
|
||||
if (db.soundDB.Add(addvalue)) {
|
||||
db.soundDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else it.status(500)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to add soundbank to database")))
|
||||
@@ -236,8 +237,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
}
|
||||
delete("List") {
|
||||
// truncate soundbank table
|
||||
if (db.Clear_Soundbank()) {
|
||||
db.Reload_Soundbank()
|
||||
if (db.soundDB.Clear()) {
|
||||
db.soundDB.Get()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to truncate soundbank table")))
|
||||
@@ -249,8 +250,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
if (index == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid index")))
|
||||
} else {
|
||||
if (db.Delete_Soundbank_by_index(index)) {
|
||||
db.Resort_Soundbank_by_Description()
|
||||
if (db.soundDB.DeleteByIndex(index.toInt())) {
|
||||
db.soundDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to delete soundbank with index $index")))
|
||||
@@ -264,7 +265,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
// tidak ada path param index
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid index")))
|
||||
} else {
|
||||
val sb = db.SoundbankList.find { xx -> xx.index == index }
|
||||
val sb = db.soundDB.List.find { xx -> xx.index == index }
|
||||
if (sb == null) {
|
||||
// soundbank dengan index tersebut tidak ditemukan
|
||||
it.status(404).result(objectmapper.writeValueAsString(resultMessage("Soundbank with index $index not found")))
|
||||
@@ -313,8 +314,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
}
|
||||
}
|
||||
if (changed) {
|
||||
if (db.Update_Soundbank_by_index(index, sb)) {
|
||||
db.Resort_Soundbank_by_Description()
|
||||
if (db.soundDB.UpdateByIndex(index.toInt(), sb)) {
|
||||
db.soundDB.Resort()
|
||||
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)
|
||||
@@ -324,7 +325,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
}
|
||||
}
|
||||
get("ExportXLSX") {
|
||||
val xlsxdata = db.Export_Soundbank_XLSX()
|
||||
val xlsxdata = db.soundDB.Export_XLSX()
|
||||
if (xlsxdata != null) {
|
||||
it.header(
|
||||
"Content-Type",
|
||||
@@ -346,8 +347,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
}
|
||||
try {
|
||||
val xlsx = XSSFWorkbook(uploaded.content())
|
||||
if (db.Import_Soundbank_XLSX(xlsx)) {
|
||||
db.Resort_Soundbank_by_Description()
|
||||
if (db.soundDB.Import_XLSX(xlsx)) {
|
||||
db.soundDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to import soundbank from XLSX")))
|
||||
@@ -360,7 +361,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
path("MessageBank") {
|
||||
get("List") {
|
||||
// get messagebank list
|
||||
it.result(MariaDB.ArrayListtoString(db.MessagebankList))
|
||||
it.result(MariaDB.ArrayListtoString(db.messageDB.List))
|
||||
}
|
||||
post("Add"){
|
||||
val json : JsonNode = objectmapper.readTree(it.body())
|
||||
@@ -377,8 +378,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
if (message_detail.isNotEmpty()){
|
||||
if (message_tags.isNotEmpty()){
|
||||
val mb = Messagebank(0u, description, language, ann_id, voice_type, message_detail, message_tags)
|
||||
if (db.Add_Messagebank(mb)){
|
||||
db.Resort_Messagebank_by_ANN_ID()
|
||||
if (db.messageDB.Add(mb)){
|
||||
db.messageDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to add messagebank to database")))
|
||||
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Message_TAGS")))
|
||||
@@ -390,8 +391,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
}
|
||||
delete("List") {
|
||||
// truncate messagebank table
|
||||
if (db.Clear_Messagebank()) {
|
||||
db.Reload_Messagebank()
|
||||
if (db.messageDB.Clear()) {
|
||||
db.messageDB.Get()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to truncate messagebank table")))
|
||||
@@ -403,8 +404,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
if (index == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid index")))
|
||||
} else {
|
||||
if (db.Delete_Messagebank_by_index(index)) {
|
||||
db.Resort_Messagebank_by_ANN_ID()
|
||||
if (db.messageDB.DeleteByIndex(index.toInt())) {
|
||||
db.messageDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to delete messagebank with index $index")))
|
||||
@@ -417,7 +418,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
if (index == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid index")))
|
||||
} else {
|
||||
val mb = db.MessagebankList.find { xx -> xx.index == index }
|
||||
val mb = db.messageDB.List.find { xx -> xx.index == index }
|
||||
if (mb == null) {
|
||||
it.status(404).result(objectmapper.writeValueAsString(resultMessage("Messagebank with index $index not found")))
|
||||
} else {
|
||||
@@ -463,8 +464,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
changed = true
|
||||
}
|
||||
if (changed) {
|
||||
if (db.Update_Messagebank_by_index(index, mb)) {
|
||||
db.Resort_Messagebank_by_ANN_ID()
|
||||
if (db.messageDB.UpdateByIndex(index.toInt(), mb)) {
|
||||
db.messageDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else it.status(500)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to update messagebank with index $index")))
|
||||
@@ -475,7 +476,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
}
|
||||
}
|
||||
get("ExportXLSX") {
|
||||
val xlsxdata = db.Export_Messagebank_XLSX()
|
||||
val xlsxdata = db.messageDB.Export_XLSX()
|
||||
if (xlsxdata != null) {
|
||||
it.header(
|
||||
"Content-Type",
|
||||
@@ -497,8 +498,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
}
|
||||
try {
|
||||
val xlsx = XSSFWorkbook(uploaded.content())
|
||||
if (db.Import_Messagebank_XLSX(xlsx)) {
|
||||
db.Resort_Messagebank_by_ANN_ID()
|
||||
if (db.messageDB.Import_XLSX(xlsx)) {
|
||||
db.messageDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to import messagebank from XLSX")))
|
||||
@@ -511,7 +512,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
path("LanguageLink") {
|
||||
get("List") {
|
||||
// get language link list
|
||||
it.result(MariaDB.ArrayListtoString(db.LanguageLinkList))
|
||||
it.result(MariaDB.ArrayListtoString(db.languageDB.List))
|
||||
}
|
||||
post("Add"){
|
||||
// Parse JSON from request body
|
||||
@@ -521,10 +522,10 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
println("Add Language Link, tag=$tag, languages=$languages")
|
||||
if (ValidString(tag)){
|
||||
if (languages.all { xx -> Language.entries.any { yy -> yy.name.equals(xx,true)} }){
|
||||
if (!db.LanguageLinkList.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(";"))
|
||||
if (db.Add_LanguageLink(newvalue)){
|
||||
db.Resort_LanguageLink_by_TAG()
|
||||
if (db.languageDB.Add(newvalue)){
|
||||
db.languageDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to add language link to database")))
|
||||
@@ -545,8 +546,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
}
|
||||
delete("List") {
|
||||
// truncate language link table
|
||||
if (db.Clear_LanguageLink()) {
|
||||
db.Reload_LanguageLink()
|
||||
if (db.languageDB.Clear()) {
|
||||
db.languageDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to truncate language link table")))
|
||||
@@ -558,8 +559,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
if (index == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid index")))
|
||||
} else {
|
||||
if (db.Delete_LanguageLink_by_index(index)) {
|
||||
db.Resort_LanguageLink_by_TAG()
|
||||
if (db.languageDB.DeleteByIndex(index.toInt())) {
|
||||
db.languageDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to delete language link with index $index")))
|
||||
@@ -572,7 +573,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
if (index == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid index")))
|
||||
} else {
|
||||
val ll = db.LanguageLinkList.find { xx -> xx.index == index }
|
||||
val ll = db.languageDB.List.find { xx -> xx.index == index }
|
||||
if (ll == null) {
|
||||
it.status(404).result(objectmapper.writeValueAsString(resultMessage("Language link with index $index not found")))
|
||||
} else {
|
||||
@@ -592,8 +593,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
changed = true
|
||||
}
|
||||
if (changed) {
|
||||
if (db.Update_LanguageLink_by_index(index, ll)) {
|
||||
db.Resort_LanguageLink_by_TAG()
|
||||
if (db.languageDB.UpdateByIndex(index.toInt(), ll)) {
|
||||
db.languageDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else it.status(500)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to update language link with index $index")))
|
||||
@@ -604,7 +605,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
}
|
||||
}
|
||||
get("ExportXLSX") {
|
||||
val xlsxdata = db.Export_LanguageLink_XLSX()
|
||||
val xlsxdata = db.languageDB.Export_XLSX()
|
||||
if (xlsxdata != null) {
|
||||
it.header(
|
||||
"Content-Type",
|
||||
@@ -626,8 +627,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
}
|
||||
try {
|
||||
val xlsx = XSSFWorkbook(uploaded.content())
|
||||
if (db.Import_LanguageLink_XLSX(xlsx)) {
|
||||
db.Resort_LanguageLink_by_TAG()
|
||||
if (db.languageDB.Import_XLSX(xlsx)) {
|
||||
db.languageDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to import language link from XLSX")))
|
||||
@@ -640,12 +641,12 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
path("ScheduleBank") {
|
||||
get("List") {
|
||||
// get timer list
|
||||
it.result(MariaDB.ArrayListtoString(db.SchedulebankList))
|
||||
it.result(MariaDB.ArrayListtoString(db.scheduleDB.List))
|
||||
}
|
||||
delete("List") {
|
||||
// truncate timer table
|
||||
if (db.Clear_Schedulebank()) {
|
||||
db.Reload_Schedulebank()
|
||||
if (db.scheduleDB.Clear()) {
|
||||
db.scheduleDB.Get()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to truncate schedulebank table")))
|
||||
@@ -657,8 +658,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
if (index == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid index")))
|
||||
} else {
|
||||
if (db.Delete_Schedulebank_by_index(index)) {
|
||||
db.Resort_Schedulebank_by_Day_Time()
|
||||
if (db.scheduleDB.DeleteByIndex(index.toInt())) {
|
||||
db.scheduleDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to delete schedule with index $index")))
|
||||
@@ -671,7 +672,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
if (index == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid index")))
|
||||
} else {
|
||||
val sb = db.SchedulebankList.find { xx -> xx.index == index }
|
||||
val sb = db.scheduleDB.List.find { xx -> xx.index == index }
|
||||
if (sb == null) {
|
||||
it.status(404).result(objectmapper.writeValueAsString(resultMessage("Schedule with index $index not found")))
|
||||
} else {
|
||||
@@ -736,8 +737,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
}
|
||||
}
|
||||
if (changed) {
|
||||
if (db.Update_Schedulebank_by_index(index, sb)) {
|
||||
db.Resort_Schedulebank_by_Day_Time()
|
||||
if (db.scheduleDB.UpdateByIndex(index.toInt(), sb)) {
|
||||
db.scheduleDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else it.status(500)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to update schedule with index $index")))
|
||||
@@ -748,7 +749,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
}
|
||||
}
|
||||
get("ExportXLSX") {
|
||||
val xlsxdata = db.Export_Schedulebank_XLSX()
|
||||
val xlsxdata = db.scheduleDB.Export_XLSX()
|
||||
if (xlsxdata != null) {
|
||||
it.header(
|
||||
"Content-Type",
|
||||
@@ -770,8 +771,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
}
|
||||
try {
|
||||
val xlsx = XSSFWorkbook(uploaded.content())
|
||||
if (db.Import_Schedulebank_XLSX(xlsx)) {
|
||||
db.Resort_Schedulebank_by_Day_Time()
|
||||
if (db.scheduleDB.Import_XLSX(xlsx)) {
|
||||
db.scheduleDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to import schedulebank from XLSX")))
|
||||
@@ -788,6 +789,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
if (ValiDateForLogHtml(logdate)) {
|
||||
if (ValidString(logfilter)) {
|
||||
// ada log filter
|
||||
|
||||
db.GetLogForHtml(logdate, logfilter) {
|
||||
get1.result(MariaDB.ArrayListtoString(it))
|
||||
}
|
||||
@@ -828,13 +830,23 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
}
|
||||
path("BroadcastZones"){
|
||||
get("List") {
|
||||
// get broadcast zones list
|
||||
it.result(MariaDB.ArrayListtoString(db.BroadcastZoneList))
|
||||
// TODO : temporary, convert BroadcastZones to BroadcastZonesHtml, karena harus revisi javascript di Bootstrap Studio
|
||||
val newlist: ArrayList<BroadcastZonesHtml> = db.broadcastDB.List.map { xx ->
|
||||
BroadcastZonesHtml(
|
||||
xx.index,
|
||||
xx.description,
|
||||
xx.SoundChannel,
|
||||
xx.id,
|
||||
xx.bp
|
||||
)
|
||||
} as ArrayList<BroadcastZonesHtml>
|
||||
|
||||
it.result(MariaDB.ArrayListtoString(newlist))
|
||||
}
|
||||
delete("List"){
|
||||
// truncate broadcast zones table
|
||||
if (db.Clear_BroadcastZones()) {
|
||||
db.GetBroadcastZones()
|
||||
if (db.broadcastDB.Clear()) {
|
||||
db.broadcastDB.Get()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to truncate broadcast zones table")))
|
||||
@@ -851,8 +863,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
if (ValidString(_box)){
|
||||
if (ValidString(_relay)){
|
||||
val newbp = BroadcastZones(0u,_description,_soundchannel,_box,_relay)
|
||||
if (db.Add_BroadcastZones(newbp)){
|
||||
db.Resort_BroadcastZones_by_description()
|
||||
if (db.broadcastDB.Add(newbp)){
|
||||
db.broadcastDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to add broadcast zone to database")))
|
||||
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Relay")))
|
||||
@@ -866,8 +878,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
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()
|
||||
if (db.broadcastDB.DeleteByIndex(index.toInt())) {
|
||||
db.broadcastDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to delete broadcast zone with index $index")))
|
||||
@@ -880,7 +892,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
if (index == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid index")))
|
||||
} else {
|
||||
val bz = db.BroadcastZoneList.find { xx -> xx.index == index }
|
||||
val bz = db.broadcastDB.List.find { xx -> xx.index == index }
|
||||
if (bz == null) {
|
||||
it.status(404).result(objectmapper.writeValueAsString(resultMessage("Broadcast zone with index $index not found")))
|
||||
} else {
|
||||
@@ -901,17 +913,17 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
bz.SoundChannel = _soundchannel
|
||||
changed = true
|
||||
}
|
||||
if (ValidString(_box) && _box != bz.Box) {
|
||||
bz.Box = _box
|
||||
if (ValidString(_box) && _box != bz.id) {
|
||||
bz.id = _box
|
||||
changed = true
|
||||
}
|
||||
if (ValidString(_relay) && _relay != bz.Relay) {
|
||||
bz.Relay = _relay
|
||||
if (ValidString(_relay) && _relay != bz.bp) {
|
||||
bz.bp = _relay
|
||||
changed = true
|
||||
}
|
||||
if (changed) {
|
||||
if (db.Update_BroadcastZones_by_index(index, bz)) {
|
||||
db.Resort_BroadcastZones_by_description()
|
||||
if (db.broadcastDB.UpdateByIndex(index.toInt(), bz)) {
|
||||
db.broadcastDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else it.status(500)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to update broadcast zone with index $index")))
|
||||
@@ -923,7 +935,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
|
||||
}
|
||||
get("ExportXLSX") {
|
||||
val xlsxdata = db.Export_BroadcastZones_XLSX()
|
||||
val xlsxdata = db.broadcastDB.Export_XLSX()
|
||||
if (xlsxdata != null) {
|
||||
it.header(
|
||||
"Content-Type",
|
||||
@@ -945,8 +957,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
}
|
||||
try {
|
||||
val xlsx = XSSFWorkbook(uploaded.content())
|
||||
if (db.Import_BroadcastZones_XLSX(xlsx)) {
|
||||
db.Resort_BroadcastZones_by_description()
|
||||
if (db.broadcastDB.Import_XLSX(xlsx)) {
|
||||
db.broadcastDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to import broadcast zones from XLSX")))
|
||||
@@ -959,12 +971,12 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
}
|
||||
path("SoundChannel"){
|
||||
get("List"){
|
||||
it.result(MariaDB.ArrayListtoString(db.SoundChannelList))
|
||||
it.result(MariaDB.ArrayListtoString(db.soundchannelDB.List))
|
||||
}
|
||||
delete("List"){
|
||||
// truncate sound channel table
|
||||
if (db.Clear_SoundChannel()) {
|
||||
db.GetSoundChannel()
|
||||
if (db.soundchannelDB.Clear()) {
|
||||
db.soundchannelDB.Get()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to truncate sound channel table")))
|
||||
@@ -976,7 +988,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
if (index == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid index")))
|
||||
} else {
|
||||
val sc = db.SoundChannelList.find { xx -> xx.index == index }
|
||||
val sc = db.soundchannelDB.List.find { xx -> xx.index == index }
|
||||
if (sc == null) {
|
||||
println("Sound channel with index $index not found")
|
||||
it.status(404).result(objectmapper.writeValueAsString(resultMessage("Sound channel with index $index not found")))
|
||||
@@ -999,7 +1011,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
} else {
|
||||
|
||||
// cek apakah ada soundchannel lain yang pakai ip dan channel yang sama
|
||||
if (db.SoundChannelList.any { xx -> xx.index != index && _ip.equals(xx.ip) && _channel.equals(xx.channel, true) }) {
|
||||
if (db.soundchannelDB.List.any { xx -> xx.index != index && _ip.equals(xx.ip) && _channel.equals(xx.channel, true) }) {
|
||||
println("Another sound channel already uses IP $_ip and channel $_channel")
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Another sound channel already uses IP $_ip and channel $_channel")))
|
||||
return@patch
|
||||
@@ -1007,9 +1019,9 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
|
||||
// ada sesuatu yang ganti
|
||||
val newsc = SoundChannel(0u, _channel, _ip)
|
||||
if (db.Update_SoundChannel_by_index(index,newsc)){
|
||||
if (db.soundchannelDB.UpdateByIndex(index.toInt(),newsc)){
|
||||
println("Updated sound channel with index $index")
|
||||
db.Resort_SoundChannel_by_index()
|
||||
db.soundchannelDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
println("Failed to update sound channel with index $index")
|
||||
@@ -1035,7 +1047,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
|
||||
}
|
||||
get("ExportXLSX"){
|
||||
val xlsxdata = db.Export_SoundChannel_XLSX()
|
||||
val xlsxdata = db.soundchannelDB.Export_XLSX()
|
||||
if (xlsxdata != null) {
|
||||
it.header(
|
||||
"Content-Type",
|
||||
@@ -1057,8 +1069,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
}
|
||||
try {
|
||||
val xlsx = XSSFWorkbook(uploaded.content())
|
||||
if (db.Import_SoundChannel_XLSX(xlsx)) {
|
||||
db.Resort_SoundChannel_by_index()
|
||||
if (db.soundchannelDB.Import_XLSX(xlsx)) {
|
||||
db.soundchannelDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to import sound channel from XLSX")))
|
||||
|
||||
Reference in New Issue
Block a user