v1.0.104: reset_contract + идемпотентность — очистка перед сравнением
This commit is contained in:
+2
-2
@@ -16,13 +16,13 @@
|
|||||||
<cfelseif NOT len(supplementId)>
|
<cfelseif NOT len(supplementId)>
|
||||||
<cfset result.error = "supplement_id required (JSON body)">
|
<cfset result.error = "supplement_id required (JSON body)">
|
||||||
<cfelse>
|
<cfelse>
|
||||||
<!--- Идемпотентность: проверка что supplement ещё не обработан --->
|
<!--- Идемпотентность --->
|
||||||
<cfquery name="dupCheck" datasource="baza">
|
<cfquery name="dupCheck" datasource="baza">
|
||||||
SELECT COUNT(*) as cnt FROM spec_events
|
SELECT COUNT(*) as cnt FROM spec_events
|
||||||
WHERE supplement_id = <cfqueryparam value="#supplementId#" cfsqltype="cf_sql_varchar">
|
WHERE supplement_id = <cfqueryparam value="#supplementId#" cfsqltype="cf_sql_varchar">
|
||||||
</cfquery>
|
</cfquery>
|
||||||
<cfif dupCheck.cnt GT 0>
|
<cfif dupCheck.cnt GT 0>
|
||||||
<cfset result = {ok: true, skipped: true, message: "supplement already processed", supplement_id: supplementId}>
|
<cfset result = {ok: true, skipped: true, message: "supplement already processed"}>
|
||||||
<cfelse>
|
<cfelse>
|
||||||
<cftransaction>
|
<cftransaction>
|
||||||
<cfset seq = 0>
|
<cfset seq = 0>
|
||||||
|
|||||||
@@ -107,6 +107,9 @@ class Handler(BaseHTTPRequestHandler):
|
|||||||
t0 = time.time()
|
t0 = time.time()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
# 0. Сброс предыдущих результатов сравнения
|
||||||
|
httpx.get(f"{LUCEE_URL}/reset_contract.cfm?contract_id={cid}", timeout=10)
|
||||||
|
|
||||||
# 1. Список supplements
|
# 1. Список supplements
|
||||||
supps = self._lucee_query(
|
supps = self._lucee_query(
|
||||||
f"SELECT s.id, s.type, d.filename FROM supplements s "
|
f"SELECT s.id, s.type, d.filename FROM supplements s "
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
<cfsetting showdebugoutput="no" enablecfoutputonly="true">
|
||||||
|
<cfheader name="Content-Type" value="application/json; charset=utf-8">
|
||||||
|
|
||||||
|
<cfparam name="url.contract_id" default="">
|
||||||
|
|
||||||
|
<cfset result = {ok: false, error: ""}>
|
||||||
|
|
||||||
|
<cftry>
|
||||||
|
<cfif NOT len(url.contract_id)>
|
||||||
|
<cfset result.error = "contract_id required">
|
||||||
|
<cfelse>
|
||||||
|
<cftransaction>
|
||||||
|
<cfquery datasource="baza">
|
||||||
|
DELETE FROM spec_current
|
||||||
|
WHERE contract_id = <cfqueryparam value="#url.contract_id#" cfsqltype="cf_sql_varchar">
|
||||||
|
</cfquery>
|
||||||
|
<cfquery datasource="baza">
|
||||||
|
DELETE FROM spec_events
|
||||||
|
WHERE contract_id = <cfqueryparam value="#url.contract_id#" cfsqltype="cf_sql_varchar">
|
||||||
|
</cfquery>
|
||||||
|
</cftransaction>
|
||||||
|
<cfset result = {ok: true, contract_id: url.contract_id}>
|
||||||
|
</cfif>
|
||||||
|
<cfcatch>
|
||||||
|
<cfset result = {ok: false, error: cfcatch.message}>
|
||||||
|
</cfcatch>
|
||||||
|
</cftry>
|
||||||
|
|
||||||
|
<cfoutput>#serializeJSON(result)#</cfoutput>
|
||||||
Reference in New Issue
Block a user