mirror of
https://github.com/bitwarden/server.git
synced 2024-12-26 17:37:36 +01:00
181 lines
4.5 KiB
MySQL
181 lines
4.5 KiB
MySQL
|
-- Create OrganizationSponsorshipType
|
||
|
IF NOT EXISTS (
|
||
|
SELECT
|
||
|
*
|
||
|
FROM
|
||
|
sys.types
|
||
|
WHERE
|
||
|
[Name] = 'OrganizationSponsorshipType' AND
|
||
|
is_user_defined = 1
|
||
|
)
|
||
|
BEGIN
|
||
|
CREATE TYPE [dbo].[OrganizationSponsorshipType] AS TABLE(
|
||
|
[Id] UNIQUEIDENTIFIER,
|
||
|
[SponsoringOrganizationId] UNIQUEIDENTIFIER,
|
||
|
[SponsoringOrganizationUserID] UNIQUEIDENTIFIER,
|
||
|
[SponsoredOrganizationId] UNIQUEIDENTIFIER,
|
||
|
[FriendlyName] NVARCHAR(256),
|
||
|
[OfferedToEmail] VARCHAR(256),
|
||
|
[PlanSponsorshipType] TINYINT,
|
||
|
[LastSyncDate] DATETIME2(7),
|
||
|
[ValidUntil] DATETIME2(7),
|
||
|
[ToDelete] BIT
|
||
|
)
|
||
|
END
|
||
|
GO
|
||
|
|
||
|
-- OrganizationSponsorship_CreateMany
|
||
|
IF OBJECT_ID('[dbo].[OrganizationSponsorship_CreateMany]') IS NOT NULL
|
||
|
BEGIN
|
||
|
DROP PROCEDURE [dbo].[OrganizationSponsorship_CreateMany]
|
||
|
END
|
||
|
GO
|
||
|
|
||
|
CREATE PROCEDURE [dbo].[OrganizationSponsorship_CreateMany]
|
||
|
@OrganizationSponsorshipsInput [dbo].[OrganizationSponsorshipType] READONLY
|
||
|
AS
|
||
|
BEGIN
|
||
|
SET NOCOUNT ON
|
||
|
|
||
|
INSERT INTO [dbo].[OrganizationSponsorship]
|
||
|
(
|
||
|
[Id],
|
||
|
[SponsoringOrganizationId],
|
||
|
[SponsoringOrganizationUserID],
|
||
|
[SponsoredOrganizationId],
|
||
|
[FriendlyName],
|
||
|
[OfferedToEmail],
|
||
|
[PlanSponsorshipType],
|
||
|
[ToDelete],
|
||
|
[LastSyncDate],
|
||
|
[ValidUntil]
|
||
|
)
|
||
|
SELECT
|
||
|
OS.[Id],
|
||
|
OS.[SponsoringOrganizationId],
|
||
|
OS.[SponsoringOrganizationUserID],
|
||
|
OS.[SponsoredOrganizationId],
|
||
|
OS.[FriendlyName],
|
||
|
OS.[OfferedToEmail],
|
||
|
OS.[PlanSponsorshipType],
|
||
|
OS.[ToDelete],
|
||
|
OS.[LastSyncDate],
|
||
|
OS.[ValidUntil]
|
||
|
FROM
|
||
|
@OrganizationSponsorshipsInput OS
|
||
|
END
|
||
|
GO
|
||
|
|
||
|
-- OrganizationSponsorship_UpdateMany
|
||
|
IF OBJECT_ID('[dbo].[OrganizationSponsorship_UpdateMany]') IS NOT NULL
|
||
|
BEGIN
|
||
|
DROP PROCEDURE [dbo].[OrganizationSponsorship_UpdateMany]
|
||
|
END
|
||
|
GO
|
||
|
|
||
|
CREATE PROCEDURE [dbo].[OrganizationSponsorship_UpdateMany]
|
||
|
@OrganizationSponsorshipsInput [dbo].[OrganizationSponsorshipType] READONLY
|
||
|
AS
|
||
|
BEGIN
|
||
|
SET NOCOUNT ON
|
||
|
|
||
|
UPDATE
|
||
|
OS
|
||
|
SET
|
||
|
[Id] = OSI.[Id],
|
||
|
[SponsoringOrganizationId] = OSI.[SponsoringOrganizationId],
|
||
|
[SponsoringOrganizationUserID] = OSI.[SponsoringOrganizationUserID],
|
||
|
[SponsoredOrganizationId] = OSI.[SponsoredOrganizationId],
|
||
|
[FriendlyName] = OSI.[FriendlyName],
|
||
|
[OfferedToEmail] = OSI.[OfferedToEmail],
|
||
|
[PlanSponsorshipType] = OSI.[PlanSponsorshipType],
|
||
|
[ToDelete] = OSI.[ToDelete],
|
||
|
[LastSyncDate] = OSI.[LastSyncDate],
|
||
|
[ValidUntil] = OSI.[ValidUntil]
|
||
|
FROM
|
||
|
[dbo].[OrganizationSponsorship] OS
|
||
|
INNER JOIN
|
||
|
@OrganizationSponsorshipsInput OSI ON OS.Id = OSI.Id
|
||
|
END
|
||
|
GO
|
||
|
|
||
|
-- OrganizationSponsorship_DeleteByIds
|
||
|
IF OBJECT_ID('[dbo].[OrganizationSponsorship_DeleteByIds]') IS NOT NULL
|
||
|
BEGIN
|
||
|
DROP PROCEDURE [dbo].[OrganizationSponsorship_DeleteByIds]
|
||
|
END
|
||
|
GO
|
||
|
|
||
|
CREATE PROCEDURE [dbo].[OrganizationSponsorship_DeleteByIds]
|
||
|
@Ids [dbo].[GuidIdArray] READONLY
|
||
|
AS
|
||
|
BEGIN
|
||
|
SET NOCOUNT ON
|
||
|
|
||
|
DECLARE @BatchSize INT = 100
|
||
|
|
||
|
WHILE @BatchSize > 0
|
||
|
BEGIN
|
||
|
BEGIN TRANSACTION OrgSponsorship_DeleteMany
|
||
|
|
||
|
DELETE TOP(@BatchSize) OS
|
||
|
FROM
|
||
|
[dbo].[OrganizationSponsorship] OS
|
||
|
INNER JOIN
|
||
|
@Ids I ON I.Id = OS.Id
|
||
|
|
||
|
SET @BatchSize = @@ROWCOUNT
|
||
|
|
||
|
COMMIT TRANSACTION OrgSponsorship_DeleteMany
|
||
|
END
|
||
|
END
|
||
|
GO
|
||
|
|
||
|
IF OBJECT_ID('[dbo].[OrganizationSponsorship_DeleteExpired]') IS NOT NULL
|
||
|
BEGIN
|
||
|
DROP PROCEDURE [dbo].[OrganizationSponsorship_DeleteExpired]
|
||
|
END
|
||
|
GO
|
||
|
|
||
|
CREATE PROCEDURE [dbo].[OrganizationSponsorship_DeleteExpired]
|
||
|
@ValidUntilBeforeDate DATETIME2 (7)
|
||
|
AS
|
||
|
BEGIN
|
||
|
SET NOCOUNT ON
|
||
|
|
||
|
DECLARE @BatchSize INT = 100
|
||
|
|
||
|
WHILE @BatchSize > 0
|
||
|
BEGIN
|
||
|
DELETE TOP(@BatchSize)
|
||
|
FROM
|
||
|
[dbo].[OrganizationSponsorship]
|
||
|
WHERE
|
||
|
[ValidUntil] < @ValidUntilBeforeDate
|
||
|
|
||
|
SET @BatchSize = @@ROWCOUNT
|
||
|
END
|
||
|
END
|
||
|
GO
|
||
|
|
||
|
-- OrganizationSponsorship_ReadBySponsoringOrganizationId
|
||
|
IF OBJECT_ID('[dbo].[OrganizationSponsorship_ReadBySponsoringOrganizationId]') IS NOT NULL
|
||
|
BEGIN
|
||
|
DROP PROCEDURE [dbo].[OrganizationSponsorship_ReadBySponsoringOrganizationId]
|
||
|
END
|
||
|
GO
|
||
|
|
||
|
CREATE PROCEDURE [dbo].[OrganizationSponsorship_ReadBySponsoringOrganizationId]
|
||
|
@SponsoringOrganizationId UNIQUEIDENTIFIER
|
||
|
AS
|
||
|
BEGIN
|
||
|
SET NOCOUNT ON
|
||
|
|
||
|
SELECT
|
||
|
*
|
||
|
FROM
|
||
|
[dbo].[OrganizationSponsorshipView]
|
||
|
WHERE
|
||
|
[SponsoringOrganizationId] = @SponsoringOrganizationId
|
||
|
END
|
||
|
GO
|