From 7bff121eeb426305269ce5077e756241ac552e2d Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Thu, 9 Mar 2017 22:09:09 -0500 Subject: [PATCH] adjusted subvaults api --- src/Api/Controllers/SubvaultsController.cs | 20 ++++++++-------- .../Api/Request/SubvaultRequestModel.cs | 23 ++++++++----------- 2 files changed, 19 insertions(+), 24 deletions(-) diff --git a/src/Api/Controllers/SubvaultsController.cs b/src/Api/Controllers/SubvaultsController.cs index dccdb3aff9..c1dc9e2f07 100644 --- a/src/Api/Controllers/SubvaultsController.cs +++ b/src/Api/Controllers/SubvaultsController.cs @@ -10,7 +10,7 @@ using Bit.Core.Services; namespace Bit.Api.Controllers { - [Route("subvaults")] + [Route("organizations/{orgId}/subvaults")] [Authorize("Application")] public class SubvaultsController : Controller { @@ -26,7 +26,7 @@ namespace Bit.Api.Controllers } [HttpGet("{id}")] - public async Task Get(string id) + public async Task Get(string orgId, string id) { var userId = _userService.GetProperUserId(User).Value; var subvault = await _subvaultRepository.GetByIdAdminUserIdAsync(new Guid(id), userId); @@ -38,7 +38,7 @@ namespace Bit.Api.Controllers return new SubvaultResponseModel(subvault); } - [HttpGet("")] + [HttpGet("~/subvaults")] public async Task> Get() { var subvaults = await _subvaultRepository.GetManyByUserIdAsync(_userService.GetProperUserId(User).Value); @@ -46,27 +46,27 @@ namespace Bit.Api.Controllers return new ListResponseModel(responses); } - [HttpGet("organization/{organizationId}")] - public async Task> GetByOrganization(string organizationId) + [HttpGet("")] + public async Task> GetByOrganization(string orgId) { - var subvaults = await _subvaultRepository.GetManyByOrganizationIdAdminUserIdAsync(new Guid(organizationId), + var subvaults = await _subvaultRepository.GetManyByOrganizationIdAdminUserIdAsync(new Guid(orgId), _userService.GetProperUserId(User).Value); var responses = subvaults.Select(s => new SubvaultResponseModel(s)); return new ListResponseModel(responses); } [HttpPost("")] - public async Task Post([FromBody]SubvaultCreateRequestModel model) + public async Task Post(string orgId, [FromBody]SubvaultRequestModel model) { // TODO: permission check - var subvault = model.ToSubvault(); + var subvault = model.ToSubvault(new Guid(orgId)); await _subvaultRepository.CreateAsync(subvault); return new SubvaultResponseModel(subvault); } [HttpPut("{id}")] [HttpPost("{id}")] - public async Task Put(string id, [FromBody]SubvaultUpdateRequestModel model) + public async Task Put(string orgId, string id, [FromBody]SubvaultRequestModel model) { var subvault = await _subvaultRepository.GetByIdAdminUserIdAsync(new Guid(id), _userService.GetProperUserId(User).Value); @@ -81,7 +81,7 @@ namespace Bit.Api.Controllers [HttpDelete("{id}")] [HttpPost("{id}/delete")] - public async Task Delete(string id) + public async Task Delete(string orgId, string id) { var subvault = await _subvaultRepository.GetByIdAdminUserIdAsync(new Guid(id), _userService.GetProperUserId(User).Value); diff --git a/src/Core/Models/Api/Request/SubvaultRequestModel.cs b/src/Core/Models/Api/Request/SubvaultRequestModel.cs index 0e08a38f29..312e89e31d 100644 --- a/src/Core/Models/Api/Request/SubvaultRequestModel.cs +++ b/src/Core/Models/Api/Request/SubvaultRequestModel.cs @@ -6,26 +6,21 @@ using Newtonsoft.Json; namespace Bit.Core.Models.Api { - public class SubvaultCreateRequestModel : SubvaultUpdateRequestModel - { - public string OrganizationId { get; set; } - - public Subvault ToSubvault() - { - return ToSubvault(new Subvault - { - OrganizationId = new Guid(OrganizationId) - }); - } - } - - public class SubvaultUpdateRequestModel + public class SubvaultRequestModel { [Required] [EncryptedString] [StringLength(300)] public string Name { get; set; } + public Subvault ToSubvault(Guid orgId) + { + return ToSubvault(new Subvault + { + OrganizationId = orgId + }); + } + public Subvault ToSubvault(Subvault existingSubvault) { existingSubvault.Name = Name;