|
|
USE [FastMoneyPro_Remit] GO /****** Object: StoredProcedure [dbo].[proc_tpApiLogs] Script Date: 7/4/2019 11:35:48 AM ******/ DROP PROCEDURE [dbo].[proc_tpApiLogs] GO /****** Object: StoredProcedure [dbo].[proc_tpApiLogs] Script Date: 7/4/2019 11:35:48 AM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO
CREATE PROC [dbo].[proc_tpApiLogs] @flag VARCHAR(50) ,@providerName VARCHAR(200) = NULL ,@methodName VARCHAR(200) = NULL ,@controlNo VARCHAR(50) = NULL ,@rowId BIGINT = NULL ,@requestXml VARCHAR(MAX) = NULL ,@responseXml VARCHAR(MAX) = NULL ,@user VARCHAR(30) = NULL ,@errorCode VARCHAR(10) = NULL ,@errorMessage VARCHAR(200) = NULL ,@processId VARCHAR(40) = NULL AS SET @user = ISNULL(@user, 'SYSTEM')
IF @flag = 'i' BEGIN SET @processId = NEWID()
INSERT Application_Log.DBO.vwTpApiLogs(providerName, methodName, controlNo, requestXml, requestedBy,requestedDate,errorCode,errorMessage,processId) SELECT @providerName, @methodName, @controlNo, @requestXml, @user, GETDATE(), @errorCode, @errorMessage,@processId SET @rowId = SCOPE_IDENTITY() SELECT '0' ErrorCode, 'Request Logged Successfully' Msg, @rowId Id,@processId Extra RETURN END
ELSE IF @flag = 'i-api' BEGIN if isnull(@processId, '') = '' SET @processId = NEWID()
INSERT Application_Log.DBO.vwTpApiLogs(providerName, methodName, controlNo, requestXml, requestedBy,requestedDate,errorCode,errorMessage,processId) SELECT @providerName, @methodName, @controlNo, @requestXml, @user, GETDATE(), @errorCode, @errorMessage,@processId SET @rowId = SCOPE_IDENTITY() SELECT '0' ErrorCode, 'Request Logged Successfully' Msg, @rowId Id,@processId Extra RETURN END
ELSE IF @flag = 'u' BEGIN --SELECT @methodName = methodName, @providerName = providerName FROM vwTpApiLogs WITH(NOLOCK) WHERE rowId = @rowId
UPDATE Application_Log.DBO.vwTpApiLogs SET
responseXml = @responseXml ,responseDate = GETDATE() ,errorCode = @errorCode ,errorMessage = @errorMessage WHERE rowId = @rowId
SELECT '0' ErrorCode, 'Response Logged Successfully' Msg, @rowId Id
RETURN END
ELSE IF @flag = 'vr' BEGIN /*
Validate For Duplicate Request within 180000 millisecons = 180 seconds = 3 minutes check from the internal log recorded if there is an execution either from the schedule or manual run by user, it will verify if there is duplicate request done by itself or any other user. */
CREATE TABLE #temp(rowId BIGINT, requestedBy VARCHAR(50), requestedDate DATETIME)
INSERT INTO #temp(rowId, requestedBy, requestedDate)
SELECT rowId, requestedBy, requestedDate FROM Application_Log.DBO.vwTpApiLogs WITH(NOLOCK) WHERE controlNo = @controlNo AND requestedDate BETWEEN CONVERT(VARCHAR, GETDATE(), 101) AND CONVERT(VARCHAR, GETDATE(), 101) + ' 23:59:59:998' IF EXISTS(SELECT TOP 1 'X' FROM #temp)
BEGIN DECLARE @count INT
IF @user = 'sch_admin' BEGIN SELECT @count = COUNT('X') FROM #temp WHERE DATEDIFF(MILLISECOND, requestedDate, GETDATE()) <= 180000
IF ISNULL(@count, 0) > 1 BEGIN EXEC dbo.proc_errorHandler 1, 'From IME: Duplicate request within 3 minutes is restricted', NULL RETURN END END ELSE BEGIN SELECT @count = COUNT('X') FROM #temp WHERE DATEDIFF(MILLISECOND, requestedDate, GETDATE()) <= 5000
IF ISNULL(@count, 0) > 1 BEGIN EXEC dbo.proc_errorHandler 1, 'From IME: Duplicate request within 5 seconds is restricted', NULL RETURN END END END
EXEC dbo.proc_errorHandler 0, 'Valid Request', NULL
IF OBJECT_ID('tempdb..#temp') IS NOT NULL DROP TABLE #temp
END
GO
|