1
0
mirror of https://github.com/bitwarden/server.git synced 2025-07-06 18:42:49 -05:00

refactored cipherfolder and fav to JSON columns

This commit is contained in:
Kyle Spearrin
2017-04-15 22:26:45 -04:00
parent 8e193dfc62
commit f21652b46b
21 changed files with 216 additions and 272 deletions

View File

@ -2,14 +2,44 @@
RETURNS TABLE
AS RETURN
SELECT
C.*,
CASE WHEN F.[CipherId] IS NULL THEN 0 ELSE 1 END [Favorite],
FO.[Id] [FolderId]
C.[Id],
C.[UserId],
C.[OrganizationId],
C.[Type],
C.[Data],
C.[CreationDate],
C.[RevisionDate],
CASE WHEN
C.[Favorites] IS NULL
OR (
SELECT TOP 1
1
FROM
OPENJSON(C.[Favorites])
WITH (
[Favorites_UserId] UNIQUEIDENTIFIER '$.u'
)
WHERE
[Favorites_UserId] = @UserId
) IS NULL
THEN 0
ELSE 1
END [Favorite],
CASE WHEN
C.[Folders] IS NULL
THEN NULL
ELSE (
SELECT TOP 1
[Folders_FolderId]
FROM
OPENJSON(C.[Folders])
WITH (
[Folders_UserId] UNIQUEIDENTIFIER '$.u',
[Folders_FolderId] UNIQUEIDENTIFIER '$.f'
)
WHERE
[Folders_UserId] = @UserId
)
END [FolderId]
FROM
[dbo].[Cipher] C
LEFT JOIN
[dbo].[Favorite] F ON F.[CipherId] = C.[Id] AND F.[UserId] = @UserId
LEFT JOIN
[dbo].[FolderCipher] FC ON FC.[UserId] = @UserId AND FC.[CipherId] = C.[Id]
LEFT JOIN
[dbo].[Folder] FO ON FO.[Id] = FC.[FolderId]