commit 28/08/2025
This commit is contained in:
@@ -105,6 +105,34 @@ class MariaDB (
|
||||
connected = false
|
||||
}
|
||||
|
||||
/**
|
||||
* Add Log to database
|
||||
* @param machine The machine name or identifier.
|
||||
* @param description The description of the log entry.
|
||||
*/
|
||||
fun Add_Log(machine: String, description: String){
|
||||
val currentDate = java.time.LocalDate.now()
|
||||
val currentTime = java.time.LocalTime.now().withNano(0) // remove nanoseconds for cleaner format
|
||||
val dateString = currentDate.format(java.time.format.DateTimeFormatter.ofPattern("dd/MM/yyyy"))
|
||||
val timeString = currentTime.format(java.time.format.DateTimeFormatter.ofPattern("HH:mm:ss"))
|
||||
|
||||
try {
|
||||
val statement = connection?.prepareStatement("INSERT INTO log (datenya, timenya, machine, description) VALUES (?, ?, ?, ?)")
|
||||
statement?.setString(1, dateString)
|
||||
statement?.setString(2, timeString)
|
||||
statement?.setString(3, machine)
|
||||
statement?.setString(4, description)
|
||||
val rowsAffected = statement?.executeUpdate()
|
||||
if (rowsAffected != null && rowsAffected > 0) {
|
||||
Logger.info("Log added: [$dateString $timeString] [$machine] $description" as Any)
|
||||
} else {
|
||||
Logger.warn("No log entry added for: [$dateString $timeString] [$machine] $description" as Any)
|
||||
}
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error adding log entry: ${e.message}" as Any)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get All Log from database
|
||||
* @param consumer A Consumer that will receive the list of logs
|
||||
@@ -213,6 +241,43 @@ class MariaDB (
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes a schedulebank entry by its index.
|
||||
* @param index The index of the schedulebank entry to delete.
|
||||
* @return True if the deletion was successful, false otherwise.
|
||||
*/
|
||||
fun Delete_Schedulebank_by_index(index: UInt) : Boolean {
|
||||
try {
|
||||
val statement = connection?.prepareStatement("DELETE FROM schedulebank WHERE `index` = ?")
|
||||
statement?.setLong(1, index.toLong())
|
||||
val rowsAffected = statement?.executeUpdate()
|
||||
if (rowsAffected != null && rowsAffected > 0) {
|
||||
Logger.info("Deleted $rowsAffected row(s) from schedulebank with index $index" as Any)
|
||||
return true
|
||||
} else {
|
||||
Logger.warn("No rows deleted from schedulebank with index $index" as Any)
|
||||
}
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error deleting from schedulebank with index $index: ${e.message}" as Any)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears all entries from the schedulebank table in the database and the local list.
|
||||
*/
|
||||
fun Clear_Schedulebank() {
|
||||
try {
|
||||
val statement = connection?.createStatement()
|
||||
// use TRUNCATE to reset auto increment index
|
||||
statement?.executeUpdate("TRUNCATE TABLE schedulebank")
|
||||
Logger.info("Schedulebank table cleared" as Any)
|
||||
SchedulebankList.clear()
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error clearing schedulebank table: ${e.message}" as Any)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reloads the language link list from the database.
|
||||
*/
|
||||
@@ -234,6 +299,43 @@ class MariaDB (
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes a language link entry by its index.
|
||||
* @param index The index of the language link entry to delete.
|
||||
* @return True if the deletion was successful, false otherwise.
|
||||
*/
|
||||
fun Delete_LanguageLink_by_index(index: UInt) : Boolean {
|
||||
try {
|
||||
val statement = connection?.prepareStatement("DELETE FROM languagelink WHERE `index` = ?")
|
||||
statement?.setLong(1, index.toLong())
|
||||
val rowsAffected = statement?.executeUpdate()
|
||||
if (rowsAffected != null && rowsAffected > 0) {
|
||||
Logger.info("Deleted $rowsAffected row(s) from languagelink with index $index" as Any)
|
||||
return true
|
||||
} else {
|
||||
Logger.warn("No rows deleted from languagelink with index $index" as Any)
|
||||
}
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error deleting from languagelink with index $index: ${e.message}" as Any)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears all entries from the language link table in the database and the local list.
|
||||
*/
|
||||
fun Clear_LanguageLink() {
|
||||
try {
|
||||
val statement = connection?.createStatement()
|
||||
// use TRUNCATE to reset auto increment index
|
||||
statement?.executeUpdate("TRUNCATE TABLE languagelink")
|
||||
Logger.info("LanguageLink table cleared" as Any)
|
||||
LanguageLinkList.clear()
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error clearing LanguageLink table: ${e.message}" as Any)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reloads the soundbank list from the database.
|
||||
*/
|
||||
@@ -260,6 +362,43 @@ class MariaDB (
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes a soundbank entry by its index.
|
||||
* @param index The index of the soundbank entry to delete.
|
||||
* @return True if the deletion was successful, false otherwise.
|
||||
*/
|
||||
fun Delete_Soundbank_by_index(index: UInt) : Boolean {
|
||||
try {
|
||||
val statement = connection?.prepareStatement("DELETE FROM soundbank WHERE `index` = ?")
|
||||
statement?.setLong(1, index.toLong())
|
||||
val rowsAffected = statement?.executeUpdate()
|
||||
if (rowsAffected != null && rowsAffected > 0) {
|
||||
Logger.info("Deleted $rowsAffected row(s) from soundbank with index $index" as Any)
|
||||
return true
|
||||
} else {
|
||||
Logger.warn("No rows deleted from soundbank with index $index" as Any)
|
||||
}
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error deleting from soundbank with index $index: ${e.message}" as Any)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears all entries from the soundbank table in the database and the local list.
|
||||
*/
|
||||
fun Clear_Soundbank() {
|
||||
try {
|
||||
val statement = connection?.createStatement()
|
||||
// use TRUNCATE to reset auto increment index
|
||||
statement?.executeUpdate("TRUNCATE TABLE soundbank")
|
||||
Logger.info("Soundbank table cleared" as Any)
|
||||
SoundbankList.clear()
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error clearing soundbank table: ${e.message}" as Any)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reloads the messagebank list from the database.
|
||||
*/
|
||||
@@ -286,4 +425,229 @@ class MariaDB (
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes a messagebank entry by its index.
|
||||
* @param index The index of the messagebank entry to delete.
|
||||
* @return True if the deletion was successful, false otherwise.
|
||||
*/
|
||||
fun Delete_Messagebank_by_index(index: UInt) : Boolean {
|
||||
try {
|
||||
val statement = connection?.prepareStatement("DELETE FROM messagebank WHERE `index` = ?")
|
||||
statement?.setLong(1, index.toLong())
|
||||
val rowsAffected = statement?.executeUpdate()
|
||||
if (rowsAffected != null && rowsAffected > 0) {
|
||||
Logger.info("Deleted $rowsAffected row(s) from messagebank with index $index" as Any)
|
||||
return true
|
||||
} else {
|
||||
Logger.warn("No rows deleted from messagebank with index $index" as Any)
|
||||
}
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error deleting from messagebank with index $index: ${e.message}" as Any)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears all entries from the messagebank table in the database and the local list.
|
||||
*/
|
||||
fun Clear_Messagebank() {
|
||||
try {
|
||||
val statement = connection?.createStatement()
|
||||
// use TRUNCATE to reset auto increment index
|
||||
statement?.executeUpdate("TRUNCATE TABLE messagebank")
|
||||
Logger.info("Messagebank table cleared" as Any)
|
||||
MessagebankList.clear()
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error clearing messagebank table: ${e.message}" as Any)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads all entries from the queue_table in the database.
|
||||
* @return A list of QueueTable entries.
|
||||
*/
|
||||
fun Read_Queue_Table() : List<QueueTable> {
|
||||
val queueList = ArrayList<QueueTable>()
|
||||
try {
|
||||
val statement = connection?.createStatement()
|
||||
val resultSet = statement?.executeQuery("SELECT * FROM queue_table")
|
||||
while (resultSet?.next() == true) {
|
||||
val queueTable = QueueTable(
|
||||
resultSet.getLong("index").toUInt(),
|
||||
resultSet.getString("Date_Time"),
|
||||
resultSet.getString("Source"),
|
||||
resultSet.getString("Type"),
|
||||
resultSet.getString("Message"),
|
||||
resultSet.getString("SB_TAGS"),
|
||||
resultSet.getString("BroadcastZones"),
|
||||
resultSet.getInt("Repeat").toUInt(),
|
||||
resultSet.getString("Language")
|
||||
)
|
||||
queueList.add(queueTable)
|
||||
}
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error fetching queue table: ${e.message}" as Any)
|
||||
}
|
||||
return queueList
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes a queue_table entry by its index.
|
||||
* @param index The index of the queue_table entry to delete.
|
||||
* @return True if the deletion was successful, false otherwise.
|
||||
*/
|
||||
fun Delete_Queue_Table_by_index(index: UInt) : Boolean {
|
||||
try {
|
||||
val statement = connection?.prepareStatement("DELETE FROM queue_table WHERE `index` = ?")
|
||||
statement?.setLong(1, index.toLong())
|
||||
val rowsAffected = statement?.executeUpdate()
|
||||
if (rowsAffected != null && rowsAffected > 0) {
|
||||
Logger.info("Deleted $rowsAffected row(s) from queue_table with index $index" as Any)
|
||||
return true
|
||||
} else {
|
||||
Logger.warn("No rows deleted from queue_table with index $index" as Any)
|
||||
}
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error deleting from queue_table with index $index: ${e.message}" as Any)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears all entries from the queue_table in the database.
|
||||
*/
|
||||
fun Clear_Queue_Table() {
|
||||
try {
|
||||
val statement = connection?.createStatement()
|
||||
// use TRUNCATE to reset auto increment index
|
||||
statement?.executeUpdate("TRUNCATE TABLE queue_table")
|
||||
Logger.info("Queue table cleared" as Any)
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error clearing queue table: ${e.message}" as Any)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads all entries from the queue_paging in the database.
|
||||
* @return A list of QueuePaging entries.
|
||||
*/
|
||||
fun Read_Queue_Paging() : List<QueuePaging>{
|
||||
val queueList = ArrayList<QueuePaging>()
|
||||
try {
|
||||
val statement = connection?.createStatement()
|
||||
val resultSet = statement?.executeQuery("SELECT * FROM queue_paging")
|
||||
while (resultSet?.next() == true) {
|
||||
val queuePaging = QueuePaging(
|
||||
resultSet.getLong("index").toUInt(),
|
||||
resultSet.getString("Date_Time"),
|
||||
resultSet.getString("Source"),
|
||||
resultSet.getString("Type"),
|
||||
resultSet.getString("Message"),
|
||||
resultSet.getString("SB_TAGS"),
|
||||
)
|
||||
queueList.add(queuePaging)
|
||||
}
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error fetching queue paging: ${e.message}" as Any)
|
||||
}
|
||||
return queueList
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes a queue_paging entry by its index.
|
||||
* @param index The index of the queue_paging entry to delete.
|
||||
* @return True if the deletion was successful, false otherwise.
|
||||
*/
|
||||
fun Delete_Queue_Paging_by_index(index: UInt) : Boolean {
|
||||
try {
|
||||
val statement = connection?.prepareStatement("DELETE FROM queue_paging WHERE `index` = ?")
|
||||
statement?.setLong(1, index.toLong())
|
||||
val rowsAffected = statement?.executeUpdate()
|
||||
if (rowsAffected != null && rowsAffected > 0) {
|
||||
Logger.info("Deleted $rowsAffected row(s) from queue_paging with index $index" as Any)
|
||||
return true
|
||||
} else {
|
||||
Logger.warn("No rows deleted from queue_paging with index $index" as Any)
|
||||
}
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error deleting from queue_paging with index $index: ${e.message}" as Any)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears all entries from the queue_paging in the database.
|
||||
*/
|
||||
fun Clear_Queue_Paging(){
|
||||
try {
|
||||
val statement = connection?.createStatement()
|
||||
// use TRUNCATE to reset auto increment index
|
||||
statement?.executeUpdate("TRUNCATE TABLE queue_paging")
|
||||
Logger.info("Queue paging table cleared" as Any)
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error clearing queue paging table: ${e.message}" as Any)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get All Broadcast Zones from database
|
||||
* @return A list of BroadcastZones entries.
|
||||
*/
|
||||
fun GetBroadcastZones(): List<BroadcastZones> {
|
||||
val zonesList = ArrayList<BroadcastZones>()
|
||||
try {
|
||||
val statement = connection?.createStatement()
|
||||
val resultSet = statement?.executeQuery("SELECT * FROM broadcast_zones")
|
||||
while (resultSet?.next() == true) {
|
||||
val zone = BroadcastZones(
|
||||
resultSet.getLong("index").toUInt(),
|
||||
resultSet.getString("description"),
|
||||
resultSet.getString("SoundChannel"),
|
||||
resultSet.getString("Box"),
|
||||
resultSet.getString("Relay")
|
||||
)
|
||||
zonesList.add(zone)
|
||||
}
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error fetching broadcast zones: ${e.message}" as Any)
|
||||
}
|
||||
return zonesList
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes a broadcast_zones entry by its index.
|
||||
* @param index The index of the broadcast_zones entry to delete.
|
||||
* @return True if the deletion was successful, false otherwise.
|
||||
*/
|
||||
fun Delete_BroadcastZones_by_index(index: UInt) : Boolean {
|
||||
try {
|
||||
val statement = connection?.prepareStatement("DELETE FROM broadcast_zones WHERE `index` = ?")
|
||||
statement?.setLong(1, index.toLong())
|
||||
val rowsAffected = statement?.executeUpdate()
|
||||
if (rowsAffected != null && rowsAffected > 0) {
|
||||
Logger.info("Deleted $rowsAffected row(s) from broadcast_zones with index $index" as Any)
|
||||
return true
|
||||
} else {
|
||||
Logger.warn("No rows deleted from broadcast_zones with index $index" as Any)
|
||||
}
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error deleting from broadcast_zones with index $index: ${e.message}" as Any)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears all entries from the broadcast_zones in the database.
|
||||
*/
|
||||
fun Clear_BroadcastZones() {
|
||||
try {
|
||||
val statement = connection?.createStatement()
|
||||
// use TRUNCATE to reset auto increment index
|
||||
statement?.executeUpdate("TRUNCATE TABLE broadcast_zones")
|
||||
Logger.info("Broadcast zones table cleared" as Any)
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error clearing broadcast zones table: ${e.message}" as Any)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user