Files
TrisolarisServer/src/main/kotlin/com/android/trisolarisserver/config/PayuSettingsSchemaFix.kt
androidlover5842 e5c2abc317
Some checks failed
build-and-deploy / build-deploy (push) Failing after 29s
Align PayU QR request with docs
2026-01-30 05:30:08 +05:30

68 lines
2.4 KiB
Kotlin

package com.android.trisolarisserver.config
import org.springframework.jdbc.core.JdbcTemplate
import org.springframework.stereotype.Component
@Component
class PayuSettingsSchemaFix(
private val jdbcTemplate: JdbcTemplate
) : PostgresSchemaFix(jdbcTemplate) {
override fun runPostgres(jdbcTemplate: JdbcTemplate) {
val hasTable = jdbcTemplate.queryForObject(
"""
select count(*)
from information_schema.tables
where table_name = 'payu_settings'
""".trimIndent(),
Int::class.java
) ?: 0
if (hasTable == 0) {
logger.info("Creating payu_settings table")
jdbcTemplate.execute(
"""
create table payu_settings (
id uuid primary key,
property_id uuid not null unique references property(id) on delete cascade,
merchant_key varchar not null,
salt_32 varchar,
salt_256 varchar,
base_url varchar not null,
success_url varchar not null,
failure_url varchar not null,
use_salt_256 boolean not null default true,
updated_at timestamptz not null
)
""".trimIndent()
)
}
val hasSuccessUrl = jdbcTemplate.queryForObject(
"""
select count(*)
from information_schema.columns
where table_name = 'payu_settings'
and column_name = 'success_url'
""".trimIndent(),
Int::class.java
) ?: 0
if (hasSuccessUrl == 0) {
logger.info("Adding payu_settings.success_url column")
jdbcTemplate.execute("alter table payu_settings add column success_url varchar")
}
val hasFailureUrl = jdbcTemplate.queryForObject(
"""
select count(*)
from information_schema.columns
where table_name = 'payu_settings'
and column_name = 'failure_url'
""".trimIndent(),
Int::class.java
) ?: 0
if (hasFailureUrl == 0) {
logger.info("Adding payu_settings.failure_url column")
jdbcTemplate.execute("alter table payu_settings add column failure_url varchar")
}
}
}