From 28b04d92000a210c90c72f5659585a6d8a15c4e5 Mon Sep 17 00:00:00 2001 From: Alexey Melnichuk Date: Wed, 23 Nov 2016 13:50:22 +0300 Subject: [PATCH] Add. Use params in ring_groups/destination.lua (#2163) --- .../resources/scripts/destination.lua | 63 ++++++++++++------- 1 file changed, 42 insertions(+), 21 deletions(-) diff --git a/resources/install/scripts/app/ring_groups/resources/scripts/destination.lua b/resources/install/scripts/app/ring_groups/resources/scripts/destination.lua index 1d63cfbe52..82d020b208 100644 --- a/resources/install/scripts/app/ring_groups/resources/scripts/destination.lua +++ b/resources/install/scripts/app/ring_groups/resources/scripts/destination.lua @@ -27,9 +27,15 @@ require "resources.functions.config"; --connect to the database - require "resources.functions.database_handle"; + local Database = require "resources.functions.database"; dbh = database_handle('system'); +--include json library + local json + if (debug["sql"]) then + json = require "resources.functions.lunajson" + end + --set default variables sounds_dir = ""; recordings_dir = ""; @@ -105,17 +111,19 @@ freeswitch.consoleLog("NOTICE", "[ring_group] menu_selection: "..menu_selection.."\n"); if (menu_selection == "1") then --first, check to see if the destination is already in this ring group - sql = [[ + local sql = [[ SELECT COUNT(*) AS in_group FROM v_ring_group_destinations WHERE - domain_uuid = ']]..domain_uuid..[[' - AND ring_group_uuid = ']]..ring_group_uuid..[[' - AND destination_number = ']]..destination..[[' + domain_uuid = :domain_uuid + AND ring_group_uuid = :ring_group_uuid + AND destination_number = :destination ]]; - --freeswitch.consoleLog("NOTICE", "[ring_group] SQL "..sql.."\n"); + local params = {domain_uuid = domain_uuid, ring_group_uuid = ring_group_uuid, + destination = destination}; + --freeswitch.consoleLog("NOTICE", "[ring_group] SQL: " .. sql .. "; params: " .. json.encode(params) .. "\n"); - assert(dbh:query(sql, function(row) + assert(dbh:query(sql, params, function(row) if (row.in_group == "0") then sql = [[ INSERT INTO @@ -128,15 +136,26 @@ destination_timeout ) VALUES - ( ']]..ring_group_destination_uuid..[[', - ']]..domain_uuid..[[', - ']]..ring_group_uuid..[[', - ']]..destination..[[', - ]]..destination_delay..[[, - ]]..destination_timeout..[[ + ( :ring_group_destination_uuid, + :domain_uuid, + :ring_group_uuid, + :destination, + :destination_delay, + :destination_timeout )]]; - freeswitch.consoleLog("NOTICE", "[ring_group][destination] SQL "..sql.."\n"); - dbh:query(sql); + + params = { + ring_group_destination_uuid = ring_group_destination_uuid; + domain_uuid = domain_uuid; + ring_group_uuid = ring_group_uuid; + destination = destination; + destination_delay = destination_delay; + destination_timeout = destination_timeout; + + }; + + freeswitch.consoleLog("NOTICE", "[ring_group][destination] SQL: " .. sql .. "; params: " .. json.encode(params) .. "\n"); + dbh:query(sql, params); freeswitch.consoleLog("NOTICE", "[ring_group][destination] LOG IN\n"); session:streamFile("ivr/ivr-you_are_now_logged_in.wav"); @@ -147,16 +166,18 @@ end)); end if (menu_selection == "2") then - sql = [[ + local sql = [[ DELETE FROM v_ring_group_destinations WHERE - domain_uuid =']]..domain_uuid..[[' - AND ring_group_uuid=']]..ring_group_uuid..[[' - AND destination_number=']]..destination..[[' + domain_uuid =:domain_uuid + AND ring_group_uuid=:ring_group_uuid + AND destination_number=:destination ]]; - freeswitch.consoleLog("NOTICE", "[ring_group][destination] SQL "..sql.."\n"); - dbh:query(sql); + local params = {domain_uuid = domain_uuid, ring_group_uuid = ring_group_uuid, + destination = destination}; + freeswitch.consoleLog("NOTICE", "[ring_group][destination] SQL: " .. sql .. "; params: " .. json.encode(params) .. "\n"); + dbh:query(sql, params); freeswitch.consoleLog("NOTICE", "[ring_group][destination] LOG OUT\n"); session:streamFile("ivr/ivr-you_are_now_logged_out.wav");