You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
3.5 KiB
113 lines
3.5 KiB
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
|