Finaliacion R1

 Hoy modifico levemente el SP para que cumpla con todos los estandares solicitados por el profesor ademas de unos puntos que faltaban para que se cumpliera ese requerimiento, entre ellos era que se mostratra el mensaje de error, es decir la justificacion pq al principio solo decia Error:50002 ahora si menciona en que consiste el error, ademas se creo el Flask para el llamado del los SP, y se insertan unos datos de prueba para comprobar el funcionamiento del login. El dia de hoy se trabajaron 3 horas y 45 min, juntando la conexión con Flask y modificaciones al SP.

Aca se adjunta el SP modificado

CREATE PROCEDURE dbo.procLogin

     @inUsername VARCHAR(64)  --Username del usuario

    ,@inPassword VARCHAR(64)  --Password del usuario

    ,@inPostInIP VARCHAR(64)  --IP de origen del login

AS

BEGIN

    SET NOCOUNT ON


    DECLARE @IdUsuario INT

    DECLARE @PassUsuario VARCHAR(64)

    DECLARE @CountIntentos INT

    DECLARE @IdTipoEvento INT

    DECLARE @DescripcionEvento VARCHAR(256)

    DECLARE @outResultCode INT 

    SET @outResultCode = 0


    BEGIN TRY


        SELECT @IdUsuario = u.Id

        FROM dbo.Usuario AS u

        WHERE (u.Username = @inUsername)


        IF (@IdUsuario IS NULL) --Comprueba que el usuario exista

        BEGIN

            SET @outResultCode = 50001

            SELECT @outResultCode AS Codigo

                ,e.Descripcion AS Descripcion

            FROM dbo.Error AS e

            WHERE (e.Codigo = @outResultCode)

            RETURN

        END


        SELECT @CountIntentos = COUNT(b.Id)

        FROM dbo.BitacoraEvento AS b

        WHERE (b.IdTipoEvento = 2)

          AND (b.IdPostByUser = @IdUsuario)

          AND (b.PostTime >= DATEADD(MINUTE, -20, GETDATE()))


        IF (@CountIntentos > 5) --Comprueba que no haya pasado los 5 intentos

        BEGIN

            SET @outResultCode = 50003

            SET @IdTipoEvento = 3

            SET @DescripcionEvento = ''

        END

        ELSE

        BEGIN

            SELECT @PassUsuario = u.Password

            FROM dbo.Usuario AS u

            WHERE (u.Id = @IdUsuario)

              AND (u.Password = @inPassword)


            IF (@PassUsuario IS NULL) --Comprueba los intentos de sesion de fallo contraseña

            BEGIN

                SET @outResultCode = 50002

                SET @IdTipoEvento = 2

                SET @DescripcionEvento = 'Intento: ' +CAST((@CountIntentos+1) AS VARCHAR)+' Error: 50002'

            END

            ELSE

            BEGIN

                SET @outResultCode = 0

                SET @IdTipoEvento = 1

                SET @DescripcionEvento = 'Exitoso'

            END

        END


        BEGIN TRANSACTION


            INSERT INTO dbo.BitacoraEvento (

                 IdTipoEvento

                ,Descripcion

                ,IdPostByUser

                ,PostInIP

                ,PostTime

            )

            VALUES (

                 @IdTipoEvento

                ,@DescripcionEvento

                ,@IdUsuario

                ,@inPostInIP

                ,GETDATE()

            )


        COMMIT TRANSACTION

        IF (@outResultCode = 0) -- Comprueba caso de exito

        BEGIN

            SELECT @outResultCode AS Codigo

                ,'' AS Descripcion

        END

        ELSE

        BEGIN

            SELECT @outResultCode AS Codigo

                ,e.Descripcion AS Descripcion

            FROM dbo.Error AS e

            WHERE (e.Codigo = @outResultCode)

        END


    END TRY

    BEGIN CATCH

        INSERT INTO dbo.DBError (

             UserName

            ,Number

            ,State

            ,Severity

            ,Line

            ,[Procedure]

            ,Message

            ,DateTime

        )

        VALUES (

             @inUsername

            ,ERROR_NUMBER()

            ,ERROR_STATE()

            ,ERROR_SEVERITY()

            ,ERROR_LINE()

            ,ERROR_PROCEDURE()

            ,ERROR_MESSAGE()

            ,GETDATE()

        )


        SET @outResultCode = 50008

        SELECT @outResultCode AS Codigo

            ,e.Descripcion AS Descripcion

        FROM dbo.Error AS e

        WHERE (e.Codigo = @outResultCode)


    END CATCH

END

Comments

Popular posts from this blog

Modificacion del ingreso de datos y finaiizacion de documentacion

Avance en el R3 Insertar empleado

SP insertar empleado terminado