v1.0.104: reset_contract + идемпотентность — очистка перед сравнением
This commit is contained in:
+2
-2
@@ -16,13 +16,13 @@
|
||||
<cfelseif NOT len(supplementId)>
|
||||
<cfset result.error = "supplement_id required (JSON body)">
|
||||
<cfelse>
|
||||
<!--- Идемпотентность: проверка что supplement ещё не обработан --->
|
||||
<!--- Идемпотентность --->
|
||||
<cfquery name="dupCheck" datasource="baza">
|
||||
SELECT COUNT(*) as cnt FROM spec_events
|
||||
WHERE supplement_id = <cfqueryparam value="#supplementId#" cfsqltype="cf_sql_varchar">
|
||||
</cfquery>
|
||||
<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>
|
||||
<cftransaction>
|
||||
<cfset seq = 0>
|
||||
|
||||
@@ -107,6 +107,9 @@ class Handler(BaseHTTPRequestHandler):
|
||||
t0 = time.time()
|
||||
|
||||
try:
|
||||
# 0. Сброс предыдущих результатов сравнения
|
||||
httpx.get(f"{LUCEE_URL}/reset_contract.cfm?contract_id={cid}", timeout=10)
|
||||
|
||||
# 1. Список supplements
|
||||
supps = self._lucee_query(
|
||||
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