mirror of
https://github.com/bitwarden/server.git
synced 2025-06-30 07:36:14 -05:00
[PM-14590] Modify Notification database table (#5361)
* Added notification type enum Added option type to entity * created migration files * made sprocs backward compatible * made sprocs backward compatible * Fixed linting * Altered table to require an optional taskId * formatted code * Added foreignkey * Formatted code * fixed order
This commit is contained in:
@ -0,0 +1,107 @@
|
||||
-- Add optional TaskId column to Notification table
|
||||
IF COL_LENGTH('[dbo].[Notification]', 'TaskId') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE [dbo].[Notification]
|
||||
ADD [TaskId] UNIQUEIDENTIFIER NULL
|
||||
|
||||
ALTER TABLE [dbo].[Notification]
|
||||
ADD CONSTRAINT [FK_Notification_SecurityTask] FOREIGN KEY ([TaskId]) REFERENCES [dbo].[SecurityTask] ([Id])
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT *
|
||||
FROM sys.indexes
|
||||
WHERE name = 'IX_Notification_TaskId')
|
||||
BEGIN
|
||||
CREATE NONCLUSTERED INDEX [IX_Notification_TaskId]
|
||||
ON [dbo].[Notification] ([TaskId] ASC) WHERE TaskId IS NOT NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- Alter Notification_Create and Notification_Update stored procedures to include TaskId
|
||||
CREATE OR ALTER PROCEDURE [dbo].[Notification_Create]
|
||||
@Id UNIQUEIDENTIFIER OUTPUT,
|
||||
@Priority TINYINT,
|
||||
@Global BIT,
|
||||
@ClientType TINYINT,
|
||||
@UserId UNIQUEIDENTIFIER,
|
||||
@OrganizationId UNIQUEIDENTIFIER,
|
||||
@Title NVARCHAR(256),
|
||||
@Body NVARCHAR(MAX),
|
||||
@CreationDate DATETIME2(7),
|
||||
@RevisionDate DATETIME2(7),
|
||||
@TaskId UNIQUEIDENTIFIER = NULL
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON
|
||||
|
||||
INSERT INTO [dbo].[Notification] (
|
||||
[Id],
|
||||
[Priority],
|
||||
[Global],
|
||||
[ClientType],
|
||||
[UserId],
|
||||
[OrganizationId],
|
||||
[Title],
|
||||
[Body],
|
||||
[CreationDate],
|
||||
[RevisionDate],
|
||||
[TaskId]
|
||||
)
|
||||
VALUES (
|
||||
@Id,
|
||||
@Priority,
|
||||
@Global,
|
||||
@ClientType,
|
||||
@UserId,
|
||||
@OrganizationId,
|
||||
@Title,
|
||||
@Body,
|
||||
@CreationDate,
|
||||
@RevisionDate,
|
||||
@TaskId
|
||||
)
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE OR ALTER PROCEDURE [dbo].[Notification_Update]
|
||||
@Id UNIQUEIDENTIFIER,
|
||||
@Priority TINYINT,
|
||||
@Global BIT,
|
||||
@ClientType TINYINT,
|
||||
@UserId UNIQUEIDENTIFIER,
|
||||
@OrganizationId UNIQUEIDENTIFIER,
|
||||
@Title NVARCHAR(256),
|
||||
@Body NVARCHAR(MAX),
|
||||
@CreationDate DATETIME2(7),
|
||||
@RevisionDate DATETIME2(7),
|
||||
@TaskId UNIQUEIDENTIFIER = NULL
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON
|
||||
|
||||
UPDATE [dbo].[Notification]
|
||||
SET [Priority] = @Priority,
|
||||
[Global] = @Global,
|
||||
[ClientType] = @ClientType,
|
||||
[UserId] = @UserId,
|
||||
[OrganizationId] = @OrganizationId,
|
||||
[Title] = @Title,
|
||||
[Body] = @Body,
|
||||
[CreationDate] = @CreationDate,
|
||||
[RevisionDate] = @RevisionDate,
|
||||
[TaskId] = @TaskId
|
||||
WHERE [Id] = @Id
|
||||
END
|
||||
GO
|
||||
|
||||
-- Recreate NotificationView
|
||||
CREATE OR ALTER VIEW [dbo].[NotificationView]
|
||||
AS
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
[dbo].[Notification]
|
||||
GO
|
||||
|
||||
|
Reference in New Issue
Block a user