1
0
mirror of https://github.com/bitwarden/server synced 2026-01-06 18:43:36 +00:00
Files
server/src/Sql/dbo/Stored Procedures/Organization_UpdateStorage.sql
Kyle Spearrin 82dd364e65 Send APIs (#979)
* send work

* fix sql proj file

* update

* updates

* access id

* delete job

* fix delete job

* local send storage

* update sprocs for null checks
2020-11-02 15:55:49 -05:00

67 lines
1.4 KiB
Transact-SQL

CREATE PROCEDURE [dbo].[Organization_UpdateStorage]
@Id UNIQUEIDENTIFIER
AS
BEGIN
SET NOCOUNT ON
DECLARE @AttachmentStorage BIGINT
DECLARE @SendStorage BIGINT
CREATE TABLE #OrgStorageUpdateTemp
(
[Id] UNIQUEIDENTIFIER NOT NULL,
[Attachments] VARCHAR(MAX) NULL
)
INSERT INTO #OrgStorageUpdateTemp
SELECT
[Id],
[Attachments]
FROM
[dbo].[Cipher]
WHERE
[UserId] IS NULL
AND [OrganizationId] = @Id
;WITH [CTE] AS (
SELECT
[Id],
(
SELECT
SUM(CAST(JSON_VALUE(value,'$.Size') AS BIGINT))
FROM
OPENJSON([Attachments])
) [Size]
FROM
#OrgStorageUpdateTemp
)
SELECT
@AttachmentStorage = SUM([Size])
FROM
[CTE]
DROP TABLE #OrgStorageUpdateTemp
;WITH [CTE] AS (
SELECT
[Id],
CAST(JSON_VALUE([Data],'$.Size') AS BIGINT) [Size]
FROM
[Send]
WHERE
[UserId] IS NULL
AND [OrganizationId] = @Id
)
SELECT
@SendStorage = SUM([CTE].[Size])
FROM
[CTE]
UPDATE
[dbo].[Organization]
SET
[Storage] = (ISNULL(@AttachmentStorage, 0) + ISNULL(@SendStorage, 0)),
[RevisionDate] = GETUTCDATE()
WHERE
[Id] = @Id
END