Knocks/BackEnd/Knoks.Operate/Stored Procedures/USR_UpdateUser.sql

106 lines
2.2 KiB
Transact-SQL

CREATE PROCEDURE [dbo].[USR_UpdateUser]
@HttpRequestInfo NVARCHAR(MAX) = NULL,
@UserId BIGINT,
@Email nvarchar(250) ,
@UserName nvarchar(50) ,
@UserTypeId tinyint ,
@Password varchar(100) ,
@FirstName nvarchar(50) ,
@LastName nvarchar(50) ,
@CountryId int ,
@PhonePrefix varchar(20) ,
@Phone varchar(50) ,
@Address nvarchar(100) ,
@City nvarchar(100) ,
@ZipCode varchar(16) ,
@BirthDate date ,
@Gender varchar(50) ,
@LanguageId tinyint ,
@IsUSTaxEntity bit ,
@KYCApproved bit ,
@TermsOfServiceChecked bit ,
@MailVerfied bit ,
@PhoneVerified bit,
@HasAvatar bit
AS
DECLARE @TranStarted BIT,
@ERROR SMALLINT,
@RC INT,
@RowCount INT,
@ErrorMessage VARCHAR(100),
@HttpRequestId BIGINT = NULL,
@AccountCurrency CHAR(3),
@AllowMarketPrimary BIT = 1,
@AllowMarketSecondary BIT = 0,
@IsDemo BIT = 0,
@ExpiryDate DATETIME2 = NULL
SET @TranStarted = 0
SET @RC = 0
IF( @@TRANCOUNT = 0 )
BEGIN
BEGIN TRANSACTION
SET @TranStarted = 1
END
ELSE
SET @TranStarted = 0
BEGIN TRY
-- Save HttpRequestId --
IF @HttpRequestInfo IS NOT NULL
BEGIN
INSERT INTO HttpRequests (HttpRequestInfo) VALUES (@HttpRequestInfo)
SET @HttpRequestId = SCOPE_IDENTITY()
END
-- Upadte User --
UPDATE Users
SET FirstName = @FirstName,
LastName = @LastName,
Email = @Email,
Phone = @Phone,
PhonePrefix = @PhonePrefix,
BirthDate = @BirthDate,
[Address] = @Address,
City = @City,
ZipCode = @ZipCode,
LanguageId = @LanguageId,
HasAvatar = @HasAvatar,
UserName = @UserName
Where UserId = @UserId -- userid goes from authorization, but email is unique
EXEC REG_GetUsers @UserId;
IF @TranStarted = 1
COMMIT TRANSACTION
RETURN 0
END TRY
BEGIN CATCH
IF( @TranStarted = 1 )
ROLLBACK TRANSACTION
EXEC USP_LogError
EXEC USP_RethrowError
IF @RC = 0
SET @RC = 1 ---- Unexpected Error
RETURN @RC
END CATCH