From 5691fe7575b84eb5ec791e7e9dd66f52ab37e7e1 Mon Sep 17 00:00:00 2001 From: Annika Date: Tue, 2 Aug 2022 11:24:59 -0600 Subject: [PATCH] passed all postman tests! --- keepr/Controllers/VaultsController.cs | 22 +++++++++++++++++++--- keepr/Models/Keep.cs | 8 ++++---- keepr/Repositories/KeepsRepository.cs | 13 +++++++------ keepr/Repositories/VaultKeepsRepository.cs | 8 +++++--- keepr/Repositories/VaultsRepository.cs | 7 +++++-- keepr/Services/KeepsService.cs | 10 ++++++++-- keepr/Services/VaultKeepsService.cs | 2 +- keepr/Services/VaultsService.cs | 16 +++++++++++++++- 8 files changed, 64 insertions(+), 22 deletions(-) diff --git a/keepr/Controllers/VaultsController.cs b/keepr/Controllers/VaultsController.cs index 94e636c..ca8e75e 100644 --- a/keepr/Controllers/VaultsController.cs +++ b/keepr/Controllers/VaultsController.cs @@ -45,7 +45,15 @@ namespace keepr.Controllers try { Account userInfo = await HttpContext.GetUserInfoAsync(); - Vault vault = _vs.GetById(vaultId, userInfo.Id); + Vault vault; + if (userInfo == null) + { + vault = _vs.GetByIdAnon(vaultId); + } + else + { + vault = _vs.GetById(vaultId, userInfo.Id); + } return Ok(vault); } catch (System.Exception e) @@ -60,8 +68,16 @@ namespace keepr.Controllers try { Account userInfo = await HttpContext.GetUserInfoAsync(); - Vault vault = _vs.GetById(vaultId, userInfo.Id); - List keeps = _vks.GetVaultKeeps(vault.Id); + Vault vault; + if (userInfo == null) + { + vault = _vs.GetByIdAnon(vaultId); + } + else + { + vault = _vs.GetById(vaultId, userInfo.Id); + } + List keeps = _vks.GetVaultKeeps(vault.Id); return Ok(keeps); } catch (System.Exception e) diff --git a/keepr/Models/Keep.cs b/keepr/Models/Keep.cs index 11ce9e2..1d08b7f 100644 --- a/keepr/Models/Keep.cs +++ b/keepr/Models/Keep.cs @@ -20,8 +20,8 @@ namespace keepr.Models // shares int - stretch goal } - // public class KeepVaultViewModel : Keep - // { - // public int MyProperty { get; set; } - // } + public class KeepVaultViewModel : Keep + { + public int VaultKeepId { get; set; } + } } \ No newline at end of file diff --git a/keepr/Repositories/KeepsRepository.cs b/keepr/Repositories/KeepsRepository.cs index b65c437..9927fae 100644 --- a/keepr/Repositories/KeepsRepository.cs +++ b/keepr/Repositories/KeepsRepository.cs @@ -37,13 +37,14 @@ namespace keepr.Repositories public Keep Create(Keep keep) { string sql = @" - INSERT INTO keeps - (creatorId, name, description, img) - VALUES - (@CreatorId, @Name, @Description, @Img); - SELECT LAST_INSERT_ID(); + INSERT INTO keeps + (creatorId, name, description, img) + VALUES + (@CreatorId, @Name, @Description, @Img); + SELECT LAST_INSERT_ID(); "; - keep.Id = _db.ExecuteScalar(sql, keep); + int keepId = _db.ExecuteScalar(sql, keep); + keep = GetById(keepId); return keep; } diff --git a/keepr/Repositories/VaultKeepsRepository.cs b/keepr/Repositories/VaultKeepsRepository.cs index 1974214..6d5a2df 100644 --- a/keepr/Repositories/VaultKeepsRepository.cs +++ b/keepr/Repositories/VaultKeepsRepository.cs @@ -68,12 +68,13 @@ namespace keepr.Repositories } - internal List GetVaultKeeps(int vaultId) + internal List GetVaultKeeps(int vaultId) { string sql = @" SELECT a.*, - k.* + k.*, + vk.id FROM keeps k JOIN accounts a ON a.id = k.creatorId @@ -81,9 +82,10 @@ namespace keepr.Repositories ON vk.keepId = k.id WHERE vk.vaultId = @vaultId; "; - return _db.Query(sql, (prof, keep) => + return _db.Query(sql, (prof, keep, vkid) => { keep.Creator = prof; + keep.VaultKeepId = vkid; return keep; }, new {vaultId}).ToList(); } diff --git a/keepr/Repositories/VaultsRepository.cs b/keepr/Repositories/VaultsRepository.cs index a2aeba9..022c8f8 100644 --- a/keepr/Repositories/VaultsRepository.cs +++ b/keepr/Repositories/VaultsRepository.cs @@ -50,7 +50,8 @@ namespace keepr.Repositories (@CreatorId, @Name, @Description, @IsPrivate); SELECT LAST_INSERT_ID(); "; - vaultData.Id = _db.ExecuteScalar(sql, vaultData); + int vaultId = _db.ExecuteScalar(sql, vaultData); + vaultData = GetById(vaultId); return vaultData; } @@ -66,11 +67,13 @@ namespace keepr.Repositories ON v.creatorId = a.id WHERE v.id = @id; "; - return _db.Query(sql, (prof, vaul) => + Vault vault = _db.Query(sql, (prof, vaul) => { vaul.Creator = prof; return vaul; }, new {id}).FirstOrDefault(); + + return vault; } internal Vault Update(Vault update) diff --git a/keepr/Services/KeepsService.cs b/keepr/Services/KeepsService.cs index 57c6a32..32b4687 100644 --- a/keepr/Services/KeepsService.cs +++ b/keepr/Services/KeepsService.cs @@ -38,8 +38,14 @@ namespace keepr.Services internal Keep GetById(int id) { - _repo.IncViews(id); - return _repo.GetById(id); + + _repo.IncViews(id); + Keep keep = _repo.GetById(id); + if (keep == null) + { + throw new Exception("No keep for you!"); + } + return keep; } internal Keep CheckById(int id) diff --git a/keepr/Services/VaultKeepsService.cs b/keepr/Services/VaultKeepsService.cs index e81f773..108d6dd 100644 --- a/keepr/Services/VaultKeepsService.cs +++ b/keepr/Services/VaultKeepsService.cs @@ -68,7 +68,7 @@ namespace keepr.Services return _repo.Remove(vaultKeep.Id); } - internal List GetVaultKeeps(int vaultId) + internal List GetVaultKeeps(int vaultId) { return _repo.GetVaultKeeps(vaultId); } diff --git a/keepr/Services/VaultsService.cs b/keepr/Services/VaultsService.cs index 13a7099..124cecc 100644 --- a/keepr/Services/VaultsService.cs +++ b/keepr/Services/VaultsService.cs @@ -41,7 +41,21 @@ namespace keepr.Services { throw new Exception("No vault for you!"); } - if (vault.CreatorId != userId && vault.IsPrivate == true) + if (vault.IsPrivate == true && vault.CreatorId != userId) + { + throw new Exception("No vault for you!"); + } + return vault; + } + + internal Vault GetByIdAnon(int vaultId) + { + Vault vault = _repo.GetById(vaultId); + if (vault == null) + { + throw new Exception("No vault for you!"); + } + if (vault.IsPrivate == true) { throw new Exception("No vault for you!"); }