fix: application update datasource в api.cfm

This commit is contained in:
2026-06-18 12:44:29 +04:00
parent da8660ff58
commit 91e1cdf76b
+11 -13
View File
@@ -1,13 +1,20 @@
<cfprocessingdirective suppressWhitespace="true"> <cfprocessingdirective suppressWhitespace="true">
<cfheader name="Content-Type" value="application/json; charset=utf-8"> <cfheader name="Content-Type" value="application/json; charset=utf-8">
<cfset result = {ok: false, error: "unknown action"}> <cfset result = {ok: false, error: "unknown action"}>
<cfset action = url.keyExists("action") ? url.action : ""> <cfset action = url.keyExists("action") ? url.action : "">
<cfset ds = {
class: "org.postgresql.Driver",
connectionString: "jdbc:postgresql://postgresqlk8s-master.418f9960-2eb7-4429-b2ec-ac64319d7268.svc.cluster.local:5432/baza",
username: "super",
password: "hoHdkA23yxlD9oMUlZ1bIbNyc6DE2mNJmyHMNkEpVD1F4suQs7O2lyN4t0qITyzt"
}/>
<cfset application action="update" datasource="#ds#" name="baza"/>
<cftry> <cftry>
<cfif action EQ "test"> <cfif action EQ "test">
<cfquery name="q" datasource="baza">SELECT 1 as ok</cfquery> <cfquery name="q" datasource="baza">SELECT 1 as ok</cfquery>
<cfset result = {ok: true, message: "PostgreSQL connected", db: "baza"}> <cfset result = {ok: true, message: "PostgreSQL connected"}>
<cfelseif action EQ "tables"> <cfelseif action EQ "tables">
<cfquery name="q" datasource="baza"> <cfquery name="q" datasource="baza">
@@ -36,10 +43,7 @@
</cfloop> </cfloop>
<cfset result = {ok: true, results: results}> <cfset result = {ok: true, results: results}>
<cfelseif action EQ "query"> <cfelseif action EQ "query" AND url.keyExists("sql")>
<cfif NOT url.keyExists("sql")>
<cfset result = {ok: false, error: "sql parameter required"}>
<cfelse>
<cfquery name="q" datasource="baza">#preserveSingleQuotes(url.sql)#</cfquery> <cfquery name="q" datasource="baza">#preserveSingleQuotes(url.sql)#</cfquery>
<cfset var cols = q.getColumnNames()> <cfset var cols = q.getColumnNames()>
<cfset var rows = []> <cfset var rows = []>
@@ -49,20 +53,14 @@
<cfset arrayAppend(rows, row)> <cfset arrayAppend(rows, row)>
</cfloop> </cfloop>
<cfset result = {ok: true, columns: cols, rows: rows, count: q.recordCount}> <cfset result = {ok: true, columns: cols, rows: rows, count: q.recordCount}>
</cfif>
<cfelseif action EQ "execute" AND cgi.request_method EQ "POST"> <cfelseif action EQ "execute" AND cgi.request_method EQ "POST">
<cfset var body = deserializeJSON(toString(getHttpRequestData().content))> <cfset var body = deserializeJSON(toString(getHttpRequestData().content))>
<cfif NOT structKeyExists(body, "sql")>
<cfset result = {ok: false, error: "sql required"}>
<cfelse>
<cfquery name="q" datasource="baza">#preserveSingleQuotes(body.sql)#</cfquery> <cfquery name="q" datasource="baza">#preserveSingleQuotes(body.sql)#</cfquery>
<cfset result = {ok: true}> <cfset result = {ok: true}>
</cfif> </cfif>
</cfif>
<cfcatch><cfset result = {ok: false, error: cfcatch.message, detail: cfcatch.detail}></cfcatch> <cfcatch><cfset result = {ok: false, error: cfcatch.message}></cfcatch>
</cftry> </cftry>
<cfoutput>#serializeJSON(result)#</cfoutput> <cfoutput>#serializeJSON(result)#</cfoutput>
</cfprocessingdirective> </cfprocessingdirective>