diff --git a/bitwarden_license/src/Sso/Controllers/AccountController.cs b/bitwarden_license/src/Sso/Controllers/AccountController.cs index 83c3927795..eaa12e6f36 100644 --- a/bitwarden_license/src/Sso/Controllers/AccountController.cs +++ b/bitwarden_license/src/Sso/Controllers/AccountController.cs @@ -23,7 +23,6 @@ using System.Threading.Tasks; using Bit.Core.Models; using Bit.Core.Models.Api; using Bit.Core.Utilities; -using System.Text.Json; using Bit.Core.Models.Data; using Bit.Core.Settings; diff --git a/src/Api/Controllers/AccountsController.cs b/src/Api/Controllers/AccountsController.cs index 9232b011ee..727df23be7 100644 --- a/src/Api/Controllers/AccountsController.cs +++ b/src/Api/Controllers/AccountsController.cs @@ -2,8 +2,6 @@ using Bit.Core; using Bit.Core.Enums; using Bit.Core.Exceptions; -using Bit.Core.Models.Api; -using Bit.Core.Models.Api.Request.Accounts; using Bit.Core.Models.Business; using Bit.Core.Models.Data; using Bit.Core.Models.Table; @@ -17,6 +15,9 @@ using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Bit.Api.Models.Request; +using Bit.Api.Models.Request.Accounts; +using Bit.Api.Models.Response; using Bit.Core.Enums.Provider; namespace Bit.Api.Controllers diff --git a/src/Api/Controllers/CiphersController.cs b/src/Api/Controllers/CiphersController.cs index 5a982418c6..568c9c36fb 100644 --- a/src/Api/Controllers/CiphersController.cs +++ b/src/Api/Controllers/CiphersController.cs @@ -4,7 +4,6 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Bit.Core.Repositories; using Microsoft.AspNetCore.Authorization; -using Bit.Core.Models.Api; using Bit.Core.Exceptions; using Bit.Core.Services; using Bit.Core.Context; @@ -15,6 +14,10 @@ using Bit.Core.Models.Table; using Bit.Core.Settings; using Core.Models.Data; using Azure.Messaging.EventGrid; +using Bit.Api.Models.Request; +using Bit.Api.Models.Request.Accounts; +using Bit.Api.Models.Request.Organizations; +using Bit.Api.Models.Response; using Bit.Core.Models.Data; using Microsoft.Extensions.Logging; using Newtonsoft.Json; @@ -600,8 +603,8 @@ namespace Bit.Api.Controllers throw new BadRequestException($"Max file size is {CipherService.MAX_FILE_SIZE_READABLE}."); } - - var (attachmentId, uploadUrl) = await _cipherService.CreateAttachmentForDelayedUploadAsync(cipher, request, userId); + var (attachmentId, uploadUrl) = await _cipherService.CreateAttachmentForDelayedUploadAsync(cipher, + request.Key, request.FileName, request.FileSize, request.AdminRequest, userId); return new AttachmentUploadDataResponseModel { AttachmentId = attachmentId, @@ -713,7 +716,8 @@ namespace Bit.Api.Controllers { var userId = _userService.GetProperUserId(User).Value; var cipher = await _cipherRepository.GetByIdAsync(new Guid(id), userId); - return await _cipherService.GetAttachmentDownloadDataAsync(cipher, attachmentId); + var result = await _cipherService.GetAttachmentDownloadDataAsync(cipher, attachmentId); + return new AttachmentResponseModel(result.Id, result.Data, result.Cipher, _globalSettings); } [HttpPost("{id}/attachment/{attachmentId}/share")] diff --git a/src/Api/Controllers/CollectionsController.cs b/src/Api/Controllers/CollectionsController.cs index 1a95ea358c..34f0f745d9 100644 --- a/src/Api/Controllers/CollectionsController.cs +++ b/src/Api/Controllers/CollectionsController.cs @@ -4,12 +4,13 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Bit.Core.Repositories; using Microsoft.AspNetCore.Authorization; -using Bit.Core.Models.Api; using Bit.Core.Exceptions; using Bit.Core.Services; using Bit.Core.Context; using Bit.Core.Models.Table; using System.Collections.Generic; +using Bit.Api.Models.Request; +using Bit.Api.Models.Response; namespace Bit.Api.Controllers { diff --git a/src/Api/Controllers/DevicesController.cs b/src/Api/Controllers/DevicesController.cs index 977216ca14..5a4b8c57e6 100644 --- a/src/Api/Controllers/DevicesController.cs +++ b/src/Api/Controllers/DevicesController.cs @@ -2,10 +2,11 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Bit.Api.Models.Request; +using Bit.Api.Models.Response; using Microsoft.AspNetCore.Mvc; using Bit.Core.Repositories; using Microsoft.AspNetCore.Authorization; -using Bit.Core.Models.Api; using Bit.Core.Exceptions; using Bit.Core.Models.Table; using Bit.Core.Services; diff --git a/src/Api/Controllers/EmergencyAccessController.cs b/src/Api/Controllers/EmergencyAccessController.cs index 30b8b787b4..3a77791ab6 100644 --- a/src/Api/Controllers/EmergencyAccessController.cs +++ b/src/Api/Controllers/EmergencyAccessController.cs @@ -1,13 +1,14 @@ using System; using System.Linq; using System.Threading.Tasks; +using Bit.Api.Models.Request; +using Bit.Api.Models.Request.Organizations; +using Bit.Api.Models.Response; using Bit.Core.Exceptions; -using Bit.Core.Models.Api; -using Bit.Core.Models.Api.Request; -using Bit.Core.Models.Api.Response; using Bit.Core.Models.Table; using Bit.Core.Repositories; using Bit.Core.Services; +using Bit.Core.Settings; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -20,15 +21,18 @@ namespace Bit.Api.Controllers private readonly IUserService _userService; private readonly IEmergencyAccessRepository _emergencyAccessRepository; private readonly IEmergencyAccessService _emergencyAccessService; + private readonly IGlobalSettings _globalSettings; public EmergencyAccessController( IUserService userService, IEmergencyAccessRepository emergencyAccessRepository, - IEmergencyAccessService emergencyAccessService) + IEmergencyAccessService emergencyAccessService, + IGlobalSettings globalSettings) { _userService = userService; _emergencyAccessRepository = emergencyAccessRepository; _emergencyAccessService = emergencyAccessService; + _globalSettings = globalSettings; } [HttpGet("trusted")] @@ -161,14 +165,17 @@ namespace Bit.Api.Controllers public async Task ViewCiphers(string id) { var user = await _userService.GetUserByPrincipalAsync(User); - return await _emergencyAccessService.ViewAsync(new Guid(id), user); + var viewResult = await _emergencyAccessService.ViewAsync(new Guid(id), user); + return new EmergencyAccessViewResponseModel(_globalSettings, viewResult.EmergencyAccess, viewResult.Ciphers); } [HttpGet("{id}/{cipherId}/attachment/{attachmentId}")] public async Task GetAttachmentData(string id, string cipherId, string attachmentId) { var user = await _userService.GetUserByPrincipalAsync(User); - return await _emergencyAccessService.GetAttachmentDownloadAsync(new Guid(id), cipherId, attachmentId, user); + var result = + await _emergencyAccessService.GetAttachmentDownloadAsync(new Guid(id), cipherId, attachmentId, user); + return new AttachmentResponseModel(result.Id, result.Data, result.Cipher, _globalSettings); } } } diff --git a/src/Api/Controllers/EventsController.cs b/src/Api/Controllers/EventsController.cs index 8c6de4a11a..ac3f38423d 100644 --- a/src/Api/Controllers/EventsController.cs +++ b/src/Api/Controllers/EventsController.cs @@ -1,11 +1,11 @@ using System; using System.Linq; using System.Threading.Tasks; +using Bit.Api.Models.Response; using Microsoft.AspNetCore.Mvc; using Bit.Core.Repositories; using Microsoft.AspNetCore.Authorization; using Bit.Core.Exceptions; -using Bit.Core.Models.Api; using Bit.Core.Services; using Bit.Core.Context; using Bit.Core.Models.Data; diff --git a/src/Api/Controllers/FoldersController.cs b/src/Api/Controllers/FoldersController.cs index a2c53e6d88..4cd621a21f 100644 --- a/src/Api/Controllers/FoldersController.cs +++ b/src/Api/Controllers/FoldersController.cs @@ -1,10 +1,11 @@ using System; using System.Linq; using System.Threading.Tasks; +using Bit.Api.Models.Request; +using Bit.Api.Models.Response; using Microsoft.AspNetCore.Mvc; using Bit.Core.Repositories; using Microsoft.AspNetCore.Authorization; -using Bit.Core.Models.Api; using Bit.Core.Exceptions; using Bit.Core.Services; diff --git a/src/Api/Controllers/GroupsController.cs b/src/Api/Controllers/GroupsController.cs index 55572d53b6..27217ad55f 100644 --- a/src/Api/Controllers/GroupsController.cs +++ b/src/Api/Controllers/GroupsController.cs @@ -4,11 +4,12 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Bit.Core.Repositories; using Microsoft.AspNetCore.Authorization; -using Bit.Core.Models.Api; using Bit.Core.Exceptions; using Bit.Core.Services; using Bit.Core.Context; using System.Collections.Generic; +using Bit.Api.Models.Request; +using Bit.Api.Models.Response; namespace Bit.Api.Controllers { diff --git a/src/Api/Controllers/InstallationsController.cs b/src/Api/Controllers/InstallationsController.cs index b51a8afe1e..ec68bbdd7a 100644 --- a/src/Api/Controllers/InstallationsController.cs +++ b/src/Api/Controllers/InstallationsController.cs @@ -1,8 +1,9 @@ using System; using System.Threading.Tasks; +using Bit.Api.Models.Request; +using Bit.Api.Models.Response; using Microsoft.AspNetCore.Mvc; using Bit.Core.Repositories; -using Bit.Core.Models.Api; using Microsoft.AspNetCore.Authorization; using Bit.Core.Exceptions; using Bit.Core.Utilities; diff --git a/src/Api/Controllers/MiscController.cs b/src/Api/Controllers/MiscController.cs index 2c01513ae2..abc4630c9d 100644 --- a/src/Api/Controllers/MiscController.cs +++ b/src/Api/Controllers/MiscController.cs @@ -1,12 +1,10 @@ -using Microsoft.AspNetCore.Mvc; -using Bit.Core.Models.Api; +using Microsoft.AspNetCore.Mvc; using System.Threading.Tasks; +using Bit.Api.Models.Request; using Bit.Core.Utilities; using Microsoft.AspNetCore.Authorization; using Bit.Core.Settings; using Stripe; -using System.Linq; -using System.Collections.Generic; namespace Bit.Api.Controllers { diff --git a/src/Api/Controllers/OrganizationSponsorshipsController.cs b/src/Api/Controllers/OrganizationSponsorshipsController.cs index b537d963aa..e9806d2008 100644 --- a/src/Api/Controllers/OrganizationSponsorshipsController.cs +++ b/src/Api/Controllers/OrganizationSponsorshipsController.cs @@ -1,9 +1,8 @@ using System; using System.Threading.Tasks; +using Bit.Api.Models.Request.Organizations; using Bit.Core.Context; using Bit.Core.Exceptions; -using Bit.Core.Models.Api; -using Bit.Core.Models.Api.Request; using Bit.Core.Models.Table; using Bit.Core.Repositories; using Bit.Core.Services; diff --git a/src/Api/Controllers/OrganizationUsersController.cs b/src/Api/Controllers/OrganizationUsersController.cs index bd31fc8066..779aa66788 100644 --- a/src/Api/Controllers/OrganizationUsersController.cs +++ b/src/Api/Controllers/OrganizationUsersController.cs @@ -4,11 +4,12 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Bit.Core.Repositories; using Microsoft.AspNetCore.Authorization; -using Bit.Core.Models.Api; using Bit.Core.Exceptions; using Bit.Core.Services; using Bit.Core.Context; using System.Collections.Generic; +using Bit.Api.Models.Request.Organizations; +using Bit.Api.Models.Response; using Bit.Core.Enums; using Bit.Core.Models.Business; using Bit.Core.Models.Data; @@ -136,7 +137,7 @@ namespace Bit.Api.Controllers var userId = _userService.GetProperUserId(User); var result = await _organizationService.InviteUsersAsync(orgGuidId, userId.Value, - new (OrganizationUserInvite, string)[] { (new OrganizationUserInvite(model), null) }); + new (OrganizationUserInvite, string)[] { (new OrganizationUserInvite(model.ToData()), null) }); } [HttpPost("reinvite")] diff --git a/src/Api/Controllers/OrganizationsController.cs b/src/Api/Controllers/OrganizationsController.cs index 3c9a9fe788..eac93529c5 100644 --- a/src/Api/Controllers/OrganizationsController.cs +++ b/src/Api/Controllers/OrganizationsController.cs @@ -1,16 +1,18 @@ using System; using System.Linq; using System.Threading.Tasks; +using Bit.Api.Models.Request; +using Bit.Api.Models.Request.Accounts; +using Bit.Api.Models.Request.Organizations; +using Bit.Api.Models.Response; using Microsoft.AspNetCore.Mvc; using Bit.Core.Repositories; using Microsoft.AspNetCore.Authorization; using Bit.Core.Enums; -using Bit.Core.Models.Api; using Bit.Core.Exceptions; using Bit.Core.Services; using Bit.Core.Context; using Bit.Api.Utilities; -using Bit.Core.Models.Api.Response; using Bit.Core.Models.Business; using Bit.Core.Models.Data; using Bit.Core.Utilities; diff --git a/src/Api/Controllers/PlansController.cs b/src/Api/Controllers/PlansController.cs index 45c7c6eb97..1d599e34fc 100644 --- a/src/Api/Controllers/PlansController.cs +++ b/src/Api/Controllers/PlansController.cs @@ -1,10 +1,10 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Bit.Core.Utilities; -using Bit.Core.Models.Api; using System.Linq; using Bit.Core.Repositories; using System.Threading.Tasks; +using Bit.Api.Models.Response; namespace Bit.Api.Controllers { diff --git a/src/Api/Controllers/PoliciesController.cs b/src/Api/Controllers/PoliciesController.cs index 7ccd551a4f..376e33ba73 100644 --- a/src/Api/Controllers/PoliciesController.cs +++ b/src/Api/Controllers/PoliciesController.cs @@ -1,10 +1,11 @@ using System; using System.Linq; using System.Threading.Tasks; +using Bit.Api.Models.Request; +using Bit.Api.Models.Response; using Microsoft.AspNetCore.Mvc; using Bit.Core.Repositories; using Microsoft.AspNetCore.Authorization; -using Bit.Core.Models.Api; using Bit.Core.Exceptions; using Bit.Core.Services; using Bit.Core.Context; diff --git a/src/Api/Controllers/ProviderOrganizationsController.cs b/src/Api/Controllers/ProviderOrganizationsController.cs index 326a0a86b7..e953bcb229 100644 --- a/src/Api/Controllers/ProviderOrganizationsController.cs +++ b/src/Api/Controllers/ProviderOrganizationsController.cs @@ -1,10 +1,11 @@ using System; using System.Linq; using System.Threading.Tasks; +using Bit.Api.Models.Request.Providers; +using Bit.Api.Models.Response; +using Bit.Api.Models.Response.Providers; using Bit.Core.Context; using Bit.Core.Exceptions; -using Bit.Core.Models.Api; -using Bit.Core.Models.Api.Request; using Bit.Core.Repositories; using Bit.Core.Services; using Bit.Core.Utilities; diff --git a/src/Api/Controllers/ProviderUsersController.cs b/src/Api/Controllers/ProviderUsersController.cs index dfd17cf4d8..9ae3e9d32c 100644 --- a/src/Api/Controllers/ProviderUsersController.cs +++ b/src/Api/Controllers/ProviderUsersController.cs @@ -2,10 +2,12 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Bit.Api.Models.Request.Providers; +using Bit.Api.Models.Response; +using Bit.Api.Models.Response.Providers; using Microsoft.AspNetCore.Mvc; using Bit.Core.Repositories; using Microsoft.AspNetCore.Authorization; -using Bit.Core.Models.Api; using Bit.Core.Exceptions; using Bit.Core.Services; using Bit.Core.Context; diff --git a/src/Api/Controllers/ProvidersController.cs b/src/Api/Controllers/ProvidersController.cs index d0d9061e1e..7488d20069 100644 --- a/src/Api/Controllers/ProvidersController.cs +++ b/src/Api/Controllers/ProvidersController.cs @@ -1,8 +1,9 @@ using System; using System.Threading.Tasks; +using Bit.Api.Models.Request.Providers; +using Bit.Api.Models.Response.Providers; using Bit.Core.Context; using Bit.Core.Exceptions; -using Bit.Core.Models.Api; using Bit.Core.Repositories; using Bit.Core.Services; using Bit.Core.Settings; diff --git a/src/Api/Controllers/PushController.cs b/src/Api/Controllers/PushController.cs index 1e26fff848..291723ca50 100644 --- a/src/Api/Controllers/PushController.cs +++ b/src/Api/Controllers/PushController.cs @@ -1,14 +1,12 @@ using Microsoft.AspNetCore.Mvc; using Bit.Core.Services; using Microsoft.AspNetCore.Authorization; -using Bit.Core; using Bit.Core.Context; using Bit.Core.Exceptions; -using Bit.Core.Models.Api; using System.Threading.Tasks; using System.Linq; using Microsoft.AspNetCore.Hosting; -using Bit.Api.Utilities; +using Bit.Core.Models.Api; using Bit.Core.Utilities; using Bit.Core.Settings; using Microsoft.Extensions.Hosting; diff --git a/src/Api/Controllers/SendsController.cs b/src/Api/Controllers/SendsController.cs index 16d6c2d86b..fc30345977 100644 --- a/src/Api/Controllers/SendsController.cs +++ b/src/Api/Controllers/SendsController.cs @@ -4,17 +4,17 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Bit.Core.Repositories; using Microsoft.AspNetCore.Authorization; -using Bit.Core.Models.Api; using Bit.Core.Exceptions; using Bit.Core.Services; using Bit.Core.Utilities; using Bit.Core.Settings; -using Bit.Core.Models.Api.Response; using Bit.Core.Enums; using Bit.Core.Context; using Azure.Messaging.EventGrid; using Bit.Api.Utilities; using System.Collections.Generic; +using Bit.Api.Models.Request; +using Bit.Api.Models.Response; using Bit.Core.Models.Table; using Newtonsoft.Json; using Bit.Core.Models.Data; diff --git a/src/Api/Controllers/SettingsController.cs b/src/Api/Controllers/SettingsController.cs index b999a582b5..d67e7ddff0 100644 --- a/src/Api/Controllers/SettingsController.cs +++ b/src/Api/Controllers/SettingsController.cs @@ -1,8 +1,9 @@ using System; using System.Threading.Tasks; +using Bit.Api.Models.Request; +using Bit.Api.Models.Response; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Bit.Core.Models.Api; using Bit.Core.Services; namespace Bit.Api.Controllers diff --git a/src/Api/Controllers/SyncController.cs b/src/Api/Controllers/SyncController.cs index 2da50d3bbf..313db075ed 100644 --- a/src/Api/Controllers/SyncController.cs +++ b/src/Api/Controllers/SyncController.cs @@ -2,7 +2,6 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Bit.Core.Models.Api; using Bit.Core.Services; using Bit.Core.Repositories; using Bit.Core.Enums; @@ -10,6 +9,7 @@ using Bit.Core.Exceptions; using System.Linq; using Bit.Core.Models.Table; using System.Collections.Generic; +using Bit.Api.Models.Response; using Bit.Core.Enums.Provider; using Bit.Core.Models.Data; using Bit.Core.Settings; diff --git a/src/Api/Controllers/TwoFactorController.cs b/src/Api/Controllers/TwoFactorController.cs index 59242ef7ed..9e8395fca0 100644 --- a/src/Api/Controllers/TwoFactorController.cs +++ b/src/Api/Controllers/TwoFactorController.cs @@ -2,13 +2,16 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Bit.Core.Models.Api; using Bit.Core.Exceptions; using Bit.Core.Services; using Microsoft.AspNetCore.Identity; using Bit.Core.Models.Table; using Bit.Core.Enums; using System.Linq; +using Bit.Api.Models.Request; +using Bit.Api.Models.Request.Accounts; +using Bit.Api.Models.Response; +using Bit.Api.Models.Response.TwoFactor; using Bit.Core.Context; using Bit.Core.Repositories; using Bit.Core.Utilities; diff --git a/src/Api/Controllers/UsersController.cs b/src/Api/Controllers/UsersController.cs index 58a05a5c61..a7d9336b26 100644 --- a/src/Api/Controllers/UsersController.cs +++ b/src/Api/Controllers/UsersController.cs @@ -1,10 +1,10 @@ using System; using System.Threading.Tasks; +using Bit.Api.Models.Response; using Microsoft.AspNetCore.Mvc; using Bit.Core.Repositories; using Microsoft.AspNetCore.Authorization; using Bit.Core.Exceptions; -using Bit.Core.Models.Api; namespace Bit.Api.Controllers { diff --git a/src/Core/Models/Api/CipherAttachmentModel.cs b/src/Api/Models/CipherAttachmentModel.cs similarity index 94% rename from src/Core/Models/Api/CipherAttachmentModel.cs rename to src/Api/Models/CipherAttachmentModel.cs index bf148e4d6b..b7a7fa3519 100644 --- a/src/Core/Models/Api/CipherAttachmentModel.cs +++ b/src/Api/Models/CipherAttachmentModel.cs @@ -1,7 +1,7 @@ using Bit.Core.Models.Data; using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models { public class CipherAttachmentModel { diff --git a/src/Core/Models/Api/CipherCardModel.cs b/src/Api/Models/CipherCardModel.cs similarity index 97% rename from src/Core/Models/Api/CipherCardModel.cs rename to src/Api/Models/CipherCardModel.cs index 5b81fc02ac..d95123e324 100644 --- a/src/Core/Models/Api/CipherCardModel.cs +++ b/src/Api/Models/CipherCardModel.cs @@ -2,7 +2,7 @@ using Bit.Core.Models.Data; using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models { public class CipherCardModel { diff --git a/src/Core/Models/Api/CipherFieldModel.cs b/src/Api/Models/CipherFieldModel.cs similarity index 65% rename from src/Core/Models/Api/CipherFieldModel.cs rename to src/Api/Models/CipherFieldModel.cs index a51db14975..5ade6e883d 100644 --- a/src/Core/Models/Api/CipherFieldModel.cs +++ b/src/Api/Models/CipherFieldModel.cs @@ -1,9 +1,8 @@ -using System.ComponentModel.DataAnnotations; -using Bit.Core.Enums; +using Bit.Core.Enums; using Bit.Core.Models.Data; using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models { public class CipherFieldModel { @@ -23,5 +22,16 @@ namespace Bit.Core.Models.Api [EncryptedStringLength(5000)] public string Value { get; set; } public int? LinkedId { get; set; } + + public CipherFieldData ToCipherFieldData() + { + return new CipherFieldData + { + Type = Type, + Name = Name, + Value = Value, + LinkedId = LinkedId ?? null, + }; + } } } diff --git a/src/Core/Models/Api/CipherIdentityModel.cs b/src/Api/Models/CipherIdentityModel.cs similarity index 98% rename from src/Core/Models/Api/CipherIdentityModel.cs rename to src/Api/Models/CipherIdentityModel.cs index f8909647da..ce50166192 100644 --- a/src/Core/Models/Api/CipherIdentityModel.cs +++ b/src/Api/Models/CipherIdentityModel.cs @@ -2,7 +2,7 @@ using Bit.Core.Models.Data; using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models { public class CipherIdentityModel { diff --git a/src/Core/Models/Api/CipherLoginModel.cs b/src/Api/Models/CipherLoginModel.cs similarity index 91% rename from src/Core/Models/Api/CipherLoginModel.cs rename to src/Api/Models/CipherLoginModel.cs index f243cbc741..0b5f9b64e4 100644 --- a/src/Core/Models/Api/CipherLoginModel.cs +++ b/src/Api/Models/CipherLoginModel.cs @@ -1,12 +1,11 @@ using System; -using System.ComponentModel.DataAnnotations; -using Bit.Core.Utilities; -using Bit.Core.Enums; using System.Collections.Generic; using System.Linq; +using Bit.Core.Enums; using Bit.Core.Models.Data; +using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models { public class CipherLoginModel { @@ -79,6 +78,11 @@ namespace Bit.Core.Models.Api [EncryptedStringLength(10000)] public string Uri { get; set; } public UriMatchType? Match { get; set; } = null; + + public CipherLoginData.CipherLoginUriData ToCipherLoginUriData() + { + return new CipherLoginData.CipherLoginUriData { Uri = Uri, Match = Match, }; + } } } } diff --git a/src/Core/Models/Api/CipherPasswordHistoryModel.cs b/src/Api/Models/CipherPasswordHistoryModel.cs similarity index 72% rename from src/Core/Models/Api/CipherPasswordHistoryModel.cs rename to src/Api/Models/CipherPasswordHistoryModel.cs index 25ba040053..53831842a6 100644 --- a/src/Core/Models/Api/CipherPasswordHistoryModel.cs +++ b/src/Api/Models/CipherPasswordHistoryModel.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations; using Bit.Core.Models.Data; using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models { public class CipherPasswordHistoryModel { @@ -21,5 +21,10 @@ namespace Bit.Core.Models.Api public string Password { get; set; } [Required] public DateTime? LastUsedDate { get; set; } + + public CipherPasswordHistoryData ToCipherPasswordHistoryData() + { + return new CipherPasswordHistoryData { Password = Password, LastUsedDate = LastUsedDate.Value, }; + } } } diff --git a/src/Core/Models/Api/CipherSecureNoteModel.cs b/src/Api/Models/CipherSecureNoteModel.cs similarity index 91% rename from src/Core/Models/Api/CipherSecureNoteModel.cs rename to src/Api/Models/CipherSecureNoteModel.cs index 990d9617ae..6ea63d299c 100644 --- a/src/Core/Models/Api/CipherSecureNoteModel.cs +++ b/src/Api/Models/CipherSecureNoteModel.cs @@ -1,7 +1,7 @@ using Bit.Core.Enums; using Bit.Core.Models.Data; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models { public class CipherSecureNoteModel { diff --git a/src/Core/Models/Api/Public/AssociationWithPermissionsBaseModel.cs b/src/Api/Models/Public/AssociationWithPermissionsBaseModel.cs similarity index 90% rename from src/Core/Models/Api/Public/AssociationWithPermissionsBaseModel.cs rename to src/Api/Models/Public/AssociationWithPermissionsBaseModel.cs index 03a21ab317..b252129379 100644 --- a/src/Core/Models/Api/Public/AssociationWithPermissionsBaseModel.cs +++ b/src/Api/Models/Public/AssociationWithPermissionsBaseModel.cs @@ -1,8 +1,7 @@ using System; using System.ComponentModel.DataAnnotations; -using Newtonsoft.Json; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public { public abstract class AssociationWithPermissionsBaseModel { diff --git a/src/Core/Models/Api/Public/CollectionBaseModel.cs b/src/Api/Models/Public/CollectionBaseModel.cs similarity index 90% rename from src/Core/Models/Api/Public/CollectionBaseModel.cs rename to src/Api/Models/Public/CollectionBaseModel.cs index 0b5a3c60cd..5c36ef9b4e 100644 --- a/src/Core/Models/Api/Public/CollectionBaseModel.cs +++ b/src/Api/Models/Public/CollectionBaseModel.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public { public abstract class CollectionBaseModel { diff --git a/src/Core/Models/Api/Public/GroupBaseModel.cs b/src/Api/Models/Public/GroupBaseModel.cs similarity index 96% rename from src/Core/Models/Api/Public/GroupBaseModel.cs rename to src/Api/Models/Public/GroupBaseModel.cs index d748db23e3..28b5ebe088 100644 --- a/src/Core/Models/Api/Public/GroupBaseModel.cs +++ b/src/Api/Models/Public/GroupBaseModel.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public { public abstract class GroupBaseModel { diff --git a/src/Core/Models/Api/Public/MemberBaseModel.cs b/src/Api/Models/Public/MemberBaseModel.cs similarity index 98% rename from src/Core/Models/Api/Public/MemberBaseModel.cs rename to src/Api/Models/Public/MemberBaseModel.cs index 503abe1b0f..326a4c561a 100644 --- a/src/Core/Models/Api/Public/MemberBaseModel.cs +++ b/src/Api/Models/Public/MemberBaseModel.cs @@ -4,7 +4,7 @@ using Bit.Core.Enums; using Bit.Core.Models.Data; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public { public abstract class MemberBaseModel { diff --git a/src/Core/Models/Api/Public/PolicyBaseModel.cs b/src/Api/Models/Public/PolicyBaseModel.cs similarity index 92% rename from src/Core/Models/Api/Public/PolicyBaseModel.cs rename to src/Api/Models/Public/PolicyBaseModel.cs index baf76b1b69..70f81b5b51 100644 --- a/src/Core/Models/Api/Public/PolicyBaseModel.cs +++ b/src/Api/Models/Public/PolicyBaseModel.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public { public abstract class PolicyBaseModel { diff --git a/src/Core/Models/Api/Public/Request/AssociationWithPermissionsRequestModel.cs b/src/Api/Models/Public/Request/AssociationWithPermissionsRequestModel.cs similarity index 90% rename from src/Core/Models/Api/Public/Request/AssociationWithPermissionsRequestModel.cs rename to src/Api/Models/Public/Request/AssociationWithPermissionsRequestModel.cs index 3cf1bfba29..9a87760b92 100644 --- a/src/Core/Models/Api/Public/Request/AssociationWithPermissionsRequestModel.cs +++ b/src/Api/Models/Public/Request/AssociationWithPermissionsRequestModel.cs @@ -1,6 +1,6 @@ using Bit.Core.Models.Data; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public.Request { public class AssociationWithPermissionsRequestModel : AssociationWithPermissionsBaseModel { diff --git a/src/Core/Models/Api/Public/Request/CollectionUpdateRequestModel.cs b/src/Api/Models/Public/Request/CollectionUpdateRequestModel.cs similarity index 93% rename from src/Core/Models/Api/Public/Request/CollectionUpdateRequestModel.cs rename to src/Api/Models/Public/Request/CollectionUpdateRequestModel.cs index f86764f3ac..5a74229298 100644 --- a/src/Core/Models/Api/Public/Request/CollectionUpdateRequestModel.cs +++ b/src/Api/Models/Public/Request/CollectionUpdateRequestModel.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public.Request { public class CollectionUpdateRequestModel : CollectionBaseModel { diff --git a/src/Core/Models/Api/Public/Request/EventFilterRequestModel.cs b/src/Api/Models/Public/Request/EventFilterRequestModel.cs similarity index 97% rename from src/Core/Models/Api/Public/Request/EventFilterRequestModel.cs rename to src/Api/Models/Public/Request/EventFilterRequestModel.cs index c7a99d1d11..40109de63b 100644 --- a/src/Core/Models/Api/Public/Request/EventFilterRequestModel.cs +++ b/src/Api/Models/Public/Request/EventFilterRequestModel.cs @@ -1,7 +1,7 @@ using System; using Bit.Core.Exceptions; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public.Request { public class EventFilterRequestModel { diff --git a/src/Core/Models/Api/Public/Request/GroupCreateUpdateRequestModel.cs b/src/Api/Models/Public/Request/GroupCreateUpdateRequestModel.cs similarity index 95% rename from src/Core/Models/Api/Public/Request/GroupCreateUpdateRequestModel.cs rename to src/Api/Models/Public/Request/GroupCreateUpdateRequestModel.cs index 87869d070c..dd3e6ebfb0 100644 --- a/src/Core/Models/Api/Public/Request/GroupCreateUpdateRequestModel.cs +++ b/src/Api/Models/Public/Request/GroupCreateUpdateRequestModel.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public.Request { public class GroupCreateUpdateRequestModel : GroupBaseModel { diff --git a/src/Core/Models/Api/Public/Request/MemberCreateRequestModel.cs b/src/Api/Models/Public/Request/MemberCreateRequestModel.cs similarity index 89% rename from src/Core/Models/Api/Public/Request/MemberCreateRequestModel.cs rename to src/Api/Models/Public/Request/MemberCreateRequestModel.cs index 58b4113bf2..965fe04143 100644 --- a/src/Core/Models/Api/Public/Request/MemberCreateRequestModel.cs +++ b/src/Api/Models/Public/Request/MemberCreateRequestModel.cs @@ -1,10 +1,9 @@ using System; -using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using Bit.Core.Models.Table; using Bit.Core.Utilities; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public.Request { public class MemberCreateRequestModel : MemberUpdateRequestModel { diff --git a/src/Core/Models/Api/Public/Request/MemberUpdateRequestModel.cs b/src/Api/Models/Public/Request/MemberUpdateRequestModel.cs similarity index 94% rename from src/Core/Models/Api/Public/Request/MemberUpdateRequestModel.cs rename to src/Api/Models/Public/Request/MemberUpdateRequestModel.cs index df69e0e2fb..c251422285 100644 --- a/src/Core/Models/Api/Public/Request/MemberUpdateRequestModel.cs +++ b/src/Api/Models/Public/Request/MemberUpdateRequestModel.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public.Request { public class MemberUpdateRequestModel : MemberBaseModel { diff --git a/src/Core/Models/Api/Public/Request/OrganizationImportRequestModel.cs b/src/Api/Models/Public/Request/OrganizationImportRequestModel.cs similarity index 96% rename from src/Core/Models/Api/Public/Request/OrganizationImportRequestModel.cs rename to src/Api/Models/Public/Request/OrganizationImportRequestModel.cs index 2c948c1a0c..70f787ffab 100644 --- a/src/Core/Models/Api/Public/Request/OrganizationImportRequestModel.cs +++ b/src/Api/Models/Public/Request/OrganizationImportRequestModel.cs @@ -1,9 +1,10 @@ -using Bit.Core.Models.Business; -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using Bit.Core.Models.Business; +using Table = Bit.Core.Models.Table; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public.Request { public class OrganizationImportRequestModel { diff --git a/src/Core/Models/Api/Public/Request/PolicyUpdateRequestModel.cs b/src/Api/Models/Public/Request/PolicyUpdateRequestModel.cs similarity index 93% rename from src/Core/Models/Api/Public/Request/PolicyUpdateRequestModel.cs rename to src/Api/Models/Public/Request/PolicyUpdateRequestModel.cs index dfbb968896..4afc7c6f0e 100644 --- a/src/Core/Models/Api/Public/Request/PolicyUpdateRequestModel.cs +++ b/src/Api/Models/Public/Request/PolicyUpdateRequestModel.cs @@ -2,7 +2,7 @@ using Bit.Core.Models.Table; using Newtonsoft.Json; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public.Request { public class PolicyUpdateRequestModel : PolicyBaseModel { diff --git a/src/Core/Models/Api/Public/Request/UpdateGroupIdsRequestModel.cs b/src/Api/Models/Public/Request/UpdateGroupIdsRequestModel.cs similarity index 87% rename from src/Core/Models/Api/Public/Request/UpdateGroupIdsRequestModel.cs rename to src/Api/Models/Public/Request/UpdateGroupIdsRequestModel.cs index a3fc7df5d3..f5d2049ba7 100644 --- a/src/Core/Models/Api/Public/Request/UpdateGroupIdsRequestModel.cs +++ b/src/Api/Models/Public/Request/UpdateGroupIdsRequestModel.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public.Request { public class UpdateGroupIdsRequestModel { diff --git a/src/Core/Models/Api/Public/Request/UpdateMemberIdsRequestModel.cs b/src/Api/Models/Public/Request/UpdateMemberIdsRequestModel.cs similarity index 87% rename from src/Core/Models/Api/Public/Request/UpdateMemberIdsRequestModel.cs rename to src/Api/Models/Public/Request/UpdateMemberIdsRequestModel.cs index c1bf602c0b..aecea9fc34 100644 --- a/src/Core/Models/Api/Public/Request/UpdateMemberIdsRequestModel.cs +++ b/src/Api/Models/Public/Request/UpdateMemberIdsRequestModel.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public.Request { public class UpdateMemberIdsRequestModel { diff --git a/src/Core/Models/Api/Public/Response/AssociationWithPermissionsResponseModel.cs b/src/Api/Models/Public/Response/AssociationWithPermissionsResponseModel.cs similarity index 91% rename from src/Core/Models/Api/Public/Response/AssociationWithPermissionsResponseModel.cs rename to src/Api/Models/Public/Response/AssociationWithPermissionsResponseModel.cs index 635439a07e..18529a1032 100644 --- a/src/Core/Models/Api/Public/Response/AssociationWithPermissionsResponseModel.cs +++ b/src/Api/Models/Public/Response/AssociationWithPermissionsResponseModel.cs @@ -1,7 +1,7 @@ using System; using Bit.Core.Models.Data; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public.Response { public class AssociationWithPermissionsResponseModel : AssociationWithPermissionsBaseModel { diff --git a/src/Core/Models/Api/Public/Response/CollectionResponseModel.cs b/src/Api/Models/Public/Response/CollectionResponseModel.cs similarity index 97% rename from src/Core/Models/Api/Public/Response/CollectionResponseModel.cs rename to src/Api/Models/Public/Response/CollectionResponseModel.cs index e66270367f..c13dffb66a 100644 --- a/src/Core/Models/Api/Public/Response/CollectionResponseModel.cs +++ b/src/Api/Models/Public/Response/CollectionResponseModel.cs @@ -5,7 +5,7 @@ using System.Linq; using Bit.Core.Models.Data; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public.Response { /// /// A collection. diff --git a/src/Core/Models/Api/Public/Response/ErrorResponseModel.cs b/src/Api/Models/Public/Response/ErrorResponseModel.cs similarity index 96% rename from src/Core/Models/Api/Public/Response/ErrorResponseModel.cs rename to src/Api/Models/Public/Response/ErrorResponseModel.cs index e9edf13911..c0e64f8252 100644 --- a/src/Core/Models/Api/Public/Response/ErrorResponseModel.cs +++ b/src/Api/Models/Public/Response/ErrorResponseModel.cs @@ -1,9 +1,9 @@ -using System.Linq; -using System.Collections.Generic; -using Microsoft.AspNetCore.Mvc.ModelBinding; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.Linq; +using Microsoft.AspNetCore.Mvc.ModelBinding; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public.Response { public class ErrorResponseModel : IResponseModel { diff --git a/src/Core/Models/Api/Public/Response/EventResponseModel.cs b/src/Api/Models/Public/Response/EventResponseModel.cs similarity index 98% rename from src/Core/Models/Api/Public/Response/EventResponseModel.cs rename to src/Api/Models/Public/Response/EventResponseModel.cs index 887e6cc075..54c5ce763c 100644 --- a/src/Core/Models/Api/Public/Response/EventResponseModel.cs +++ b/src/Api/Models/Public/Response/EventResponseModel.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations; using Bit.Core.Enums; using Bit.Core.Models.Data; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public.Response { /// /// An event log. diff --git a/src/Core/Models/Api/Public/Response/GroupResponseModel.cs b/src/Api/Models/Public/Response/GroupResponseModel.cs similarity index 97% rename from src/Core/Models/Api/Public/Response/GroupResponseModel.cs rename to src/Api/Models/Public/Response/GroupResponseModel.cs index f3808c4a73..f48ac2c6ea 100644 --- a/src/Core/Models/Api/Public/Response/GroupResponseModel.cs +++ b/src/Api/Models/Public/Response/GroupResponseModel.cs @@ -5,7 +5,7 @@ using System.Linq; using Bit.Core.Models.Data; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public.Response { /// /// A user group. diff --git a/src/Core/Models/Api/Public/Response/IResponseModel.cs b/src/Api/Models/Public/Response/IResponseModel.cs similarity index 65% rename from src/Core/Models/Api/Public/Response/IResponseModel.cs rename to src/Api/Models/Public/Response/IResponseModel.cs index 55fdcbed44..3e33330733 100644 --- a/src/Core/Models/Api/Public/Response/IResponseModel.cs +++ b/src/Api/Models/Public/Response/IResponseModel.cs @@ -1,4 +1,4 @@ -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public.Response { public interface IResponseModel { diff --git a/src/Core/Models/Api/Public/Response/ListResponseModel.cs b/src/Api/Models/Public/Response/ListResponseModel.cs similarity index 95% rename from src/Core/Models/Api/Public/Response/ListResponseModel.cs rename to src/Api/Models/Public/Response/ListResponseModel.cs index f65481b8ef..287e251409 100644 --- a/src/Core/Models/Api/Public/Response/ListResponseModel.cs +++ b/src/Api/Models/Public/Response/ListResponseModel.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public.Response { public class ListResponseModel : IResponseModel where T : IResponseModel { diff --git a/src/Core/Models/Api/Public/Response/MemberResponseModel.cs b/src/Api/Models/Public/Response/MemberResponseModel.cs similarity index 98% rename from src/Core/Models/Api/Public/Response/MemberResponseModel.cs rename to src/Api/Models/Public/Response/MemberResponseModel.cs index 3cfbca75e3..df2c1ef848 100644 --- a/src/Core/Models/Api/Public/Response/MemberResponseModel.cs +++ b/src/Api/Models/Public/Response/MemberResponseModel.cs @@ -6,7 +6,7 @@ using Bit.Core.Enums; using Bit.Core.Models.Data; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public.Response { /// /// An organization member. diff --git a/src/Core/Models/Api/Public/Response/PolicyResponseModel.cs b/src/Api/Models/Public/Response/PolicyResponseModel.cs similarity index 92% rename from src/Core/Models/Api/Public/Response/PolicyResponseModel.cs rename to src/Api/Models/Public/Response/PolicyResponseModel.cs index 0321c52b4e..6096c03b5a 100644 --- a/src/Core/Models/Api/Public/Response/PolicyResponseModel.cs +++ b/src/Api/Models/Public/Response/PolicyResponseModel.cs @@ -1,10 +1,11 @@ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using Bit.Core.Enums; using Bit.Core.Models.Table; using Newtonsoft.Json; -namespace Bit.Core.Models.Api.Public +namespace Bit.Api.Models.Public.Response { /// /// A policy. @@ -43,6 +44,6 @@ namespace Bit.Core.Models.Api.Public /// The type of policy. /// [Required] - public Enums.PolicyType? Type { get; set; } + public PolicyType? Type { get; set; } } } diff --git a/src/Core/Models/Api/Request/Accounts/DeleteRecoverRequestModel.cs b/src/Api/Models/Request/Accounts/DeleteRecoverRequestModel.cs similarity index 83% rename from src/Core/Models/Api/Request/Accounts/DeleteRecoverRequestModel.cs rename to src/Api/Models/Request/Accounts/DeleteRecoverRequestModel.cs index f6d19ba7d0..635d878a5c 100644 --- a/src/Core/Models/Api/Request/Accounts/DeleteRecoverRequestModel.cs +++ b/src/Api/Models/Request/Accounts/DeleteRecoverRequestModel.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class DeleteRecoverRequestModel { diff --git a/src/Core/Models/Api/Request/Accounts/EmailRequestModel.cs b/src/Api/Models/Request/Accounts/EmailRequestModel.cs similarity index 89% rename from src/Core/Models/Api/Request/Accounts/EmailRequestModel.cs rename to src/Api/Models/Request/Accounts/EmailRequestModel.cs index 1ae39e8dd8..7eabe3e2e7 100644 --- a/src/Core/Models/Api/Request/Accounts/EmailRequestModel.cs +++ b/src/Api/Models/Request/Accounts/EmailRequestModel.cs @@ -1,8 +1,7 @@ using System.ComponentModel.DataAnnotations; using Bit.Core.Utilities; -using Bit.Core.Models.Api; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class EmailRequestModel : SecretVerificationRequestModel { diff --git a/src/Core/Models/Api/Request/Accounts/EmailTokenRequestModel.cs b/src/Api/Models/Request/Accounts/EmailTokenRequestModel.cs similarity index 83% rename from src/Core/Models/Api/Request/Accounts/EmailTokenRequestModel.cs rename to src/Api/Models/Request/Accounts/EmailTokenRequestModel.cs index e12826da3b..298b5918de 100644 --- a/src/Core/Models/Api/Request/Accounts/EmailTokenRequestModel.cs +++ b/src/Api/Models/Request/Accounts/EmailTokenRequestModel.cs @@ -1,8 +1,7 @@ using System.ComponentModel.DataAnnotations; using Bit.Core.Utilities; -using Bit.Core.Models.Api; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class EmailTokenRequestModel : SecretVerificationRequestModel { diff --git a/src/Core/Models/Api/Request/Accounts/ImportCiphersRequestModel.cs b/src/Api/Models/Request/Accounts/ImportCiphersRequestModel.cs similarity index 87% rename from src/Core/Models/Api/Request/Accounts/ImportCiphersRequestModel.cs rename to src/Api/Models/Request/Accounts/ImportCiphersRequestModel.cs index 76e50cd949..869a0f6c40 100644 --- a/src/Core/Models/Api/Request/Accounts/ImportCiphersRequestModel.cs +++ b/src/Api/Models/Request/Accounts/ImportCiphersRequestModel.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class ImportCiphersRequestModel { diff --git a/src/Core/Models/Api/Request/Accounts/KdfRequestModel.cs b/src/Api/Models/Request/Accounts/KdfRequestModel.cs similarity index 92% rename from src/Core/Models/Api/Request/Accounts/KdfRequestModel.cs rename to src/Api/Models/Request/Accounts/KdfRequestModel.cs index aa68b2c0f9..b08cbb7c2a 100644 --- a/src/Core/Models/Api/Request/Accounts/KdfRequestModel.cs +++ b/src/Api/Models/Request/Accounts/KdfRequestModel.cs @@ -1,9 +1,8 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using Bit.Core.Enums; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class KdfRequestModel : PasswordRequestModel, IValidatableObject { diff --git a/src/Core/Models/Api/Request/Accounts/KeysRequestModel.cs b/src/Api/Models/Request/Accounts/KeysRequestModel.cs similarity index 83% rename from src/Core/Models/Api/Request/Accounts/KeysRequestModel.cs rename to src/Api/Models/Request/Accounts/KeysRequestModel.cs index 0e69d389b7..de61cce393 100644 --- a/src/Core/Models/Api/Request/Accounts/KeysRequestModel.cs +++ b/src/Api/Models/Request/Accounts/KeysRequestModel.cs @@ -1,7 +1,7 @@ -using Bit.Core.Models.Table; -using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations; +using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class KeysRequestModel { diff --git a/src/Core/Models/Api/Request/Accounts/PasswordHintRequestModel.cs b/src/Api/Models/Request/Accounts/PasswordHintRequestModel.cs similarity index 83% rename from src/Core/Models/Api/Request/Accounts/PasswordHintRequestModel.cs rename to src/Api/Models/Request/Accounts/PasswordHintRequestModel.cs index b2b8f4c4a5..148ced2b2e 100644 --- a/src/Core/Models/Api/Request/Accounts/PasswordHintRequestModel.cs +++ b/src/Api/Models/Request/Accounts/PasswordHintRequestModel.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class PasswordHintRequestModel { diff --git a/src/Core/Models/Api/Request/Accounts/PasswordRequestModel.cs b/src/Api/Models/Request/Accounts/PasswordRequestModel.cs similarity index 87% rename from src/Core/Models/Api/Request/Accounts/PasswordRequestModel.cs rename to src/Api/Models/Request/Accounts/PasswordRequestModel.cs index 3cadaa4a66..0d970237e3 100644 --- a/src/Core/Models/Api/Request/Accounts/PasswordRequestModel.cs +++ b/src/Api/Models/Request/Accounts/PasswordRequestModel.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class PasswordRequestModel : SecretVerificationRequestModel { diff --git a/src/Core/Models/Api/Request/Accounts/PreloginRequestModel.cs b/src/Api/Models/Request/Accounts/PreloginRequestModel.cs similarity index 64% rename from src/Core/Models/Api/Request/Accounts/PreloginRequestModel.cs rename to src/Api/Models/Request/Accounts/PreloginRequestModel.cs index 8dc260bf70..4b0c26bf9b 100644 --- a/src/Core/Models/Api/Request/Accounts/PreloginRequestModel.cs +++ b/src/Api/Models/Request/Accounts/PreloginRequestModel.cs @@ -1,7 +1,6 @@ -using System; -using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class PreloginRequestModel { diff --git a/src/Core/Models/Api/Request/Accounts/PremiumRequestModel.cs b/src/Api/Models/Request/Accounts/PremiumRequestModel.cs similarity index 87% rename from src/Core/Models/Api/Request/Accounts/PremiumRequestModel.cs rename to src/Api/Models/Request/Accounts/PremiumRequestModel.cs index dc2233bf7e..35aae4a696 100644 --- a/src/Core/Models/Api/Request/Accounts/PremiumRequestModel.cs +++ b/src/Api/Models/Request/Accounts/PremiumRequestModel.cs @@ -1,16 +1,15 @@ -using Microsoft.AspNetCore.Http; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -using System.Collections.Generic; -using Bit.Core.Enums; using Bit.Core.Settings; +using Microsoft.AspNetCore.Http; +using Enums = Bit.Core.Enums; - -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class PremiumRequestModel : IValidatableObject { [Required] - public PaymentMethodType? PaymentMethodType { get; set; } + public Enums.PaymentMethodType? PaymentMethodType { get; set; } public string PaymentToken { get; set; } [Range(0, 99)] public short? AdditionalStorageGb { get; set; } diff --git a/src/Core/Models/Api/Request/Accounts/RegenerateTwoFactorRequestModel.cs b/src/Api/Models/Request/Accounts/RegenerateTwoFactorRequestModel.cs similarity index 67% rename from src/Core/Models/Api/Request/Accounts/RegenerateTwoFactorRequestModel.cs rename to src/Api/Models/Request/Accounts/RegenerateTwoFactorRequestModel.cs index 92091dbf41..06a6148d44 100644 --- a/src/Core/Models/Api/Request/Accounts/RegenerateTwoFactorRequestModel.cs +++ b/src/Api/Models/Request/Accounts/RegenerateTwoFactorRequestModel.cs @@ -1,7 +1,6 @@ -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class RegenerateTwoFactorRequestModel { diff --git a/src/Core/Models/Api/Request/Accounts/RegisterRequestModel.cs b/src/Api/Models/Request/Accounts/RegisterRequestModel.cs similarity index 97% rename from src/Core/Models/Api/Request/Accounts/RegisterRequestModel.cs rename to src/Api/Models/Request/Accounts/RegisterRequestModel.cs index 7277130056..82ae79b068 100644 --- a/src/Core/Models/Api/Request/Accounts/RegisterRequestModel.cs +++ b/src/Api/Models/Request/Accounts/RegisterRequestModel.cs @@ -2,12 +2,12 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using Bit.Core.Enums; -using Bit.Core.Models.Business; +using Bit.Core.Models.Api; using Bit.Core.Models.Table; using Bit.Core.Utilities; using Newtonsoft.Json; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class RegisterRequestModel : IValidatableObject, ICaptchaProtectedModel { diff --git a/src/Core/Models/Api/Request/Accounts/SecretVerificationRequestModel.cs b/src/Api/Models/Request/Accounts/SecretVerificationRequestModel.cs similarity index 94% rename from src/Core/Models/Api/Request/Accounts/SecretVerificationRequestModel.cs rename to src/Api/Models/Request/Accounts/SecretVerificationRequestModel.cs index 75d59d1ee5..602e762c66 100644 --- a/src/Core/Models/Api/Request/Accounts/SecretVerificationRequestModel.cs +++ b/src/Api/Models/Request/Accounts/SecretVerificationRequestModel.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class SecretVerificationRequestModel : IValidatableObject { diff --git a/src/Core/Models/Api/Request/Accounts/SetKeyConnectorKeyRequestModel.cs b/src/Api/Models/Request/Accounts/SetKeyConnectorKeyRequestModel.cs similarity index 94% rename from src/Core/Models/Api/Request/Accounts/SetKeyConnectorKeyRequestModel.cs rename to src/Api/Models/Request/Accounts/SetKeyConnectorKeyRequestModel.cs index 93e8f39e81..0ee46f68a3 100644 --- a/src/Core/Models/Api/Request/Accounts/SetKeyConnectorKeyRequestModel.cs +++ b/src/Api/Models/Request/Accounts/SetKeyConnectorKeyRequestModel.cs @@ -2,7 +2,7 @@ using Bit.Core.Enums; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api.Request.Accounts +namespace Bit.Api.Models.Request.Accounts { public class SetKeyConnectorKeyRequestModel { diff --git a/src/Core/Models/Api/Request/Accounts/SetPasswordRequestModel.cs b/src/Api/Models/Request/Accounts/SetPasswordRequestModel.cs similarity index 95% rename from src/Core/Models/Api/Request/Accounts/SetPasswordRequestModel.cs rename to src/Api/Models/Request/Accounts/SetPasswordRequestModel.cs index 75cdcb2770..b71802a1c3 100644 --- a/src/Core/Models/Api/Request/Accounts/SetPasswordRequestModel.cs +++ b/src/Api/Models/Request/Accounts/SetPasswordRequestModel.cs @@ -2,7 +2,7 @@ using Bit.Core.Enums; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api.Request.Accounts +namespace Bit.Api.Models.Request.Accounts { public class SetPasswordRequestModel { diff --git a/src/Core/Models/Api/Request/Accounts/StorageRequestModel.cs b/src/Api/Models/Request/Accounts/StorageRequestModel.cs similarity index 93% rename from src/Core/Models/Api/Request/Accounts/StorageRequestModel.cs rename to src/Api/Models/Request/Accounts/StorageRequestModel.cs index dd17f78197..9a5373db1d 100644 --- a/src/Core/Models/Api/Request/Accounts/StorageRequestModel.cs +++ b/src/Api/Models/Request/Accounts/StorageRequestModel.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class StorageRequestModel : IValidatableObject { diff --git a/src/Core/Models/Api/Request/Accounts/TaxInfoUpdateRequestModel.cs b/src/Api/Models/Request/Accounts/TaxInfoUpdateRequestModel.cs similarity index 93% rename from src/Core/Models/Api/Request/Accounts/TaxInfoUpdateRequestModel.cs rename to src/Api/Models/Request/Accounts/TaxInfoUpdateRequestModel.cs index 809b1c7439..6a332efdab 100644 --- a/src/Core/Models/Api/Request/Accounts/TaxInfoUpdateRequestModel.cs +++ b/src/Api/Models/Request/Accounts/TaxInfoUpdateRequestModel.cs @@ -1,7 +1,7 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class TaxInfoUpdateRequestModel : IValidatableObject { diff --git a/src/Core/Models/Api/Request/Accounts/UpdateKeyRequestModel.cs b/src/Api/Models/Request/Accounts/UpdateKeyRequestModel.cs similarity index 93% rename from src/Core/Models/Api/Request/Accounts/UpdateKeyRequestModel.cs rename to src/Api/Models/Request/Accounts/UpdateKeyRequestModel.cs index 45468cfe60..3ce12ff0b7 100644 --- a/src/Core/Models/Api/Request/Accounts/UpdateKeyRequestModel.cs +++ b/src/Api/Models/Request/Accounts/UpdateKeyRequestModel.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class UpdateKeyRequestModel { diff --git a/src/Core/Models/Api/Request/Accounts/UpdateProfileRequestModel.cs b/src/Api/Models/Request/Accounts/UpdateProfileRequestModel.cs similarity index 92% rename from src/Core/Models/Api/Request/Accounts/UpdateProfileRequestModel.cs rename to src/Api/Models/Request/Accounts/UpdateProfileRequestModel.cs index 74466e1e0c..7e6073773d 100644 --- a/src/Core/Models/Api/Request/Accounts/UpdateProfileRequestModel.cs +++ b/src/Api/Models/Request/Accounts/UpdateProfileRequestModel.cs @@ -1,7 +1,7 @@ using System.ComponentModel.DataAnnotations; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class UpdateProfileRequestModel { diff --git a/src/Core/Models/Api/Request/Accounts/UpdateTempPasswordRequestModel.cs b/src/Api/Models/Request/Accounts/UpdateTempPasswordRequestModel.cs similarity index 73% rename from src/Core/Models/Api/Request/Accounts/UpdateTempPasswordRequestModel.cs rename to src/Api/Models/Request/Accounts/UpdateTempPasswordRequestModel.cs index 2005371e7c..db1c0dbd77 100644 --- a/src/Core/Models/Api/Request/Accounts/UpdateTempPasswordRequestModel.cs +++ b/src/Api/Models/Request/Accounts/UpdateTempPasswordRequestModel.cs @@ -1,6 +1,7 @@ using System.ComponentModel.DataAnnotations; +using Bit.Api.Models.Request.Organizations; -namespace Bit.Core.Models.Api.Request.Accounts +namespace Bit.Api.Models.Request.Accounts { public class UpdateTempPasswordRequestModel : OrganizationUserResetPasswordRequestModel { diff --git a/src/Core/Models/Api/Request/Accounts/VerifyDeleteRecoverRequestModel.cs b/src/Api/Models/Request/Accounts/VerifyDeleteRecoverRequestModel.cs similarity index 84% rename from src/Core/Models/Api/Request/Accounts/VerifyDeleteRecoverRequestModel.cs rename to src/Api/Models/Request/Accounts/VerifyDeleteRecoverRequestModel.cs index 481b00b156..463750722d 100644 --- a/src/Core/Models/Api/Request/Accounts/VerifyDeleteRecoverRequestModel.cs +++ b/src/Api/Models/Request/Accounts/VerifyDeleteRecoverRequestModel.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class VerifyDeleteRecoverRequestModel { diff --git a/src/Core/Models/Api/Request/Accounts/VerifyEmailRequestModel.cs b/src/Api/Models/Request/Accounts/VerifyEmailRequestModel.cs similarity index 84% rename from src/Core/Models/Api/Request/Accounts/VerifyEmailRequestModel.cs rename to src/Api/Models/Request/Accounts/VerifyEmailRequestModel.cs index e6c6fce80c..d859966817 100644 --- a/src/Core/Models/Api/Request/Accounts/VerifyEmailRequestModel.cs +++ b/src/Api/Models/Request/Accounts/VerifyEmailRequestModel.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class VerifyEmailRequestModel { diff --git a/src/Core/Models/Api/Request/Accounts/VerifyOTPRequestModel.cs b/src/Api/Models/Request/Accounts/VerifyOTPRequestModel.cs similarity index 79% rename from src/Core/Models/Api/Request/Accounts/VerifyOTPRequestModel.cs rename to src/Api/Models/Request/Accounts/VerifyOTPRequestModel.cs index 7719dcb1f1..6466aee7ea 100644 --- a/src/Core/Models/Api/Request/Accounts/VerifyOTPRequestModel.cs +++ b/src/Api/Models/Request/Accounts/VerifyOTPRequestModel.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Accounts { public class VerifyOTPRequestModel { diff --git a/src/Core/Models/Api/Request/AttachmentRequestModel.cs b/src/Api/Models/Request/AttachmentRequestModel.cs similarity index 87% rename from src/Core/Models/Api/Request/AttachmentRequestModel.cs rename to src/Api/Models/Request/AttachmentRequestModel.cs index 85ed56cf7f..864510d03b 100644 --- a/src/Core/Models/Api/Request/AttachmentRequestModel.cs +++ b/src/Api/Models/Request/AttachmentRequestModel.cs @@ -1,4 +1,4 @@ -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request { public class AttachmentRequestModel { diff --git a/src/Core/Models/Api/Request/BitPayInvoiceRequestModel.cs b/src/Api/Models/Request/BitPayInvoiceRequestModel.cs similarity index 98% rename from src/Core/Models/Api/Request/BitPayInvoiceRequestModel.cs rename to src/Api/Models/Request/BitPayInvoiceRequestModel.cs index e0b6e6340d..ba8bfc889a 100644 --- a/src/Core/Models/Api/Request/BitPayInvoiceRequestModel.cs +++ b/src/Api/Models/Request/BitPayInvoiceRequestModel.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using Bit.Core.Settings; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request { public class BitPayInvoiceRequestModel : IValidatableObject { diff --git a/src/Core/Models/Api/Request/CipherPartialRequestModel.cs b/src/Api/Models/Request/CipherPartialRequestModel.cs similarity index 87% rename from src/Core/Models/Api/Request/CipherPartialRequestModel.cs rename to src/Api/Models/Request/CipherPartialRequestModel.cs index ecc866b648..996aec5fc4 100644 --- a/src/Core/Models/Api/Request/CipherPartialRequestModel.cs +++ b/src/Api/Models/Request/CipherPartialRequestModel.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request { public class CipherPartialRequestModel { diff --git a/src/Core/Models/Api/Request/CipherRequestModel.cs b/src/Api/Models/Request/CipherRequestModel.cs similarity index 75% rename from src/Core/Models/Api/Request/CipherRequestModel.cs rename to src/Api/Models/Request/CipherRequestModel.cs index 8c82b58f9f..7485b4ec05 100644 --- a/src/Core/Models/Api/Request/CipherRequestModel.cs +++ b/src/Api/Models/Request/CipherRequestModel.cs @@ -1,16 +1,16 @@ using System; -using System.ComponentModel.DataAnnotations; -using Bit.Core.Utilities; -using Bit.Core.Models.Table; -using Bit.Core.Enums; -using Newtonsoft.Json; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; -using Core.Models.Data; +using Bit.Core.Enums; using Bit.Core.Models.Data; +using Bit.Core.Models.Table; +using Bit.Core.Utilities; +using Core.Models.Data; +using Newtonsoft.Json; using Newtonsoft.Json.Linq; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request { public class CipherRequestModel { @@ -69,21 +69,21 @@ namespace Bit.Core.Models.Api switch (existingCipher.Type) { case CipherType.Login: - var loginObj = JObject.FromObject(new CipherLoginData(this), + var loginObj = JObject.FromObject(ToCipherLoginData(), new JsonSerializer { NullValueHandling = NullValueHandling.Ignore }); loginObj[nameof(CipherLoginData.Uri)]?.Parent?.Remove(); existingCipher.Data = loginObj.ToString(Formatting.None); break; case CipherType.Card: - existingCipher.Data = JsonConvert.SerializeObject(new CipherCardData(this), + existingCipher.Data = JsonConvert.SerializeObject(ToCipherCardData(), new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); break; case CipherType.Identity: - existingCipher.Data = JsonConvert.SerializeObject(new CipherIdentityData(this), + existingCipher.Data = JsonConvert.SerializeObject(ToCipherIdentityData(), new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); break; case CipherType.SecureNote: - existingCipher.Data = JsonConvert.SerializeObject(new CipherSecureNoteData(this), + existingCipher.Data = JsonConvert.SerializeObject(ToCipherSecureNoteData(), new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); break; default: @@ -151,6 +151,87 @@ namespace Bit.Core.Models.Api Edit = true }); } + + private CipherLoginData ToCipherLoginData() + { + return new CipherLoginData + { + Name = Name, + Notes = Notes, + Fields = Fields?.Select(f => f.ToCipherFieldData()), + PasswordHistory = PasswordHistory?.Select(ph => ph.ToCipherPasswordHistoryData()), + + Uris = + Login.Uris?.Where(u => u != null) + .Select(u => u.ToCipherLoginUriData()), + Username = Login.Username, + Password = Login.Password, + PasswordRevisionDate = Login.PasswordRevisionDate, + Totp = Login.Totp, + AutofillOnPageLoad = Login.AutofillOnPageLoad, + }; + } + + private CipherIdentityData ToCipherIdentityData() + { + return new CipherIdentityData + { + Name = Name, + Notes = Notes, + Fields = Fields?.Select(f => f.ToCipherFieldData()), + PasswordHistory = PasswordHistory?.Select(ph => ph.ToCipherPasswordHistoryData()), + + Title = Identity.Title, + FirstName = Identity.FirstName, + MiddleName = Identity.MiddleName, + LastName = Identity.LastName, + Address1 = Identity.Address1, + Address2 = Identity.Address2, + Address3 = Identity.Address3, + City = Identity.City, + State = Identity.State, + PostalCode = Identity.PostalCode, + Country = Identity.Country, + Company = Identity.Company, + Email = Identity.Email, + Phone = Identity.Phone, + SSN = Identity.SSN, + Username = Identity.Username, + PassportNumber = Identity.PassportNumber, + LicenseNumber = Identity.LicenseNumber, + }; + } + + private CipherCardData ToCipherCardData() + { + return new CipherCardData + { + Name = Name, + Notes = Notes, + Fields = Fields?.Select(f => f.ToCipherFieldData()), + PasswordHistory = PasswordHistory?.Select(ph => ph.ToCipherPasswordHistoryData()), + + CardholderName = Card.CardholderName, + Brand = Card.Brand, + Number = Card.Number, + ExpMonth = Card.ExpMonth, + ExpYear = Card.ExpYear, + Code = Card.Code, + }; + } + + private CipherSecureNoteData ToCipherSecureNoteData() + { + return new CipherSecureNoteData + { + Name = Name, + Notes = Notes, + Fields = Fields?.Select(f => f.ToCipherFieldData()), + PasswordHistory = PasswordHistory?.Select(ph => ph.ToCipherPasswordHistoryData()), + + Type = SecureNote.Type, + }; + } } public class CipherWithIdRequestModel : CipherRequestModel diff --git a/src/Core/Models/Api/Request/CollectionRequestModel.cs b/src/Api/Models/Request/CollectionRequestModel.cs similarity index 94% rename from src/Core/Models/Api/Request/CollectionRequestModel.cs rename to src/Api/Models/Request/CollectionRequestModel.cs index 551aadf940..bcd7baace5 100644 --- a/src/Core/Models/Api/Request/CollectionRequestModel.cs +++ b/src/Api/Models/Request/CollectionRequestModel.cs @@ -1,11 +1,10 @@ using System; -using System.ComponentModel.DataAnnotations; -using Bit.Core.Utilities; -using Bit.Core.Models.Table; -using Newtonsoft.Json; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using Bit.Core.Models.Table; +using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request { public class CollectionRequestModel { diff --git a/src/Core/Models/Api/Request/DeviceRequestModels.cs b/src/Api/Models/Request/DeviceRequestModels.cs similarity index 96% rename from src/Core/Models/Api/Request/DeviceRequestModels.cs rename to src/Api/Models/Request/DeviceRequestModels.cs index 824f1658e1..2528476572 100644 --- a/src/Core/Models/Api/Request/DeviceRequestModels.cs +++ b/src/Api/Models/Request/DeviceRequestModels.cs @@ -1,10 +1,9 @@ using System; using System.ComponentModel.DataAnnotations; -using Bit.Core.Models.Table; using Bit.Core.Enums; -using Newtonsoft.Json; +using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request { public class DeviceRequestModel { diff --git a/src/Core/Models/Api/Request/EmergencyAccessRequstModels.cs b/src/Api/Models/Request/EmergencyAccessRequstModels.cs similarity index 89% rename from src/Core/Models/Api/Request/EmergencyAccessRequstModels.cs rename to src/Api/Models/Request/EmergencyAccessRequstModels.cs index 75e87bd33c..c76f41d033 100644 --- a/src/Core/Models/Api/Request/EmergencyAccessRequstModels.cs +++ b/src/Api/Models/Request/EmergencyAccessRequstModels.cs @@ -1,8 +1,9 @@ using System.ComponentModel.DataAnnotations; -using Bit.Core.Utilities; +using Bit.Core.Enums; using Bit.Core.Models.Table; +using Bit.Core.Utilities; -namespace Bit.Core.Models.Api.Request +namespace Bit.Api.Models.Request { public class EmergencyAccessInviteRequestModel { @@ -11,7 +12,7 @@ namespace Bit.Core.Models.Api.Request [StringLength(256)] public string Email { get; set; } [Required] - public Enums.EmergencyAccessType? Type { get; set; } + public EmergencyAccessType? Type { get; set; } [Required] public int WaitTimeDays { get; set; } } @@ -19,7 +20,7 @@ namespace Bit.Core.Models.Api.Request public class EmergencyAccessUpdateRequestModel { [Required] - public Enums.EmergencyAccessType Type { get; set; } + public EmergencyAccessType Type { get; set; } [Required] public int WaitTimeDays { get; set; } public string KeyEncrypted { get; set; } diff --git a/src/Core/Models/Api/Request/FolderRequestModel.cs b/src/Api/Models/Request/FolderRequestModel.cs similarity index 93% rename from src/Core/Models/Api/Request/FolderRequestModel.cs rename to src/Api/Models/Request/FolderRequestModel.cs index 7966fa38a5..ba1eb8f455 100644 --- a/src/Core/Models/Api/Request/FolderRequestModel.cs +++ b/src/Api/Models/Request/FolderRequestModel.cs @@ -1,10 +1,9 @@ using System; using System.ComponentModel.DataAnnotations; -using Bit.Core.Utilities; using Bit.Core.Models.Table; -using Newtonsoft.Json; +using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request { public class FolderRequestModel { diff --git a/src/Core/Models/Api/Request/GroupRequestModel.cs b/src/Api/Models/Request/GroupRequestModel.cs similarity index 94% rename from src/Core/Models/Api/Request/GroupRequestModel.cs rename to src/Api/Models/Request/GroupRequestModel.cs index 3d0efff23c..8ddd4f6178 100644 --- a/src/Core/Models/Api/Request/GroupRequestModel.cs +++ b/src/Api/Models/Request/GroupRequestModel.cs @@ -1,10 +1,9 @@ using System; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using Bit.Core.Models.Table; -using Newtonsoft.Json; -using System.Collections.Generic; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request { public class GroupRequestModel { diff --git a/src/Core/Models/Api/Request/IapCheckRequestModel.cs b/src/Api/Models/Request/IapCheckRequestModel.cs similarity index 80% rename from src/Core/Models/Api/Request/IapCheckRequestModel.cs rename to src/Api/Models/Request/IapCheckRequestModel.cs index c1bc80dcdb..649fffcabf 100644 --- a/src/Core/Models/Api/Request/IapCheckRequestModel.cs +++ b/src/Api/Models/Request/IapCheckRequestModel.cs @@ -1,13 +1,13 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -using Bit.Core.Enums; +using Enums = Bit.Core.Enums; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request { public class IapCheckRequestModel : IValidatableObject { [Required] - public PaymentMethodType? PaymentMethodType { get; set; } + public Enums.PaymentMethodType? PaymentMethodType { get; set; } public IEnumerable Validate(ValidationContext validationContext) { diff --git a/src/Core/Models/Api/Request/InstallationRequestModel.cs b/src/Api/Models/Request/InstallationRequestModel.cs similarity index 65% rename from src/Core/Models/Api/Request/InstallationRequestModel.cs rename to src/Api/Models/Request/InstallationRequestModel.cs index 6fdfe7c759..976224f075 100644 --- a/src/Core/Models/Api/Request/InstallationRequestModel.cs +++ b/src/Api/Models/Request/InstallationRequestModel.cs @@ -1,7 +1,8 @@ -using Bit.Core.Models.Table; -using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations; +using Bit.Core.Models.Table; +using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request { public class InstallationRequestModel { @@ -14,7 +15,7 @@ namespace Bit.Core.Models.Api { return new Installation { - Key = Utilities.CoreHelpers.SecureRandomString(20), + Key = CoreHelpers.SecureRandomString(20), Email = Email, Enabled = true }; diff --git a/src/Core/Models/Api/Request/LicenseRequestModel.cs b/src/Api/Models/Request/LicenseRequestModel.cs similarity index 51% rename from src/Core/Models/Api/Request/LicenseRequestModel.cs rename to src/Api/Models/Request/LicenseRequestModel.cs index bbd1393a12..795a0a7bb9 100644 --- a/src/Core/Models/Api/Request/LicenseRequestModel.cs +++ b/src/Api/Models/Request/LicenseRequestModel.cs @@ -1,7 +1,7 @@ -using Microsoft.AspNetCore.Http; -using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations; +using Microsoft.AspNetCore.Http; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request { public class LicenseRequestModel { diff --git a/src/Core/Models/Api/Request/Organizations/ImportOrganizationCiphersRequestModel.cs b/src/Api/Models/Request/Organizations/ImportOrganizationCiphersRequestModel.cs similarity index 86% rename from src/Core/Models/Api/Request/Organizations/ImportOrganizationCiphersRequestModel.cs rename to src/Api/Models/Request/Organizations/ImportOrganizationCiphersRequestModel.cs index ebbcc8044a..090b1a905e 100644 --- a/src/Core/Models/Api/Request/Organizations/ImportOrganizationCiphersRequestModel.cs +++ b/src/Api/Models/Request/Organizations/ImportOrganizationCiphersRequestModel.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Organizations { public class ImportOrganizationCiphersRequestModel { diff --git a/src/Core/Models/Api/Request/Organizations/ImportOrganizationUsersRequestModel.cs b/src/Api/Models/Request/Organizations/ImportOrganizationUsersRequestModel.cs similarity index 94% rename from src/Core/Models/Api/Request/Organizations/ImportOrganizationUsersRequestModel.cs rename to src/Api/Models/Request/Organizations/ImportOrganizationUsersRequestModel.cs index b10c479bbf..5515ea2d33 100644 --- a/src/Core/Models/Api/Request/Organizations/ImportOrganizationUsersRequestModel.cs +++ b/src/Api/Models/Request/Organizations/ImportOrganizationUsersRequestModel.cs @@ -1,10 +1,10 @@ -using Bit.Core.Models.Business; -using Bit.Core.Models.Table; -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using Bit.Core.Models.Business; +using Table = Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Organizations { public class ImportOrganizationUsersRequestModel { diff --git a/src/Core/Models/Api/Request/Organizations/OrganizationCreateLicenseRequestModel.cs b/src/Api/Models/Request/Organizations/OrganizationCreateLicenseRequestModel.cs similarity index 89% rename from src/Core/Models/Api/Request/Organizations/OrganizationCreateLicenseRequestModel.cs rename to src/Api/Models/Request/Organizations/OrganizationCreateLicenseRequestModel.cs index 0ccd89e670..722d338b9e 100644 --- a/src/Core/Models/Api/Request/Organizations/OrganizationCreateLicenseRequestModel.cs +++ b/src/Api/Models/Request/Organizations/OrganizationCreateLicenseRequestModel.cs @@ -1,7 +1,7 @@ using System.ComponentModel.DataAnnotations; using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Organizations { public class OrganizationCreateLicenseRequestModel : LicenseRequestModel { diff --git a/src/Core/Models/Api/Request/Organizations/OrganizationCreateRequestModel.cs b/src/Api/Models/Request/Organizations/OrganizationCreateRequestModel.cs similarity index 97% rename from src/Core/Models/Api/Request/Organizations/OrganizationCreateRequestModel.cs rename to src/Api/Models/Request/Organizations/OrganizationCreateRequestModel.cs index 13517ef7ae..c1018d277e 100644 --- a/src/Core/Models/Api/Request/Organizations/OrganizationCreateRequestModel.cs +++ b/src/Api/Models/Request/Organizations/OrganizationCreateRequestModel.cs @@ -1,11 +1,11 @@ -using Bit.Core.Models.Table; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using Bit.Core.Enums; using Bit.Core.Models.Business; -using System.ComponentModel.DataAnnotations; -using System.Collections.Generic; +using Bit.Core.Models.Table; using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Organizations { public class OrganizationCreateRequestModel : IValidatableObject { diff --git a/src/Core/Models/Api/Request/Organizations/OrganizationKeysRequestModel.cs b/src/Api/Models/Request/Organizations/OrganizationKeysRequestModel.cs similarity index 92% rename from src/Core/Models/Api/Request/Organizations/OrganizationKeysRequestModel.cs rename to src/Api/Models/Request/Organizations/OrganizationKeysRequestModel.cs index 760e7c5d7b..cdb7ba9057 100644 --- a/src/Core/Models/Api/Request/Organizations/OrganizationKeysRequestModel.cs +++ b/src/Api/Models/Request/Organizations/OrganizationKeysRequestModel.cs @@ -1,8 +1,8 @@ -using Bit.Core.Models.Table; -using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations; using Bit.Core.Models.Business; +using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Organizations { public class OrganizationKeysRequestModel { diff --git a/src/Core/Models/Api/Request/Organizations/OrganizationSeatRequestModel.cs b/src/Api/Models/Request/Organizations/OrganizationSeatRequestModel.cs similarity index 85% rename from src/Core/Models/Api/Request/Organizations/OrganizationSeatRequestModel.cs rename to src/Api/Models/Request/Organizations/OrganizationSeatRequestModel.cs index a5ae303ae3..cee71526b1 100644 --- a/src/Core/Models/Api/Request/Organizations/OrganizationSeatRequestModel.cs +++ b/src/Api/Models/Request/Organizations/OrganizationSeatRequestModel.cs @@ -1,8 +1,7 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Organizations { public class OrganizationSeatRequestModel : IValidatableObject { diff --git a/src/Core/Models/Api/Request/Organizations/OrganizationSponsorshipRedeemRequestModel.cs b/src/Api/Models/Request/Organizations/OrganizationSponsorshipRedeemRequestModel.cs similarity index 87% rename from src/Core/Models/Api/Request/Organizations/OrganizationSponsorshipRedeemRequestModel.cs rename to src/Api/Models/Request/Organizations/OrganizationSponsorshipRedeemRequestModel.cs index 08012746e5..df5d990c38 100644 --- a/src/Core/Models/Api/Request/Organizations/OrganizationSponsorshipRedeemRequestModel.cs +++ b/src/Api/Models/Request/Organizations/OrganizationSponsorshipRedeemRequestModel.cs @@ -2,7 +2,7 @@ using System; using System.ComponentModel.DataAnnotations; using Bit.Core.Enums; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Organizations { public class OrganizationSponsorshipRedeemRequestModel { diff --git a/src/Core/Models/Api/Request/Organizations/OrganizationSponsorshipRequestModel.cs b/src/Api/Models/Request/Organizations/OrganizationSponsorshipRequestModel.cs similarity index 89% rename from src/Core/Models/Api/Request/Organizations/OrganizationSponsorshipRequestModel.cs rename to src/Api/Models/Request/Organizations/OrganizationSponsorshipRequestModel.cs index deb8d07f3f..e310eb5060 100644 --- a/src/Core/Models/Api/Request/Organizations/OrganizationSponsorshipRequestModel.cs +++ b/src/Api/Models/Request/Organizations/OrganizationSponsorshipRequestModel.cs @@ -1,9 +1,8 @@ -using System; using System.ComponentModel.DataAnnotations; using Bit.Core.Enums; using Bit.Core.Utilities; -namespace Bit.Core.Models.Api.Request +namespace Bit.Api.Models.Request.Organizations { public class OrganizationSponsorshipRequestModel { diff --git a/src/Core/Models/Api/Request/Organizations/OrganizationSsoRequestModel.cs b/src/Api/Models/Request/Organizations/OrganizationSsoRequestModel.cs similarity index 99% rename from src/Core/Models/Api/Request/Organizations/OrganizationSsoRequestModel.cs rename to src/Api/Models/Request/Organizations/OrganizationSsoRequestModel.cs index b835e5ba03..2d765a78cf 100644 --- a/src/Core/Models/Api/Request/Organizations/OrganizationSsoRequestModel.cs +++ b/src/Api/Models/Request/Organizations/OrganizationSsoRequestModel.cs @@ -1,18 +1,18 @@ using System; -using System.ComponentModel.DataAnnotations; using System.Collections.Generic; -using Bit.Core.Services; -using Bit.Core.Models.Data; -using Bit.Core.Enums; -using Bit.Core.Sso; -using U2F.Core.Utils; +using System.ComponentModel.DataAnnotations; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; using System.Text.RegularExpressions; +using Bit.Core.Enums; +using Bit.Core.Models.Data; using Bit.Core.Models.Table; +using Bit.Core.Services; +using Bit.Core.Sso; using Microsoft.AspNetCore.Authentication.OpenIdConnect; +using U2F.Core.Utils; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Organizations { public class OrganizationSsoRequestModel { diff --git a/src/Core/Models/Api/Request/Organizations/OrganizationSubscriptionUpdateRequestModel.cs b/src/Api/Models/Request/Organizations/OrganizationSubscriptionUpdateRequestModel.cs similarity index 83% rename from src/Core/Models/Api/Request/Organizations/OrganizationSubscriptionUpdateRequestModel.cs rename to src/Api/Models/Request/Organizations/OrganizationSubscriptionUpdateRequestModel.cs index 3a22a67445..4b3d0c515c 100644 --- a/src/Core/Models/Api/Request/Organizations/OrganizationSubscriptionUpdateRequestModel.cs +++ b/src/Api/Models/Request/Organizations/OrganizationSubscriptionUpdateRequestModel.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Organizations { public class OrganizationSubscriptionUpdateRequestModel { diff --git a/src/Core/Models/Api/Request/Organizations/OrganizationTaxInfoUpdateRequestModel.cs b/src/Api/Models/Request/Organizations/OrganizationTaxInfoUpdateRequestModel.cs similarity index 77% rename from src/Core/Models/Api/Request/Organizations/OrganizationTaxInfoUpdateRequestModel.cs rename to src/Api/Models/Request/Organizations/OrganizationTaxInfoUpdateRequestModel.cs index a0a89f2b3a..a67cbbb7e8 100644 --- a/src/Core/Models/Api/Request/Organizations/OrganizationTaxInfoUpdateRequestModel.cs +++ b/src/Api/Models/Request/Organizations/OrganizationTaxInfoUpdateRequestModel.cs @@ -1,4 +1,6 @@ -namespace Bit.Core.Models.Api +using Bit.Api.Models.Request.Accounts; + +namespace Bit.Api.Models.Request.Organizations { public class OrganizationTaxInfoUpdateRequestModel : TaxInfoUpdateRequestModel { diff --git a/src/Core/Models/Api/Request/Organizations/OrganizationUpdateRequestModel.cs b/src/Api/Models/Request/Organizations/OrganizationUpdateRequestModel.cs similarity index 90% rename from src/Core/Models/Api/Request/Organizations/OrganizationUpdateRequestModel.cs rename to src/Api/Models/Request/Organizations/OrganizationUpdateRequestModel.cs index eec08c9aa8..b39bf60d36 100644 --- a/src/Core/Models/Api/Request/Organizations/OrganizationUpdateRequestModel.cs +++ b/src/Api/Models/Request/Organizations/OrganizationUpdateRequestModel.cs @@ -1,9 +1,9 @@ -using Bit.Core.Models.Data; +using System.ComponentModel.DataAnnotations; +using Bit.Core.Models.Data; using Bit.Core.Models.Table; using Bit.Core.Settings; -using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Organizations { public class OrganizationUpdateRequestModel { diff --git a/src/Core/Models/Api/Request/Organizations/OrganizationUpgradeRequestModel.cs b/src/Api/Models/Request/Organizations/OrganizationUpgradeRequestModel.cs similarity index 91% rename from src/Core/Models/Api/Request/Organizations/OrganizationUpgradeRequestModel.cs rename to src/Api/Models/Request/Organizations/OrganizationUpgradeRequestModel.cs index 54a951d81d..7ceedef08d 100644 --- a/src/Core/Models/Api/Request/Organizations/OrganizationUpgradeRequestModel.cs +++ b/src/Api/Models/Request/Organizations/OrganizationUpgradeRequestModel.cs @@ -1,8 +1,8 @@ -using Bit.Core.Enums; +using System.ComponentModel.DataAnnotations; +using Bit.Core.Enums; using Bit.Core.Models.Business; -using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Organizations { public class OrganizationUpgradeRequestModel { diff --git a/src/Core/Models/Api/Request/Organizations/OrganizationUserRequestModels.cs b/src/Api/Models/Request/Organizations/OrganizationUserRequestModels.cs similarity index 81% rename from src/Core/Models/Api/Request/Organizations/OrganizationUserRequestModels.cs rename to src/Api/Models/Request/Organizations/OrganizationUserRequestModels.cs index 1bb368d9b6..9e7c9d9af9 100644 --- a/src/Core/Models/Api/Request/Organizations/OrganizationUserRequestModels.cs +++ b/src/Api/Models/Request/Organizations/OrganizationUserRequestModels.cs @@ -1,13 +1,14 @@ using System; -using Bit.Core.Models.Data; -using Bit.Core.Models.Table; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text.Json; +using Bit.Core.Enums; +using Bit.Core.Models.Data; +using Bit.Core.Models.Table; using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Organizations { public class OrganizationUserInviteRequestModel { @@ -15,10 +16,22 @@ namespace Bit.Core.Models.Api [StrictEmailAddressList] public IEnumerable Emails { get; set; } [Required] - public Enums.OrganizationUserType? Type { get; set; } + public OrganizationUserType? Type { get; set; } public bool AccessAll { get; set; } public Permissions Permissions { get; set; } public IEnumerable Collections { get; set; } + + public OrganizationUserInviteData ToData() + { + return new OrganizationUserInviteData + { + Emails = Emails, + Type = Type, + AccessAll = AccessAll, + Collections = Collections.Select(c => c.ToSelectionReadOnly()), + Permissions = Permissions, + }; + } } public class OrganizationUserAcceptRequestModel @@ -55,7 +68,7 @@ namespace Bit.Core.Models.Api public class OrganizationUserUpdateRequestModel { [Required] - public Enums.OrganizationUserType? Type { get; set; } + public OrganizationUserType? Type { get; set; } public bool AccessAll { get; set; } public Permissions Permissions { get; set; } public IEnumerable Collections { get; set; } diff --git a/src/Core/Models/Api/Request/Organizations/OrganizationUserResetPasswordRequestModel.cs b/src/Api/Models/Request/Organizations/OrganizationUserResetPasswordRequestModel.cs similarity index 85% rename from src/Core/Models/Api/Request/Organizations/OrganizationUserResetPasswordRequestModel.cs rename to src/Api/Models/Request/Organizations/OrganizationUserResetPasswordRequestModel.cs index 223bd39848..4434a64c90 100644 --- a/src/Core/Models/Api/Request/Organizations/OrganizationUserResetPasswordRequestModel.cs +++ b/src/Api/Models/Request/Organizations/OrganizationUserResetPasswordRequestModel.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Organizations { public class OrganizationUserResetPasswordRequestModel { diff --git a/src/Core/Models/Api/Request/Organizations/OrganizationVerifyBankRequestModel.cs b/src/Api/Models/Request/Organizations/OrganizationVerifyBankRequestModel.cs similarity index 85% rename from src/Core/Models/Api/Request/Organizations/OrganizationVerifyBankRequestModel.cs rename to src/Api/Models/Request/Organizations/OrganizationVerifyBankRequestModel.cs index cb1c274e7e..9023cd6651 100644 --- a/src/Core/Models/Api/Request/Organizations/OrganizationVerifyBankRequestModel.cs +++ b/src/Api/Models/Request/Organizations/OrganizationVerifyBankRequestModel.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Organizations { public class OrganizationVerifyBankRequestModel { diff --git a/src/Core/Models/Api/Request/PaymentRequestModel.cs b/src/Api/Models/Request/PaymentRequestModel.cs similarity index 80% rename from src/Core/Models/Api/Request/PaymentRequestModel.cs rename to src/Api/Models/Request/PaymentRequestModel.cs index 84b5dc9759..b10b7df0c7 100644 --- a/src/Core/Models/Api/Request/PaymentRequestModel.cs +++ b/src/Api/Models/Request/PaymentRequestModel.cs @@ -1,7 +1,8 @@ using System.ComponentModel.DataAnnotations; +using Bit.Api.Models.Request.Organizations; using Bit.Core.Enums; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request { public class PaymentRequestModel : OrganizationTaxInfoUpdateRequestModel { diff --git a/src/Core/Models/Api/Request/PolicyRequestModel.cs b/src/Api/Models/Request/PolicyRequestModel.cs similarity index 88% rename from src/Core/Models/Api/Request/PolicyRequestModel.cs rename to src/Api/Models/Request/PolicyRequestModel.cs index 3bbdc9539a..1f17d6f363 100644 --- a/src/Core/Models/Api/Request/PolicyRequestModel.cs +++ b/src/Api/Models/Request/PolicyRequestModel.cs @@ -1,15 +1,16 @@ using System; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using Bit.Core.Enums; using Bit.Core.Models.Table; using Newtonsoft.Json; -using System.Collections.Generic; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request { public class PolicyRequestModel { [Required] - public Enums.PolicyType? Type { get; set; } + public PolicyType? Type { get; set; } [Required] public bool? Enabled { get; set; } public Dictionary Data { get; set; } diff --git a/src/Core/Models/Api/Request/Providers/ProviderOrganizationAddRequestModel.cs b/src/Api/Models/Request/Providers/ProviderOrganizationAddRequestModel.cs similarity index 85% rename from src/Core/Models/Api/Request/Providers/ProviderOrganizationAddRequestModel.cs rename to src/Api/Models/Request/Providers/ProviderOrganizationAddRequestModel.cs index 7499c0b764..a4043b7c61 100644 --- a/src/Core/Models/Api/Request/Providers/ProviderOrganizationAddRequestModel.cs +++ b/src/Api/Models/Request/Providers/ProviderOrganizationAddRequestModel.cs @@ -1,7 +1,7 @@ using System; using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Providers { public class ProviderOrganizationAddRequestModel { diff --git a/src/Core/Models/Api/Request/Providers/ProviderOrganizationCreateRequestModel.cs b/src/Api/Models/Request/Providers/ProviderOrganizationCreateRequestModel.cs similarity index 81% rename from src/Core/Models/Api/Request/Providers/ProviderOrganizationCreateRequestModel.cs rename to src/Api/Models/Request/Providers/ProviderOrganizationCreateRequestModel.cs index c6d0109ec8..26b1870801 100644 --- a/src/Core/Models/Api/Request/Providers/ProviderOrganizationCreateRequestModel.cs +++ b/src/Api/Models/Request/Providers/ProviderOrganizationCreateRequestModel.cs @@ -1,7 +1,8 @@ using System.ComponentModel.DataAnnotations; +using Bit.Api.Models.Request.Organizations; using Bit.Core.Utilities; -namespace Bit.Core.Models.Api.Request +namespace Bit.Api.Models.Request.Providers { public class ProviderOrganizationCreateRequestModel { diff --git a/src/Core/Models/Api/Request/Providers/ProviderSetupRequestModel.cs b/src/Api/Models/Request/Providers/ProviderSetupRequestModel.cs similarity index 94% rename from src/Core/Models/Api/Request/Providers/ProviderSetupRequestModel.cs rename to src/Api/Models/Request/Providers/ProviderSetupRequestModel.cs index dfb70af4ff..e02c90e6ae 100644 --- a/src/Core/Models/Api/Request/Providers/ProviderSetupRequestModel.cs +++ b/src/Api/Models/Request/Providers/ProviderSetupRequestModel.cs @@ -1,7 +1,7 @@ using System.ComponentModel.DataAnnotations; using Bit.Core.Models.Table.Provider; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Providers { public class ProviderSetupRequestModel { diff --git a/src/Core/Models/Api/Request/Providers/ProviderUpdateRequestModel.cs b/src/Api/Models/Request/Providers/ProviderUpdateRequestModel.cs similarity index 88% rename from src/Core/Models/Api/Request/Providers/ProviderUpdateRequestModel.cs rename to src/Api/Models/Request/Providers/ProviderUpdateRequestModel.cs index 4b4ee5a60c..b2a57a34ff 100644 --- a/src/Core/Models/Api/Request/Providers/ProviderUpdateRequestModel.cs +++ b/src/Api/Models/Request/Providers/ProviderUpdateRequestModel.cs @@ -1,8 +1,8 @@ -using Bit.Core.Settings; -using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations; using Bit.Core.Models.Table.Provider; +using Bit.Core.Settings; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Providers { public class ProviderUpdateRequestModel { diff --git a/src/Core/Models/Api/Request/Providers/ProviderUserRequestModels.cs b/src/Api/Models/Request/Providers/ProviderUserRequestModels.cs similarity index 97% rename from src/Core/Models/Api/Request/Providers/ProviderUserRequestModels.cs rename to src/Api/Models/Request/Providers/ProviderUserRequestModels.cs index 7c87929628..52755330fb 100644 --- a/src/Core/Models/Api/Request/Providers/ProviderUserRequestModels.cs +++ b/src/Api/Models/Request/Providers/ProviderUserRequestModels.cs @@ -6,7 +6,7 @@ using Bit.Core.Enums.Provider; using Bit.Core.Models.Table.Provider; using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request.Providers { public class ProviderUserInviteRequestModel { diff --git a/src/Core/Models/Api/Request/SelectionReadOnlyRequestModel.cs b/src/Api/Models/Request/SelectionReadOnlyRequestModel.cs similarity index 87% rename from src/Core/Models/Api/Request/SelectionReadOnlyRequestModel.cs rename to src/Api/Models/Request/SelectionReadOnlyRequestModel.cs index 36fc5edc0b..1b2c71d8f7 100644 --- a/src/Core/Models/Api/Request/SelectionReadOnlyRequestModel.cs +++ b/src/Api/Models/Request/SelectionReadOnlyRequestModel.cs @@ -1,10 +1,8 @@ using System; using System.ComponentModel.DataAnnotations; -using Newtonsoft.Json; -using Bit.Core.Models.Table; using Bit.Core.Models.Data; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request { public class SelectionReadOnlyRequestModel { diff --git a/src/Core/Models/Api/Request/SendAccessRequestModel.cs b/src/Api/Models/Request/SendAccessRequestModel.cs similarity index 84% rename from src/Core/Models/Api/Request/SendAccessRequestModel.cs rename to src/Api/Models/Request/SendAccessRequestModel.cs index f987c0802f..3ee43985f1 100644 --- a/src/Core/Models/Api/Request/SendAccessRequestModel.cs +++ b/src/Api/Models/Request/SendAccessRequestModel.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request { public class SendAccessRequestModel { diff --git a/src/Core/Models/Api/Request/SendRequestModel.cs b/src/Api/Models/Request/SendRequestModel.cs similarity index 95% rename from src/Core/Models/Api/Request/SendRequestModel.cs rename to src/Api/Models/Request/SendRequestModel.cs index a1b2ecb69a..54ced1bac8 100644 --- a/src/Core/Models/Api/Request/SendRequestModel.cs +++ b/src/Api/Models/Request/SendRequestModel.cs @@ -1,14 +1,14 @@ using System; -using Bit.Core.Utilities; -using Bit.Core.Models.Table; -using Bit.Core.Enums; -using Newtonsoft.Json; -using Bit.Core.Models.Data; using System.ComponentModel.DataAnnotations; -using Bit.Core.Services; +using Bit.Core.Enums; using Bit.Core.Exceptions; +using Bit.Core.Models.Data; +using Bit.Core.Models.Table; +using Bit.Core.Services; +using Bit.Core.Utilities; +using Newtonsoft.Json; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request { public class SendRequestModel { @@ -55,7 +55,7 @@ namespace Bit.Core.Models.Api Type = Type, UserId = (Guid?)userId }, sendService); - var data = new SendFileData(this, fileName); + var data = new SendFileData(Name, Notes, fileName); return (send, data); } @@ -72,7 +72,7 @@ namespace Bit.Core.Models.Api new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); break; case SendType.Text: - existingSend.Data = JsonConvert.SerializeObject(new SendTextData(this), + existingSend.Data = JsonConvert.SerializeObject(ToSendData(), new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); break; default: @@ -129,6 +129,11 @@ namespace Bit.Core.Models.Api existingSend.HideEmail = HideEmail.GetValueOrDefault(); return existingSend; } + + private SendData ToSendData() + { + return new SendTextData(Name, Notes, Text.Text, Text.Hidden); + } } public class SendWithIdRequestModel : SendRequestModel diff --git a/src/Core/Models/Api/Request/TwoFactorRequestModels.cs b/src/Api/Models/Request/TwoFactorRequestModels.cs similarity index 98% rename from src/Core/Models/Api/Request/TwoFactorRequestModels.cs rename to src/Api/Models/Request/TwoFactorRequestModels.cs index 1ab8bdd69e..3dd7816017 100644 --- a/src/Core/Models/Api/Request/TwoFactorRequestModels.cs +++ b/src/Api/Models/Request/TwoFactorRequestModels.cs @@ -1,11 +1,12 @@ -using Bit.Core.Enums; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using Bit.Api.Models.Request.Accounts; +using Bit.Core.Enums; +using Bit.Core.Models; using Bit.Core.Models.Table; using Fido2NetLib; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.Linq; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request { public class UpdateTwoFactorAuthenticatorRequestModel : SecretVerificationRequestModel { diff --git a/src/Core/Models/Api/Request/UpdateDomainsRequestModel.cs b/src/Api/Models/Request/UpdateDomainsRequestModel.cs similarity index 87% rename from src/Core/Models/Api/Request/UpdateDomainsRequestModel.cs rename to src/Api/Models/Request/UpdateDomainsRequestModel.cs index 321ab62c8d..6cf78b1c33 100644 --- a/src/Core/Models/Api/Request/UpdateDomainsRequestModel.cs +++ b/src/Api/Models/Request/UpdateDomainsRequestModel.cs @@ -1,9 +1,9 @@ -using Bit.Core.Models.Table; -using System.Collections.Generic; +using System.Collections.Generic; using Bit.Core.Enums; +using Bit.Core.Models.Table; using Newtonsoft.Json; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Request { public class UpdateDomainsRequestModel { diff --git a/src/Core/Models/Api/Response/ApiKeyResponseModel.cs b/src/Api/Models/Response/ApiKeyResponseModel.cs similarity index 92% rename from src/Core/Models/Api/Response/ApiKeyResponseModel.cs rename to src/Api/Models/Response/ApiKeyResponseModel.cs index c64db1c0ef..ce500eb492 100644 --- a/src/Core/Models/Api/Response/ApiKeyResponseModel.cs +++ b/src/Api/Models/Response/ApiKeyResponseModel.cs @@ -1,7 +1,8 @@ using System; +using Bit.Core.Models.Api; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class ApiKeyResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/AttachmentResponseModel.cs b/src/Api/Models/Response/AttachmentResponseModel.cs similarity index 77% rename from src/Core/Models/Api/Response/AttachmentResponseModel.cs rename to src/Api/Models/Response/AttachmentResponseModel.cs index 4843609ff9..ef601c3410 100644 --- a/src/Core/Models/Api/Response/AttachmentResponseModel.cs +++ b/src/Api/Models/Response/AttachmentResponseModel.cs @@ -1,15 +1,17 @@ -using Bit.Core.Models.Data; -using Bit.Core.Models.Table; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; +using Bit.Core.Models.Api; +using Bit.Core.Models.Data; +using Bit.Core.Models.Table; using Bit.Core.Settings; +using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class AttachmentResponseModel : ResponseModel { public AttachmentResponseModel(string id, CipherAttachment.MetaData data, Cipher cipher, - GlobalSettings globalSettings) + IGlobalSettings globalSettings) : base("attachment") { Id = id; @@ -17,7 +19,7 @@ namespace Bit.Core.Models.Api FileName = data.FileName; Key = data.Key; Size = data.SizeString; - SizeName = Utilities.CoreHelpers.ReadableBytesSize(data.Size); + SizeName = CoreHelpers.ReadableBytesSize(data.Size); } public string Id { get; set; } @@ -27,7 +29,7 @@ namespace Bit.Core.Models.Api public string Size { get; set; } public string SizeName { get; set; } - public static IEnumerable FromCipher(Cipher cipher, GlobalSettings globalSettings) + public static IEnumerable FromCipher(Cipher cipher, IGlobalSettings globalSettings) { var attachments = cipher.GetAttachments(); if (attachments == null) diff --git a/src/Core/Models/Api/Response/AttachmentUploadDataResponseModel.cs b/src/Api/Models/Response/AttachmentUploadDataResponseModel.cs similarity index 88% rename from src/Core/Models/Api/Response/AttachmentUploadDataResponseModel.cs rename to src/Api/Models/Response/AttachmentUploadDataResponseModel.cs index b02f05d211..804fb2c347 100644 --- a/src/Core/Models/Api/Response/AttachmentUploadDataResponseModel.cs +++ b/src/Api/Models/Response/AttachmentUploadDataResponseModel.cs @@ -1,6 +1,7 @@ using Bit.Core.Enums; +using Bit.Core.Models.Api; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class AttachmentUploadDataResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/BillingResponseModel.cs b/src/Api/Models/Response/BillingResponseModel.cs similarity index 97% rename from src/Core/Models/Api/Response/BillingResponseModel.cs rename to src/Api/Models/Response/BillingResponseModel.cs index 2d42d56e2a..cba610c49a 100644 --- a/src/Core/Models/Api/Response/BillingResponseModel.cs +++ b/src/Api/Models/Response/BillingResponseModel.cs @@ -1,10 +1,11 @@ using System; -using System.Linq; using System.Collections.Generic; -using Bit.Core.Models.Business; +using System.Linq; using Bit.Core.Enums; +using Bit.Core.Models.Api; +using Bit.Core.Models.Business; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class BillingResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/CipherResponseModel.cs b/src/Api/Models/Response/CipherResponseModel.cs similarity index 91% rename from src/Core/Models/Api/Response/CipherResponseModel.cs rename to src/Api/Models/Response/CipherResponseModel.cs index d1ca00b508..8884e091bc 100644 --- a/src/Core/Models/Api/Response/CipherResponseModel.cs +++ b/src/Api/Models/Response/CipherResponseModel.cs @@ -1,18 +1,19 @@ using System; -using Core.Models.Data; using System.Collections.Generic; -using Bit.Core.Models.Table; using System.Linq; -using Newtonsoft.Json; -using Bit.Core.Models.Data; -using Bit.Core.Settings; using Bit.Core.Enums; +using Bit.Core.Models.Api; +using Bit.Core.Models.Data; +using Bit.Core.Models.Table; +using Bit.Core.Settings; +using Core.Models.Data; +using Newtonsoft.Json; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class CipherMiniResponseModel : ResponseModel { - public CipherMiniResponseModel(Cipher cipher, GlobalSettings globalSettings, bool orgUseTotp, string obj = "cipherMini") + public CipherMiniResponseModel(Cipher cipher, IGlobalSettings globalSettings, bool orgUseTotp, string obj = "cipherMini") : base(obj) { if (cipher == null) @@ -26,25 +27,25 @@ namespace Bit.Core.Models.Api CipherData cipherData; switch (cipher.Type) { - case Enums.CipherType.Login: + case CipherType.Login: var loginData = JsonConvert.DeserializeObject(cipher.Data); cipherData = loginData; Data = loginData; Login = new CipherLoginModel(loginData); break; - case Enums.CipherType.SecureNote: + case CipherType.SecureNote: var secureNoteData = JsonConvert.DeserializeObject(cipher.Data); Data = secureNoteData; cipherData = secureNoteData; SecureNote = new CipherSecureNoteModel(secureNoteData); break; - case Enums.CipherType.Card: + case CipherType.Card: var cardData = JsonConvert.DeserializeObject(cipher.Data); Data = cardData; cipherData = cardData; Card = new CipherCardModel(cardData); break; - case Enums.CipherType.Identity: + case CipherType.Identity: var identityData = JsonConvert.DeserializeObject(cipher.Data); Data = identityData; cipherData = identityData; @@ -68,7 +69,7 @@ namespace Bit.Core.Models.Api public string Id { get; set; } public string OrganizationId { get; set; } - public Enums.CipherType Type { get; set; } + public CipherType Type { get; set; } public dynamic Data { get; set; } public string Name { get; set; } public string Notes { get; set; } @@ -87,7 +88,7 @@ namespace Bit.Core.Models.Api public class CipherResponseModel : CipherMiniResponseModel { - public CipherResponseModel(CipherDetails cipher, GlobalSettings globalSettings, string obj = "cipher") + public CipherResponseModel(CipherDetails cipher, IGlobalSettings globalSettings, string obj = "cipher") : base(cipher, globalSettings, cipher.OrganizationUseTotp, obj) { FolderId = cipher.FolderId?.ToString(); diff --git a/src/Core/Models/Api/Response/CollectionResponseModel.cs b/src/Api/Models/Response/CollectionResponseModel.cs similarity index 96% rename from src/Core/Models/Api/Response/CollectionResponseModel.cs rename to src/Api/Models/Response/CollectionResponseModel.cs index 901027a9ed..f9e41ad079 100644 --- a/src/Core/Models/Api/Response/CollectionResponseModel.cs +++ b/src/Api/Models/Response/CollectionResponseModel.cs @@ -1,10 +1,11 @@ using System; -using Bit.Core.Models.Table; using System.Collections.Generic; -using Bit.Core.Models.Data; using System.Linq; +using Bit.Core.Models.Api; +using Bit.Core.Models.Data; +using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class CollectionResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/DeviceResponseModel.cs b/src/Api/Models/Response/DeviceResponseModel.cs similarity index 92% rename from src/Core/Models/Api/Response/DeviceResponseModel.cs rename to src/Api/Models/Response/DeviceResponseModel.cs index aae273d83a..c724370123 100644 --- a/src/Core/Models/Api/Response/DeviceResponseModel.cs +++ b/src/Api/Models/Response/DeviceResponseModel.cs @@ -1,8 +1,9 @@ using System; -using Bit.Core.Models.Table; using Bit.Core.Enums; +using Bit.Core.Models.Api; +using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class DeviceResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/DomainsResponseModel.cs b/src/Api/Models/Response/DomainsResponseModel.cs similarity index 97% rename from src/Core/Models/Api/Response/DomainsResponseModel.cs rename to src/Api/Models/Response/DomainsResponseModel.cs index 8debd8fa16..7c1746f4fe 100644 --- a/src/Core/Models/Api/Response/DomainsResponseModel.cs +++ b/src/Api/Models/Response/DomainsResponseModel.cs @@ -1,11 +1,12 @@ using System; -using Bit.Core.Models.Table; using System.Collections.Generic; -using Newtonsoft.Json; -using Bit.Core.Enums; using System.Linq; +using Bit.Core.Enums; +using Bit.Core.Models.Api; +using Bit.Core.Models.Table; +using Newtonsoft.Json; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class DomainsResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/EmergencyAccessResponseModel.cs b/src/Api/Models/Response/EmergencyAccessResponseModel.cs similarity index 97% rename from src/Core/Models/Api/Response/EmergencyAccessResponseModel.cs rename to src/Api/Models/Response/EmergencyAccessResponseModel.cs index b9200b9d23..2d882fadc4 100644 --- a/src/Core/Models/Api/Response/EmergencyAccessResponseModel.cs +++ b/src/Api/Models/Response/EmergencyAccessResponseModel.cs @@ -2,12 +2,13 @@ using System.Collections.Generic; using System.Linq; using Bit.Core.Enums; +using Bit.Core.Models.Api; using Bit.Core.Models.Data; using Bit.Core.Models.Table; using Bit.Core.Settings; using Core.Models.Data; -namespace Bit.Core.Models.Api.Response +namespace Bit.Api.Models.Response { public class EmergencyAccessResponseModel : ResponseModel { @@ -105,7 +106,7 @@ namespace Bit.Core.Models.Api.Response public class EmergencyAccessViewResponseModel : ResponseModel { public EmergencyAccessViewResponseModel( - GlobalSettings globalSettings, + IGlobalSettings globalSettings, EmergencyAccess emergencyAccess, IEnumerable ciphers) : base("emergencyAccessView") diff --git a/src/Core/Models/Api/Response/EventResponseModel.cs b/src/Api/Models/Response/EventResponseModel.cs similarity index 96% rename from src/Core/Models/Api/Response/EventResponseModel.cs rename to src/Api/Models/Response/EventResponseModel.cs index d810869bda..8d3a3c6d54 100644 --- a/src/Core/Models/Api/Response/EventResponseModel.cs +++ b/src/Api/Models/Response/EventResponseModel.cs @@ -1,8 +1,9 @@ using System; using Bit.Core.Enums; +using Bit.Core.Models.Api; using Bit.Core.Models.Data; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class EventResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/FolderResponseModel.cs b/src/Api/Models/Response/FolderResponseModel.cs similarity index 90% rename from src/Core/Models/Api/Response/FolderResponseModel.cs rename to src/Api/Models/Response/FolderResponseModel.cs index 3df1d8c2fb..0c129a3385 100644 --- a/src/Core/Models/Api/Response/FolderResponseModel.cs +++ b/src/Api/Models/Response/FolderResponseModel.cs @@ -1,7 +1,8 @@ using System; +using Bit.Core.Models.Api; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class FolderResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/GroupResponseModel.cs b/src/Api/Models/Response/GroupResponseModel.cs similarity index 95% rename from src/Core/Models/Api/Response/GroupResponseModel.cs rename to src/Api/Models/Response/GroupResponseModel.cs index abf752a110..4db9339d38 100644 --- a/src/Core/Models/Api/Response/GroupResponseModel.cs +++ b/src/Api/Models/Response/GroupResponseModel.cs @@ -1,10 +1,11 @@ using System; -using Bit.Core.Models.Table; using System.Collections.Generic; -using Bit.Core.Models.Data; using System.Linq; +using Bit.Core.Models.Api; +using Bit.Core.Models.Data; +using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class GroupResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/InstallationResponseModel.cs b/src/Api/Models/Response/InstallationResponseModel.cs similarity index 88% rename from src/Core/Models/Api/Response/InstallationResponseModel.cs rename to src/Api/Models/Response/InstallationResponseModel.cs index efddcd7fae..6ffdade3cc 100644 --- a/src/Core/Models/Api/Response/InstallationResponseModel.cs +++ b/src/Api/Models/Response/InstallationResponseModel.cs @@ -1,7 +1,7 @@ -using System; +using Bit.Core.Models.Api; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class InstallationResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/KeysResponseModel.cs b/src/Api/Models/Response/KeysResponseModel.cs similarity index 90% rename from src/Core/Models/Api/Response/KeysResponseModel.cs rename to src/Api/Models/Response/KeysResponseModel.cs index 6157147b34..75277eb23b 100644 --- a/src/Core/Models/Api/Response/KeysResponseModel.cs +++ b/src/Api/Models/Response/KeysResponseModel.cs @@ -1,7 +1,8 @@ using System; +using Bit.Core.Models.Api; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class KeysResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/ListResponseModel.cs b/src/Api/Models/Response/ListResponseModel.cs similarity index 80% rename from src/Core/Models/Api/Response/ListResponseModel.cs rename to src/Api/Models/Response/ListResponseModel.cs index 96553b1439..06762bf498 100644 --- a/src/Core/Models/Api/Response/ListResponseModel.cs +++ b/src/Api/Models/Response/ListResponseModel.cs @@ -1,7 +1,7 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; +using Bit.Core.Models.Api; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class ListResponseModel : ResponseModel where T : ResponseModel { diff --git a/src/Core/Models/Api/Response/OrganizationAutoEnrollStatusResponseModel.cs b/src/Api/Models/Response/OrganizationAutoEnrollStatusResponseModel.cs similarity index 88% rename from src/Core/Models/Api/Response/OrganizationAutoEnrollStatusResponseModel.cs rename to src/Api/Models/Response/OrganizationAutoEnrollStatusResponseModel.cs index 9bb14032d8..8eb9866ff4 100644 --- a/src/Core/Models/Api/Response/OrganizationAutoEnrollStatusResponseModel.cs +++ b/src/Api/Models/Response/OrganizationAutoEnrollStatusResponseModel.cs @@ -1,6 +1,7 @@ using System; +using Bit.Core.Models.Api; -namespace Bit.Core.Models.Api.Response +namespace Bit.Api.Models.Response { public class OrganizationAutoEnrollStatusResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/OrganizationKeysResponseModel.cs b/src/Api/Models/Response/OrganizationKeysResponseModel.cs similarity index 90% rename from src/Core/Models/Api/Response/OrganizationKeysResponseModel.cs rename to src/Api/Models/Response/OrganizationKeysResponseModel.cs index ca7b4fdea7..3d381643de 100644 --- a/src/Core/Models/Api/Response/OrganizationKeysResponseModel.cs +++ b/src/Api/Models/Response/OrganizationKeysResponseModel.cs @@ -1,7 +1,8 @@ using System; +using Bit.Core.Models.Api; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class OrganizationKeysResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/OrganizationResponseModel.cs b/src/Api/Models/Response/OrganizationResponseModel.cs similarity index 94% rename from src/Core/Models/Api/Response/OrganizationResponseModel.cs rename to src/Api/Models/Response/OrganizationResponseModel.cs index bee98103ef..dd3877e550 100644 --- a/src/Core/Models/Api/Response/OrganizationResponseModel.cs +++ b/src/Api/Models/Response/OrganizationResponseModel.cs @@ -1,11 +1,12 @@ using System; -using Bit.Core.Models.Table; -using Bit.Core.Models.Business; -using Bit.Core.Models.StaticStore; using System.Linq; using Bit.Core.Enums; +using Bit.Core.Models.Api; +using Bit.Core.Models.Business; +using Bit.Core.Models.Table; +using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class OrganizationResponseModel : ResponseModel { @@ -27,7 +28,7 @@ namespace Bit.Core.Models.Api BusinessCountry = organization.BusinessCountry; BusinessTaxNumber = organization.BusinessTaxNumber; BillingEmail = organization.BillingEmail; - Plan = new PlanResponseModel(Utilities.StaticStore.Plans.FirstOrDefault(plan => plan.Type == organization.PlanType)); + Plan = new PlanResponseModel(StaticStore.Plans.FirstOrDefault(plan => plan.Type == organization.PlanType)); PlanType = organization.PlanType; Seats = organization.Seats; MaxAutoscaleSeats = organization.MaxAutoscaleSeats; @@ -98,7 +99,7 @@ namespace Bit.Core.Models.Api } StorageName = organization.Storage.HasValue ? - Utilities.CoreHelpers.ReadableBytesSize(organization.Storage.Value) : null; + CoreHelpers.ReadableBytesSize(organization.Storage.Value) : null; StorageGb = organization.Storage.HasValue ? Math.Round(organization.Storage.Value / 1073741824D, 2) : 0; // 1 GB } diff --git a/src/Core/Models/Api/Response/OrganizationSsoResponseModel.cs b/src/Api/Models/Response/OrganizationSsoResponseModel.cs similarity index 96% rename from src/Core/Models/Api/Response/OrganizationSsoResponseModel.cs rename to src/Api/Models/Response/OrganizationSsoResponseModel.cs index 6132e611a4..91f1f3cf69 100644 --- a/src/Core/Models/Api/Response/OrganizationSsoResponseModel.cs +++ b/src/Api/Models/Response/OrganizationSsoResponseModel.cs @@ -1,9 +1,9 @@ -using System.Text.Json; +using Bit.Core.Models.Api; using Bit.Core.Models.Data; using Bit.Core.Models.Table; using Bit.Core.Settings; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class OrganizationSsoResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/OrganizationUserResponseModel.cs b/src/Api/Models/Response/OrganizationUserResponseModel.cs similarity index 98% rename from src/Core/Models/Api/Response/OrganizationUserResponseModel.cs rename to src/Api/Models/Response/OrganizationUserResponseModel.cs index 5d48340768..a461c8a5fc 100644 --- a/src/Core/Models/Api/Response/OrganizationUserResponseModel.cs +++ b/src/Api/Models/Response/OrganizationUserResponseModel.cs @@ -1,11 +1,13 @@ using System; -using Bit.Core.Enums; -using Bit.Core.Models.Data; using System.Collections.Generic; using System.Linq; +using Bit.Core.Enums; +using Bit.Core.Models.Api; +using Bit.Core.Models.Data; using Bit.Core.Models.Table; using Bit.Core.Utilities; -namespace Bit.Core.Models.Api + +namespace Bit.Api.Models.Response { public class OrganizationUserResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/PaymentResponseModel.cs b/src/Api/Models/Response/PaymentResponseModel.cs similarity index 82% rename from src/Core/Models/Api/Response/PaymentResponseModel.cs rename to src/Api/Models/Response/PaymentResponseModel.cs index d701e108b0..43edb32164 100644 --- a/src/Core/Models/Api/Response/PaymentResponseModel.cs +++ b/src/Api/Models/Response/PaymentResponseModel.cs @@ -1,4 +1,6 @@ -namespace Bit.Core.Models.Api +using Bit.Core.Models.Api; + +namespace Bit.Api.Models.Response { public class PaymentResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/PlanResponseModel.cs b/src/Api/Models/Response/PlanResponseModel.cs similarity index 98% rename from src/Core/Models/Api/Response/PlanResponseModel.cs rename to src/Api/Models/Response/PlanResponseModel.cs index 050246a9d6..d00f1700f7 100644 --- a/src/Core/Models/Api/Response/PlanResponseModel.cs +++ b/src/Api/Models/Response/PlanResponseModel.cs @@ -1,8 +1,9 @@ using System; using Bit.Core.Enums; +using Bit.Core.Models.Api; using Bit.Core.Models.StaticStore; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class PlanResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/PolicyResponseModel.cs b/src/Api/Models/Response/PolicyResponseModel.cs similarity index 94% rename from src/Core/Models/Api/Response/PolicyResponseModel.cs rename to src/Api/Models/Response/PolicyResponseModel.cs index 4e4b36edf3..4a840ec5a4 100644 --- a/src/Core/Models/Api/Response/PolicyResponseModel.cs +++ b/src/Api/Models/Response/PolicyResponseModel.cs @@ -1,10 +1,11 @@ using System; using System.Collections.Generic; using Bit.Core.Enums; +using Bit.Core.Models.Api; using Bit.Core.Models.Table; using Newtonsoft.Json; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class PolicyResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/PreloginResponseModel.cs b/src/Api/Models/Response/PreloginResponseModel.cs similarity index 91% rename from src/Core/Models/Api/Response/PreloginResponseModel.cs rename to src/Api/Models/Response/PreloginResponseModel.cs index eedae84da9..c4da923717 100644 --- a/src/Core/Models/Api/Response/PreloginResponseModel.cs +++ b/src/Api/Models/Response/PreloginResponseModel.cs @@ -1,7 +1,7 @@ using Bit.Core.Enums; using Bit.Core.Models.Data; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class PreloginResponseModel { diff --git a/src/Core/Models/Api/Response/ProfileOrganizationResponseModel.cs b/src/Api/Models/Response/ProfileOrganizationResponseModel.cs similarity index 94% rename from src/Core/Models/Api/Response/ProfileOrganizationResponseModel.cs rename to src/Api/Models/Response/ProfileOrganizationResponseModel.cs index 00df76c4ec..60d654a160 100644 --- a/src/Core/Models/Api/Response/ProfileOrganizationResponseModel.cs +++ b/src/Api/Models/Response/ProfileOrganizationResponseModel.cs @@ -1,8 +1,9 @@ using Bit.Core.Enums; +using Bit.Core.Models.Api; using Bit.Core.Models.Data; using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class ProfileOrganizationResponseModel : ResponseModel { @@ -41,9 +42,9 @@ namespace Bit.Core.Models.Api ProviderName = organization.ProviderName; FamilySponsorshipFriendlyName = organization.FamilySponsorshipFriendlyName; FamilySponsorshipAvailable = FamilySponsorshipFriendlyName == null && - Utilities.StaticStore.GetSponsoredPlan(PlanSponsorshipType.FamiliesForEnterprise) + StaticStore.GetSponsoredPlan(PlanSponsorshipType.FamiliesForEnterprise) .UsersCanSponsor(organization); - PlanProductType = Utilities.StaticStore.GetPlan(organization.PlanType).Product; + PlanProductType = StaticStore.GetPlan(organization.PlanType).Product; if (organization.SsoConfig != null) { diff --git a/src/Core/Models/Api/Response/ProfileProviderOrganizationResponseModel.cs b/src/Api/Models/Response/ProfileProviderOrganizationResponseModel.cs similarity index 98% rename from src/Core/Models/Api/Response/ProfileProviderOrganizationResponseModel.cs rename to src/Api/Models/Response/ProfileProviderOrganizationResponseModel.cs index f760c78454..bb8d0af366 100644 --- a/src/Core/Models/Api/Response/ProfileProviderOrganizationResponseModel.cs +++ b/src/Api/Models/Response/ProfileProviderOrganizationResponseModel.cs @@ -1,7 +1,7 @@ using Bit.Core.Enums; using Bit.Core.Models.Data; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class ProfileProviderOrganizationResponseModel : ProfileOrganizationResponseModel { diff --git a/src/Core/Models/Api/Response/ProfileResponseModel.cs b/src/Api/Models/Response/ProfileResponseModel.cs similarity index 96% rename from src/Core/Models/Api/Response/ProfileResponseModel.cs rename to src/Api/Models/Response/ProfileResponseModel.cs index 16c07650cc..45810d0376 100644 --- a/src/Core/Models/Api/Response/ProfileResponseModel.cs +++ b/src/Api/Models/Response/ProfileResponseModel.cs @@ -1,10 +1,12 @@ using System; -using Bit.Core.Models.Table; using System.Collections.Generic; using System.Linq; +using Bit.Api.Models.Response.Providers; +using Bit.Core.Models.Api; using Bit.Core.Models.Data; +using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class ProfileResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/Providers/ProfileProviderResponseModel.cs b/src/Api/Models/Response/Providers/ProfileProviderResponseModel.cs similarity index 94% rename from src/Core/Models/Api/Response/Providers/ProfileProviderResponseModel.cs rename to src/Api/Models/Response/Providers/ProfileProviderResponseModel.cs index 1b76784d11..c8a0c38182 100644 --- a/src/Core/Models/Api/Response/Providers/ProfileProviderResponseModel.cs +++ b/src/Api/Models/Response/Providers/ProfileProviderResponseModel.cs @@ -1,8 +1,9 @@ using Bit.Core.Enums.Provider; +using Bit.Core.Models.Api; using Bit.Core.Models.Data; using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response.Providers { public class ProfileProviderResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/Providers/ProviderOrganizationResponseModel.cs b/src/Api/Models/Response/Providers/ProviderOrganizationResponseModel.cs similarity index 97% rename from src/Core/Models/Api/Response/Providers/ProviderOrganizationResponseModel.cs rename to src/Api/Models/Response/Providers/ProviderOrganizationResponseModel.cs index f29cd3b184..c3596ea0e2 100644 --- a/src/Core/Models/Api/Response/Providers/ProviderOrganizationResponseModel.cs +++ b/src/Api/Models/Response/Providers/ProviderOrganizationResponseModel.cs @@ -1,8 +1,9 @@ using System; +using Bit.Core.Models.Api; using Bit.Core.Models.Data; using Bit.Core.Models.Table.Provider; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response.Providers { public class ProviderOrganizationResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/Providers/ProviderResponseModel.cs b/src/Api/Models/Response/Providers/ProviderResponseModel.cs similarity index 94% rename from src/Core/Models/Api/Response/Providers/ProviderResponseModel.cs rename to src/Api/Models/Response/Providers/ProviderResponseModel.cs index 279abdb748..db7138cb8f 100644 --- a/src/Core/Models/Api/Response/Providers/ProviderResponseModel.cs +++ b/src/Api/Models/Response/Providers/ProviderResponseModel.cs @@ -1,7 +1,8 @@ using System; +using Bit.Core.Models.Api; using Bit.Core.Models.Table.Provider; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response.Providers { public class ProviderResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/Providers/ProviderUserResponseModel.cs b/src/Api/Models/Response/Providers/ProviderUserResponseModel.cs similarity index 97% rename from src/Core/Models/Api/Response/Providers/ProviderUserResponseModel.cs rename to src/Api/Models/Response/Providers/ProviderUserResponseModel.cs index f8125dbaf6..e835393cda 100644 --- a/src/Core/Models/Api/Response/Providers/ProviderUserResponseModel.cs +++ b/src/Api/Models/Response/Providers/ProviderUserResponseModel.cs @@ -1,10 +1,11 @@ using System; -using Bit.Core.Models.Data; using Bit.Core.Enums.Provider; +using Bit.Core.Models.Api; +using Bit.Core.Models.Data; using Bit.Core.Models.Table.Provider; using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response.Providers { public class ProviderUserResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/SelectionReadOnlyResponseModel.cs b/src/Api/Models/Response/SelectionReadOnlyResponseModel.cs similarity index 94% rename from src/Core/Models/Api/Response/SelectionReadOnlyResponseModel.cs rename to src/Api/Models/Response/SelectionReadOnlyResponseModel.cs index 0f3f238a4a..cec8bbe08a 100644 --- a/src/Core/Models/Api/Response/SelectionReadOnlyResponseModel.cs +++ b/src/Api/Models/Response/SelectionReadOnlyResponseModel.cs @@ -1,7 +1,7 @@ using System; using Bit.Core.Models.Data; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class SelectionReadOnlyResponseModel { diff --git a/src/Core/Models/Api/Response/SendAccessResponseModel.cs b/src/Api/Models/Response/SendAccessResponseModel.cs similarity index 92% rename from src/Core/Models/Api/Response/SendAccessResponseModel.cs rename to src/Api/Models/Response/SendAccessResponseModel.cs index 00f5366f6e..7c39abde3f 100644 --- a/src/Core/Models/Api/Response/SendAccessResponseModel.cs +++ b/src/Api/Models/Response/SendAccessResponseModel.cs @@ -1,13 +1,13 @@ using System; using Bit.Core.Enums; +using Bit.Core.Models.Api; using Bit.Core.Models.Data; using Bit.Core.Models.Table; -using Bit.Core.Utilities; using Bit.Core.Settings; -using Bit.Core.Services; +using Bit.Core.Utilities; using Newtonsoft.Json; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class SendAccessResponseModel : ResponseModel { @@ -28,7 +28,7 @@ namespace Bit.Core.Models.Api case SendType.File: var fileData = JsonConvert.DeserializeObject(send.Data); sendData = fileData; - File = new SendFileModel(fileData, globalSettings); + File = new SendFileModel(fileData); break; case SendType.Text: var textData = JsonConvert.DeserializeObject(send.Data); diff --git a/src/Core/Models/Api/Response/SendFileDownloadDataResponseModel.cs b/src/Api/Models/Response/SendFileDownloadDataResponseModel.cs similarity index 79% rename from src/Core/Models/Api/Response/SendFileDownloadDataResponseModel.cs rename to src/Api/Models/Response/SendFileDownloadDataResponseModel.cs index 72463c5618..6659904b40 100644 --- a/src/Core/Models/Api/Response/SendFileDownloadDataResponseModel.cs +++ b/src/Api/Models/Response/SendFileDownloadDataResponseModel.cs @@ -1,4 +1,6 @@ -namespace Bit.Core.Models.Api.Response +using Bit.Core.Models.Api; + +namespace Bit.Api.Models.Response { public class SendFileDownloadDataResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/SendFileUploadDataResponseModel.cs b/src/Api/Models/Response/SendFileUploadDataResponseModel.cs similarity index 85% rename from src/Core/Models/Api/Response/SendFileUploadDataResponseModel.cs rename to src/Api/Models/Response/SendFileUploadDataResponseModel.cs index aded0d7142..49eb95d721 100644 --- a/src/Core/Models/Api/Response/SendFileUploadDataResponseModel.cs +++ b/src/Api/Models/Response/SendFileUploadDataResponseModel.cs @@ -1,6 +1,7 @@ using Bit.Core.Enums; +using Bit.Core.Models.Api; -namespace Bit.Core.Models.Api.Response +namespace Bit.Api.Models.Response { public class SendFileUploadDataResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/SendResponseModel.cs b/src/Api/Models/Response/SendResponseModel.cs similarity index 95% rename from src/Core/Models/Api/Response/SendResponseModel.cs rename to src/Api/Models/Response/SendResponseModel.cs index 4feba289fd..cdfcaf6db8 100644 --- a/src/Core/Models/Api/Response/SendResponseModel.cs +++ b/src/Api/Models/Response/SendResponseModel.cs @@ -1,12 +1,13 @@ using System; using Bit.Core.Enums; +using Bit.Core.Models.Api; using Bit.Core.Models.Data; using Bit.Core.Models.Table; -using Bit.Core.Utilities; using Bit.Core.Settings; +using Bit.Core.Utilities; using Newtonsoft.Json; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class SendResponseModel : ResponseModel { @@ -37,7 +38,7 @@ namespace Bit.Core.Models.Api case SendType.File: var fileData = JsonConvert.DeserializeObject(send.Data); sendData = fileData; - File = new SendFileModel(fileData, globalSettings); + File = new SendFileModel(fileData); break; case SendType.Text: var textData = JsonConvert.DeserializeObject(send.Data); diff --git a/src/Core/Models/Api/Response/SubscriptionResponseModel.cs b/src/Api/Models/Response/SubscriptionResponseModel.cs similarity index 92% rename from src/Core/Models/Api/Response/SubscriptionResponseModel.cs rename to src/Api/Models/Response/SubscriptionResponseModel.cs index dcc592c7a4..054e929a07 100644 --- a/src/Core/Models/Api/Response/SubscriptionResponseModel.cs +++ b/src/Api/Models/Response/SubscriptionResponseModel.cs @@ -1,10 +1,12 @@ using System; -using System.Linq; using System.Collections.Generic; +using System.Linq; +using Bit.Core.Models.Api; using Bit.Core.Models.Business; using Bit.Core.Models.Table; +using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class SubscriptionResponseModel : ResponseModel { @@ -14,7 +16,7 @@ namespace Bit.Core.Models.Api Subscription = subscription.Subscription != null ? new BillingSubscription(subscription.Subscription) : null; UpcomingInvoice = subscription.UpcomingInvoice != null ? new BillingSubscriptionUpcomingInvoice(subscription.UpcomingInvoice) : null; - StorageName = user.Storage.HasValue ? Utilities.CoreHelpers.ReadableBytesSize(user.Storage.Value) : null; + StorageName = user.Storage.HasValue ? CoreHelpers.ReadableBytesSize(user.Storage.Value) : null; StorageGb = user.Storage.HasValue ? Math.Round(user.Storage.Value / 1073741824D, 2) : 0; // 1 GB MaxStorageGb = user.MaxStorageGb; License = license; @@ -25,7 +27,7 @@ namespace Bit.Core.Models.Api public SubscriptionResponseModel(User user, UserLicense license = null) : base("subscription") { - StorageName = user.Storage.HasValue ? Utilities.CoreHelpers.ReadableBytesSize(user.Storage.Value) : null; + StorageName = user.Storage.HasValue ? CoreHelpers.ReadableBytesSize(user.Storage.Value) : null; StorageGb = user.Storage.HasValue ? Math.Round(user.Storage.Value / 1073741824D, 2) : 0; // 1 GB MaxStorageGb = user.MaxStorageGb; Expiration = user.PremiumExpirationDate; diff --git a/src/Core/Models/Api/Response/SyncResponseModel.cs b/src/Api/Models/Response/SyncResponseModel.cs similarity index 97% rename from src/Core/Models/Api/Response/SyncResponseModel.cs rename to src/Api/Models/Response/SyncResponseModel.cs index bdd0cc74c5..616fbe2c3b 100644 --- a/src/Core/Models/Api/Response/SyncResponseModel.cs +++ b/src/Api/Models/Response/SyncResponseModel.cs @@ -1,12 +1,13 @@ using System; using System.Collections.Generic; using System.Linq; +using Bit.Core.Models.Api; using Bit.Core.Models.Data; using Bit.Core.Models.Table; using Bit.Core.Settings; using Core.Models.Data; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class SyncResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/TaxInfoResponseModel.cs b/src/Api/Models/Response/TaxInfoResponseModel.cs similarity index 96% rename from src/Core/Models/Api/Response/TaxInfoResponseModel.cs rename to src/Api/Models/Response/TaxInfoResponseModel.cs index 55301c32a3..6ba6bad458 100644 --- a/src/Core/Models/Api/Response/TaxInfoResponseModel.cs +++ b/src/Api/Models/Response/TaxInfoResponseModel.cs @@ -1,6 +1,6 @@ using Bit.Core.Models.Business; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class TaxInfoResponseModel { diff --git a/src/Core/Models/Api/Response/TaxRateResponseModel.cs b/src/Api/Models/Response/TaxRateResponseModel.cs similarity index 92% rename from src/Core/Models/Api/Response/TaxRateResponseModel.cs rename to src/Api/Models/Response/TaxRateResponseModel.cs index a298ab959a..f845bf681e 100644 --- a/src/Core/Models/Api/Response/TaxRateResponseModel.cs +++ b/src/Api/Models/Response/TaxRateResponseModel.cs @@ -1,7 +1,8 @@ using System; +using Bit.Core.Models.Api; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class TaxRateResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/TwoFactor/TwoFactorAuthenticatorResponseModel.cs b/src/Api/Models/Response/TwoFactor/TwoFactorAuthenticatorResponseModel.cs similarity index 93% rename from src/Core/Models/Api/Response/TwoFactor/TwoFactorAuthenticatorResponseModel.cs rename to src/Api/Models/Response/TwoFactor/TwoFactorAuthenticatorResponseModel.cs index 6a2ac69e43..1243a1c179 100644 --- a/src/Core/Models/Api/Response/TwoFactor/TwoFactorAuthenticatorResponseModel.cs +++ b/src/Api/Models/Response/TwoFactor/TwoFactorAuthenticatorResponseModel.cs @@ -1,9 +1,10 @@ using System; using Bit.Core.Enums; +using Bit.Core.Models.Api; using Bit.Core.Models.Table; using OtpNet; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response.TwoFactor { public class TwoFactorAuthenticatorResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/TwoFactor/TwoFactorDuoResponseModel.cs b/src/Api/Models/Response/TwoFactor/TwoFactorDuoResponseModel.cs similarity index 95% rename from src/Core/Models/Api/Response/TwoFactor/TwoFactorDuoResponseModel.cs rename to src/Api/Models/Response/TwoFactor/TwoFactorDuoResponseModel.cs index 33ae08c973..1a5938afd3 100644 --- a/src/Core/Models/Api/Response/TwoFactor/TwoFactorDuoResponseModel.cs +++ b/src/Api/Models/Response/TwoFactor/TwoFactorDuoResponseModel.cs @@ -1,8 +1,10 @@ using System; using Bit.Core.Enums; +using Bit.Core.Models; +using Bit.Core.Models.Api; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response.TwoFactor { public class TwoFactorDuoResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/TwoFactor/TwoFactorEmailResponseModel.cs b/src/Api/Models/Response/TwoFactor/TwoFactorEmailResponseModel.cs similarity index 92% rename from src/Core/Models/Api/Response/TwoFactor/TwoFactorEmailResponseModel.cs rename to src/Api/Models/Response/TwoFactor/TwoFactorEmailResponseModel.cs index 84ff76efd7..52fa90be47 100644 --- a/src/Core/Models/Api/Response/TwoFactor/TwoFactorEmailResponseModel.cs +++ b/src/Api/Models/Response/TwoFactor/TwoFactorEmailResponseModel.cs @@ -1,8 +1,9 @@ using System; using Bit.Core.Enums; +using Bit.Core.Models.Api; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response.TwoFactor { public class TwoFactorEmailResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/TwoFactor/TwoFactorProviderResponseModel.cs b/src/Api/Models/Response/TwoFactor/TwoFactorProviderResponseModel.cs similarity index 94% rename from src/Core/Models/Api/Response/TwoFactor/TwoFactorProviderResponseModel.cs rename to src/Api/Models/Response/TwoFactor/TwoFactorProviderResponseModel.cs index e43c5424c5..fb509b3702 100644 --- a/src/Core/Models/Api/Response/TwoFactor/TwoFactorProviderResponseModel.cs +++ b/src/Api/Models/Response/TwoFactor/TwoFactorProviderResponseModel.cs @@ -1,8 +1,10 @@ using System; using Bit.Core.Enums; +using Bit.Core.Models; +using Bit.Core.Models.Api; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response.TwoFactor { public class TwoFactorProviderResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/TwoFactor/TwoFactorRecoverResponseModel.cs b/src/Api/Models/Response/TwoFactor/TwoFactorRecoverResponseModel.cs similarity index 86% rename from src/Core/Models/Api/Response/TwoFactor/TwoFactorRecoverResponseModel.cs rename to src/Api/Models/Response/TwoFactor/TwoFactorRecoverResponseModel.cs index baeed87e8d..3fc75450f8 100644 --- a/src/Core/Models/Api/Response/TwoFactor/TwoFactorRecoverResponseModel.cs +++ b/src/Api/Models/Response/TwoFactor/TwoFactorRecoverResponseModel.cs @@ -1,7 +1,8 @@ using System; +using Bit.Core.Models.Api; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response.TwoFactor { public class TwoFactorRecoverResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/TwoFactor/TwoFactorWebAuthnResponseModel.cs b/src/Api/Models/Response/TwoFactor/TwoFactorWebAuthnResponseModel.cs similarity index 93% rename from src/Core/Models/Api/Response/TwoFactor/TwoFactorWebAuthnResponseModel.cs rename to src/Api/Models/Response/TwoFactor/TwoFactorWebAuthnResponseModel.cs index 3c4da9e05c..67bc354bfa 100644 --- a/src/Core/Models/Api/Response/TwoFactor/TwoFactorWebAuthnResponseModel.cs +++ b/src/Api/Models/Response/TwoFactor/TwoFactorWebAuthnResponseModel.cs @@ -1,11 +1,12 @@ using System; -using Bit.Core.Models.Table; -using Bit.Core.Models.Business; -using Bit.Core.Enums; using System.Collections.Generic; using System.Linq; +using Bit.Core.Enums; +using Bit.Core.Models; +using Bit.Core.Models.Api; +using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response.TwoFactor { public class TwoFactorWebAuthnResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/TwoFactor/TwoFactorYubiKeyResponseModel.cs b/src/Api/Models/Response/TwoFactor/TwoFactorYubiKeyResponseModel.cs similarity index 96% rename from src/Core/Models/Api/Response/TwoFactor/TwoFactorYubiKeyResponseModel.cs rename to src/Api/Models/Response/TwoFactor/TwoFactorYubiKeyResponseModel.cs index 56e15c5909..620574be3a 100644 --- a/src/Core/Models/Api/Response/TwoFactor/TwoFactorYubiKeyResponseModel.cs +++ b/src/Api/Models/Response/TwoFactor/TwoFactorYubiKeyResponseModel.cs @@ -1,8 +1,9 @@ using System; using Bit.Core.Enums; +using Bit.Core.Models.Api; using Bit.Core.Models.Table; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response.TwoFactor { public class TwoFactorYubiKeyResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/Response/UserKeyResponseModel.cs b/src/Api/Models/Response/UserKeyResponseModel.cs similarity index 81% rename from src/Core/Models/Api/Response/UserKeyResponseModel.cs rename to src/Api/Models/Response/UserKeyResponseModel.cs index f4e1d8cdcb..55b3e4dd65 100644 --- a/src/Core/Models/Api/Response/UserKeyResponseModel.cs +++ b/src/Api/Models/Response/UserKeyResponseModel.cs @@ -1,8 +1,7 @@ using System; -using Bit.Core.Models.Table; -using Bit.Core.Enums; +using Bit.Core.Models.Api; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models.Response { public class UserKeyResponseModel : ResponseModel { diff --git a/src/Core/Models/Api/SendFileModel.cs b/src/Api/Models/SendFileModel.cs similarity index 80% rename from src/Core/Models/Api/SendFileModel.cs rename to src/Api/Models/SendFileModel.cs index 4aa81c5725..006fada458 100644 --- a/src/Core/Models/Api/SendFileModel.cs +++ b/src/Api/Models/SendFileModel.cs @@ -1,14 +1,13 @@ using Bit.Core.Models.Data; using Bit.Core.Utilities; -using Bit.Core.Settings; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models { public class SendFileModel { public SendFileModel() { } - public SendFileModel(SendFileData data, GlobalSettings globalSettings) + public SendFileModel(SendFileData data) { Id = data.Id; FileName = data.FileName; diff --git a/src/Core/Models/Api/SendTextModel.cs b/src/Api/Models/SendTextModel.cs similarity index 93% rename from src/Core/Models/Api/SendTextModel.cs rename to src/Api/Models/SendTextModel.cs index b14aca0152..a362a61d9e 100644 --- a/src/Core/Models/Api/SendTextModel.cs +++ b/src/Api/Models/SendTextModel.cs @@ -1,7 +1,7 @@ using Bit.Core.Models.Data; using Bit.Core.Utilities; -namespace Bit.Core.Models.Api +namespace Bit.Api.Models { public class SendTextModel { diff --git a/src/Api/Public/Controllers/CollectionsController.cs b/src/Api/Public/Controllers/CollectionsController.cs index dec2debecf..1e3b02f406 100644 --- a/src/Api/Public/Controllers/CollectionsController.cs +++ b/src/Api/Public/Controllers/CollectionsController.cs @@ -2,8 +2,9 @@ using System.Linq; using System.Net; using System.Threading.Tasks; +using Bit.Api.Models.Public.Request; +using Bit.Api.Models.Public.Response; using Bit.Core.Context; -using Bit.Core.Models.Api.Public; using Bit.Core.Repositories; using Bit.Core.Services; using Microsoft.AspNetCore.Authorization; diff --git a/src/Api/Public/Controllers/EventsController.cs b/src/Api/Public/Controllers/EventsController.cs index f7b11445c0..34642bdc67 100644 --- a/src/Api/Public/Controllers/EventsController.cs +++ b/src/Api/Public/Controllers/EventsController.cs @@ -2,8 +2,9 @@ using System.Linq; using System.Net; using System.Threading.Tasks; +using Bit.Api.Models.Public.Request; +using Bit.Api.Models.Public.Response; using Bit.Core.Context; -using Bit.Core.Models.Api.Public; using Bit.Core.Models.Data; using Bit.Core.Repositories; using Microsoft.AspNetCore.Authorization; diff --git a/src/Api/Public/Controllers/GroupsController.cs b/src/Api/Public/Controllers/GroupsController.cs index 76e3a3ec7c..e8de51caa9 100644 --- a/src/Api/Public/Controllers/GroupsController.cs +++ b/src/Api/Public/Controllers/GroupsController.cs @@ -3,8 +3,9 @@ using System.Collections.Generic; using System.Linq; using System.Net; using System.Threading.Tasks; +using Bit.Api.Models.Public.Request; +using Bit.Api.Models.Public.Response; using Bit.Core.Context; -using Bit.Core.Models.Api.Public; using Bit.Core.Repositories; using Bit.Core.Services; using Microsoft.AspNetCore.Authorization; diff --git a/src/Api/Public/Controllers/MembersController.cs b/src/Api/Public/Controllers/MembersController.cs index 2ef1a35e31..5b1ef5365e 100644 --- a/src/Api/Public/Controllers/MembersController.cs +++ b/src/Api/Public/Controllers/MembersController.cs @@ -3,8 +3,9 @@ using System.Collections.Generic; using System.Linq; using System.Net; using System.Threading.Tasks; +using Bit.Api.Models.Public.Request; +using Bit.Api.Models.Public.Response; using Bit.Core.Context; -using Bit.Core.Models.Api.Public; using Bit.Core.Models.Business; using Bit.Core.Repositories; using Bit.Core.Services; diff --git a/src/Api/Public/Controllers/OrganizationController.cs b/src/Api/Public/Controllers/OrganizationController.cs index 9399ca4d48..f804f0839d 100644 --- a/src/Api/Public/Controllers/OrganizationController.cs +++ b/src/Api/Public/Controllers/OrganizationController.cs @@ -1,9 +1,10 @@ using System.Linq; using System.Net; using System.Threading.Tasks; +using Bit.Api.Models.Public.Request; +using Bit.Api.Models.Public.Response; using Bit.Core.Context; using Bit.Core.Exceptions; -using Bit.Core.Models.Api.Public; using Bit.Core.Services; using Bit.Core.Settings; using Microsoft.AspNetCore.Authorization; diff --git a/src/Api/Public/Controllers/PoliciesController.cs b/src/Api/Public/Controllers/PoliciesController.cs index c2011ff479..6a5ac85256 100644 --- a/src/Api/Public/Controllers/PoliciesController.cs +++ b/src/Api/Public/Controllers/PoliciesController.cs @@ -2,9 +2,10 @@ using System.Linq; using System.Net; using System.Threading.Tasks; +using Bit.Api.Models.Public.Request; +using Bit.Api.Models.Public.Response; using Bit.Core.Context; using Bit.Core.Enums; -using Bit.Core.Models.Api.Public; using Bit.Core.Repositories; using Bit.Core.Services; using Microsoft.AspNetCore.Authorization; diff --git a/src/Api/Utilities/ExceptionHandlerFilterAttribute.cs b/src/Api/Utilities/ExceptionHandlerFilterAttribute.cs index 004c324907..219c9f6a82 100644 --- a/src/Api/Utilities/ExceptionHandlerFilterAttribute.cs +++ b/src/Api/Utilities/ExceptionHandlerFilterAttribute.cs @@ -1,6 +1,6 @@ using System; +using Bit.Api.Models.Public.Response; using InternalApi = Bit.Core.Models.Api; -using PublicApi = Bit.Core.Models.Api.Public; using Bit.Core.Exceptions; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; @@ -33,7 +33,7 @@ namespace Bit.Api.Utilities return; } - PublicApi.ErrorResponseModel publicErrorModel = null; + ErrorResponseModel publicErrorModel = null; InternalApi.ErrorResponseModel internalErrorModel = null; if (exception is BadRequestException badRequestException) { @@ -42,7 +42,7 @@ namespace Bit.Api.Utilities { if (_publicApi) { - publicErrorModel = new PublicApi.ErrorResponseModel(badRequestException.ModelState); + publicErrorModel = new ErrorResponseModel(badRequestException.ModelState); } else { @@ -59,7 +59,7 @@ namespace Bit.Api.Utilities context.HttpContext.Response.StatusCode = 400; if (_publicApi) { - publicErrorModel = new PublicApi.ErrorResponseModel(stripeException.StripeError.Param, + publicErrorModel = new ErrorResponseModel(stripeException.StripeError.Param, stripeException.Message); } else @@ -107,7 +107,7 @@ namespace Bit.Api.Utilities if (_publicApi) { - var errorModel = publicErrorModel ?? new PublicApi.ErrorResponseModel(errorMessage); + var errorModel = publicErrorModel ?? new ErrorResponseModel(errorMessage); context.Result = new ObjectResult(errorModel); } else diff --git a/src/Api/Utilities/ModelStateValidationFilterAttribute.cs b/src/Api/Utilities/ModelStateValidationFilterAttribute.cs index e93d954431..99c1725f89 100644 --- a/src/Api/Utilities/ModelStateValidationFilterAttribute.cs +++ b/src/Api/Utilities/ModelStateValidationFilterAttribute.cs @@ -1,8 +1,8 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using InternalApi = Bit.Core.Models.Api; -using PublicApi = Bit.Core.Models.Api.Public; using System.Linq; +using Bit.Api.Models.Public.Response; namespace Bit.Api.Utilities { @@ -27,7 +27,7 @@ namespace Bit.Api.Utilities { if (_publicApi) { - context.Result = new BadRequestObjectResult(new PublicApi.ErrorResponseModel(context.ModelState)); + context.Result = new BadRequestObjectResult(new ErrorResponseModel(context.ModelState)); } else { diff --git a/src/Api/Utilities/MultipartFormDataHelper.cs b/src/Api/Utilities/MultipartFormDataHelper.cs index b7313216f1..4f685b4c24 100644 --- a/src/Api/Utilities/MultipartFormDataHelper.cs +++ b/src/Api/Utilities/MultipartFormDataHelper.cs @@ -5,8 +5,8 @@ using Microsoft.Net.Http.Headers; using System; using System.IO; using System.Threading.Tasks; +using Bit.Api.Models.Request; using Microsoft.Extensions.Primitives; -using Bit.Core.Models.Api; using Newtonsoft.Json; namespace Bit.Api.Utilities diff --git a/src/Core/Models/Business/OrganizationUserInvite.cs b/src/Core/Models/Business/OrganizationUserInvite.cs index e8b490657e..8068495da9 100644 --- a/src/Core/Models/Business/OrganizationUserInvite.cs +++ b/src/Core/Models/Business/OrganizationUserInvite.cs @@ -1,6 +1,4 @@ using System.Collections.Generic; -using System.Linq; -using Bit.Core.Models.Api; using Bit.Core.Models.Data; namespace Bit.Core.Models.Business @@ -15,12 +13,12 @@ namespace Bit.Core.Models.Business public OrganizationUserInvite() {} - public OrganizationUserInvite(OrganizationUserInviteRequestModel requestModel) + public OrganizationUserInvite(OrganizationUserInviteData requestModel) { Emails = requestModel.Emails; - Type = requestModel.Type.Value; + Type = requestModel.Type; AccessAll = requestModel.AccessAll; - Collections = requestModel.Collections?.Select(c => c.ToSelectionReadOnly()); + Collections = requestModel.Collections; Permissions = requestModel.Permissions; } } diff --git a/src/Core/Models/Business/Provider/ProviderUserInvite.cs b/src/Core/Models/Business/Provider/ProviderUserInvite.cs index 65713554b7..fc2fe01e03 100644 --- a/src/Core/Models/Business/Provider/ProviderUserInvite.cs +++ b/src/Core/Models/Business/Provider/ProviderUserInvite.cs @@ -1,7 +1,6 @@ -using System; +using System; using System.Collections.Generic; using Bit.Core.Enums.Provider; -using Bit.Core.Models.Api; namespace Bit.Core.Models.Business.Provider { diff --git a/src/Core/Models/Data/AttachmentResponseData.cs b/src/Core/Models/Data/AttachmentResponseData.cs new file mode 100644 index 0000000000..a5eb2dc5cd --- /dev/null +++ b/src/Core/Models/Data/AttachmentResponseData.cs @@ -0,0 +1,12 @@ +using Bit.Core.Models.Table; + +namespace Bit.Core.Models.Data +{ + public class AttachmentResponseData + { + public string Id { get; set; } + public CipherAttachment.MetaData Data { get; set; } + public Cipher Cipher { get; set; } + public string Url { get; set; } + } +} diff --git a/src/Core/Models/Data/CipherCardData.cs b/src/Core/Models/Data/CipherCardData.cs index 5c85de812b..0d8745eb9e 100644 --- a/src/Core/Models/Data/CipherCardData.cs +++ b/src/Core/Models/Data/CipherCardData.cs @@ -1,22 +1,9 @@ -using Bit.Core.Models.Api; - -namespace Bit.Core.Models.Data +namespace Bit.Core.Models.Data { public class CipherCardData : CipherData { public CipherCardData() { } - public CipherCardData(CipherRequestModel cipher) - : base(cipher) - { - CardholderName = cipher.Card.CardholderName; - Brand = cipher.Card.Brand; - Number = cipher.Card.Number; - ExpMonth = cipher.Card.ExpMonth; - ExpYear = cipher.Card.ExpYear; - Code = cipher.Card.Code; - } - public string CardholderName { get; set; } public string Brand { get; set; } public string Number { get; set; } diff --git a/src/Core/Models/Data/CipherData.cs b/src/Core/Models/Data/CipherData.cs index bc6462626b..72d10d757c 100644 --- a/src/Core/Models/Data/CipherData.cs +++ b/src/Core/Models/Data/CipherData.cs @@ -1,6 +1,4 @@ using System.Collections.Generic; -using System.Linq; -using Bit.Core.Models.Api; namespace Bit.Core.Models.Data { @@ -8,14 +6,6 @@ namespace Bit.Core.Models.Data { public CipherData() { } - public CipherData(CipherRequestModel cipher) - { - Name = cipher.Name; - Notes = cipher.Notes; - Fields = cipher.Fields?.Select(f => new CipherFieldData(f)); - PasswordHistory = cipher.PasswordHistory?.Select(ph => new CipherPasswordHistoryData(ph)); - } - public string Name { get; set; } public string Notes { get; set; } public IEnumerable Fields { get; set; } diff --git a/src/Core/Models/Data/CipherFieldData.cs b/src/Core/Models/Data/CipherFieldData.cs index b67680d279..b46d16099f 100644 --- a/src/Core/Models/Data/CipherFieldData.cs +++ b/src/Core/Models/Data/CipherFieldData.cs @@ -1,5 +1,4 @@ using Bit.Core.Enums; -using Bit.Core.Models.Api; namespace Bit.Core.Models.Data { @@ -7,14 +6,6 @@ namespace Bit.Core.Models.Data { public CipherFieldData() { } - public CipherFieldData(CipherFieldModel field) - { - Type = field.Type; - Name = field.Name; - Value = field.Value; - LinkedId = field.LinkedId ?? null; - } - public FieldType Type { get; set; } public string Name { get; set; } public string Value { get; set; } diff --git a/src/Core/Models/Data/CipherIdentityData.cs b/src/Core/Models/Data/CipherIdentityData.cs index a17d3bafb6..3a5aa70e83 100644 --- a/src/Core/Models/Data/CipherIdentityData.cs +++ b/src/Core/Models/Data/CipherIdentityData.cs @@ -1,34 +1,9 @@ -using Bit.Core.Models.Api; - -namespace Bit.Core.Models.Data +namespace Bit.Core.Models.Data { public class CipherIdentityData : CipherData { public CipherIdentityData() { } - public CipherIdentityData(CipherRequestModel cipher) - : base(cipher) - { - Title = cipher.Identity.Title; - FirstName = cipher.Identity.FirstName; - MiddleName = cipher.Identity.MiddleName; - LastName = cipher.Identity.LastName; - Address1 = cipher.Identity.Address1; - Address2 = cipher.Identity.Address2; - Address3 = cipher.Identity.Address3; - City = cipher.Identity.City; - State = cipher.Identity.State; - PostalCode = cipher.Identity.PostalCode; - Country = cipher.Identity.Country; - Company = cipher.Identity.Company; - Email = cipher.Identity.Email; - Phone = cipher.Identity.Phone; - SSN = cipher.Identity.SSN; - Username = cipher.Identity.Username; - PassportNumber = cipher.Identity.PassportNumber; - LicenseNumber = cipher.Identity.LicenseNumber; - } - public string Title { get; set; } public string FirstName { get; set; } public string MiddleName { get; set; } diff --git a/src/Core/Models/Data/CipherLoginData.cs b/src/Core/Models/Data/CipherLoginData.cs index e5fa924217..c200f99e53 100644 --- a/src/Core/Models/Data/CipherLoginData.cs +++ b/src/Core/Models/Data/CipherLoginData.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.Linq; using Bit.Core.Enums; -using Bit.Core.Models.Api; namespace Bit.Core.Models.Data { @@ -12,17 +11,6 @@ namespace Bit.Core.Models.Data public CipherLoginData() { } - public CipherLoginData(CipherRequestModel cipher) - : base(cipher) - { - Uris = cipher.Login.Uris?.Where(u => u != null).Select(u => new CipherLoginUriData(u)); - Username = cipher.Login.Username; - Password = cipher.Login.Password; - PasswordRevisionDate = cipher.Login.PasswordRevisionDate; - Totp = cipher.Login.Totp; - AutofillOnPageLoad = cipher.Login.AutofillOnPageLoad; - } - public string Uri { get => Uris?.FirstOrDefault()?.Uri ?? _uri; @@ -39,12 +27,6 @@ namespace Bit.Core.Models.Data { public CipherLoginUriData() { } - public CipherLoginUriData(CipherLoginModel.CipherLoginUriModel uri) - { - Uri = uri.Uri; - Match = uri.Match; - } - public string Uri { get; set; } public UriMatchType? Match { get; set; } = null; } diff --git a/src/Core/Models/Data/CipherPasswordHistoryData.cs b/src/Core/Models/Data/CipherPasswordHistoryData.cs index ce8452cba4..a3e3426079 100644 --- a/src/Core/Models/Data/CipherPasswordHistoryData.cs +++ b/src/Core/Models/Data/CipherPasswordHistoryData.cs @@ -1,5 +1,4 @@ using System; -using Bit.Core.Models.Api; namespace Bit.Core.Models.Data { @@ -7,12 +6,6 @@ namespace Bit.Core.Models.Data { public CipherPasswordHistoryData() { } - public CipherPasswordHistoryData(CipherPasswordHistoryModel phModel) - { - Password = phModel.Password; - LastUsedDate = phModel.LastUsedDate.Value; - } - public string Password { get; set; } public DateTime LastUsedDate { get; set; } } diff --git a/src/Core/Models/Data/CipherSecureNoteData.cs b/src/Core/Models/Data/CipherSecureNoteData.cs index e7845d2bf7..1287e71dfc 100644 --- a/src/Core/Models/Data/CipherSecureNoteData.cs +++ b/src/Core/Models/Data/CipherSecureNoteData.cs @@ -1,5 +1,4 @@ using Bit.Core.Enums; -using Bit.Core.Models.Api; namespace Bit.Core.Models.Data { @@ -7,12 +6,6 @@ namespace Bit.Core.Models.Data { public CipherSecureNoteData() { } - public CipherSecureNoteData(CipherRequestModel cipher) - : base(cipher) - { - Type = cipher.SecureNote.Type; - } - public SecureNoteType Type { get; set; } } } diff --git a/src/Core/Models/Data/EmergencyAccessViewData.cs b/src/Core/Models/Data/EmergencyAccessViewData.cs new file mode 100644 index 0000000000..ee65cc60e4 --- /dev/null +++ b/src/Core/Models/Data/EmergencyAccessViewData.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; +using Bit.Core.Models.Table; +using Core.Models.Data; + +namespace Bit.Core.Models.Data +{ + public class EmergencyAccessViewData + { + public EmergencyAccess EmergencyAccess { get; set; } + public IEnumerable Ciphers { get; set; } + } +} diff --git a/src/Core/Models/Data/OrganizationUserInviteData.cs b/src/Core/Models/Data/OrganizationUserInviteData.cs new file mode 100644 index 0000000000..eb66c30888 --- /dev/null +++ b/src/Core/Models/Data/OrganizationUserInviteData.cs @@ -0,0 +1,14 @@ +using System.Collections.Generic; +using Bit.Core.Enums; + +namespace Bit.Core.Models.Data +{ + public class OrganizationUserInviteData + { + public IEnumerable Emails { get; set; } + public OrganizationUserType? Type { get; set; } + public bool AccessAll { get; set; } + public IEnumerable Collections { get; set; } + public Permissions Permissions { get; set; } + } +} diff --git a/src/Core/Models/Data/SendData.cs b/src/Core/Models/Data/SendData.cs index abb62ba7a7..956f934ba7 100644 --- a/src/Core/Models/Data/SendData.cs +++ b/src/Core/Models/Data/SendData.cs @@ -1,15 +1,13 @@ -using Bit.Core.Models.Api; - -namespace Bit.Core.Models.Data +namespace Bit.Core.Models.Data { public abstract class SendData { public SendData() { } - public SendData(SendRequestModel send) + public SendData(string name, string notes) { - Name = send.Name; - Notes = send.Notes; + Name = name; + Notes = notes; } public string Name { get; set; } diff --git a/src/Core/Models/Data/SendFileData.cs b/src/Core/Models/Data/SendFileData.cs index 0053aa2123..200cb68a75 100644 --- a/src/Core/Models/Data/SendFileData.cs +++ b/src/Core/Models/Data/SendFileData.cs @@ -1,5 +1,4 @@ using System; -using Bit.Core.Models.Api; using Newtonsoft.Json; namespace Bit.Core.Models.Data @@ -10,8 +9,8 @@ namespace Bit.Core.Models.Data public SendFileData() { } - public SendFileData(SendRequestModel send, string fileName) - : base(send) + public SendFileData(string name, string notes, string fileName) + : base(name, notes) { FileName = fileName; } diff --git a/src/Core/Models/Data/SendTextData.cs b/src/Core/Models/Data/SendTextData.cs index 900a4f53f9..0e6d301152 100644 --- a/src/Core/Models/Data/SendTextData.cs +++ b/src/Core/Models/Data/SendTextData.cs @@ -1,16 +1,14 @@ -using Bit.Core.Models.Api; - -namespace Bit.Core.Models.Data +namespace Bit.Core.Models.Data { public class SendTextData : SendData { public SendTextData() { } - public SendTextData(SendRequestModel send) - : base(send) + public SendTextData(string name, string notes, string text, bool hidden) + : base(name, notes) { - Text = send.Text.Text; - Hidden = send.Text.Hidden; + Text = text; + Hidden = hidden; } public string Text { get; set; } diff --git a/src/Core/Services/ICipherService.cs b/src/Core/Services/ICipherService.cs index cdbd32e987..fa6b9080ee 100644 --- a/src/Core/Services/ICipherService.cs +++ b/src/Core/Services/ICipherService.cs @@ -4,7 +4,6 @@ using Bit.Core.Models.Table; using Core.Models.Data; using System; using System.IO; -using Bit.Core.Models.Api; using Bit.Core.Models.Data; namespace Bit.Core.Services @@ -16,7 +15,7 @@ namespace Bit.Core.Services Task SaveDetailsAsync(CipherDetails cipher, Guid savingUserId, DateTime? lastKnownRevisionDate, IEnumerable collectionIds = null, bool skipPermissionCheck = false); Task<(string attachmentId, string uploadUrl)> CreateAttachmentForDelayedUploadAsync(Cipher cipher, - AttachmentRequestModel request, Guid savingUserId); + string key, string fileName, long fileSize, bool adminRequest, Guid savingUserId); Task CreateAttachmentAsync(Cipher cipher, Stream stream, string fileName, string key, long requestLength, Guid savingUserId, bool orgAdmin = false); Task CreateAttachmentShareAsync(Cipher cipher, Stream stream, long requestLength, string attachmentId, @@ -42,7 +41,7 @@ namespace Bit.Core.Services Task RestoreAsync(Cipher cipher, Guid restoringUserId, bool orgAdmin = false); Task RestoreManyAsync(IEnumerable ciphers, Guid restoringUserId); Task UploadFileForExistingAttachmentAsync(Stream stream, Cipher cipher, CipherAttachment.MetaData attachmentId); - Task GetAttachmentDownloadDataAsync(Cipher cipher, string attachmentId); + Task GetAttachmentDownloadDataAsync(Cipher cipher, string attachmentId); Task ValidateCipherAttachmentFile(Cipher cipher, CipherAttachment.MetaData attachmentData); } } diff --git a/src/Core/Services/IEmergencyAccessService.cs b/src/Core/Services/IEmergencyAccessService.cs index a8042e89a7..6d66ed4c8a 100644 --- a/src/Core/Services/IEmergencyAccessService.cs +++ b/src/Core/Services/IEmergencyAccessService.cs @@ -2,8 +2,6 @@ using System.Collections.Generic; using System.Threading.Tasks; using Bit.Core.Enums; -using Bit.Core.Models.Api; -using Bit.Core.Models.Api.Response; using Bit.Core.Models.Data; using Bit.Core.Models.Table; @@ -26,7 +24,7 @@ namespace Bit.Core.Services Task PasswordAsync(Guid id, User user, string newMasterPasswordHash, string key); Task SendNotificationsAsync(); Task HandleTimedOutRequestsAsync(); - Task ViewAsync(Guid id, User user); - Task GetAttachmentDownloadAsync(Guid id, string cipherId, string attachmentId, User user); + Task ViewAsync(Guid id, User user); + Task GetAttachmentDownloadAsync(Guid id, string cipherId, string attachmentId, User user); } } diff --git a/src/Core/Services/IOrganizationService.cs b/src/Core/Services/IOrganizationService.cs index c5705bc57a..cde8738829 100644 --- a/src/Core/Services/IOrganizationService.cs +++ b/src/Core/Services/IOrganizationService.cs @@ -4,7 +4,6 @@ using Bit.Core.Models.Table; using System; using System.Collections.Generic; using Bit.Core.Enums; -using Bit.Core.Models.Api; using Bit.Core.Models.Data; namespace Bit.Core.Services diff --git a/src/Core/Services/Implementations/CipherService.cs b/src/Core/Services/Implementations/CipherService.cs index 5ffb7ae893..a85ae2a746 100644 --- a/src/Core/Services/Implementations/CipherService.cs +++ b/src/Core/Services/Implementations/CipherService.cs @@ -12,7 +12,6 @@ using System.IO; using Bit.Core.Enums; using Bit.Core.Utilities; using Bit.Core.Settings; -using Bit.Core.Models.Api; using Bit.Core.Models.Business; namespace Bit.Core.Services @@ -187,17 +186,17 @@ namespace Bit.Core.Services } public async Task<(string attachmentId, string uploadUrl)> CreateAttachmentForDelayedUploadAsync(Cipher cipher, - AttachmentRequestModel request, Guid savingUserId) + string key, string fileName, long fileSize, bool adminRequest, Guid savingUserId) { - await ValidateCipherEditForAttachmentAsync(cipher, savingUserId, request.AdminRequest, request.FileSize); + await ValidateCipherEditForAttachmentAsync(cipher, savingUserId, adminRequest, fileSize); var attachmentId = Utilities.CoreHelpers.SecureRandomString(32, upper: false, special: false); var data = new CipherAttachment.MetaData { AttachmentId = attachmentId, - FileName = request.FileName, - Key = request.Key, - Size = request.FileSize, + FileName = fileName, + Key = key, + Size = fileSize, Validated = false, }; @@ -357,7 +356,7 @@ namespace Bit.Core.Services return valid; } - public async Task GetAttachmentDownloadDataAsync(Cipher cipher, string attachmentId) + public async Task GetAttachmentDownloadDataAsync(Cipher cipher, string attachmentId) { var attachments = cipher?.GetAttachments() ?? new Dictionary(); @@ -367,9 +366,12 @@ namespace Bit.Core.Services } var data = attachments[attachmentId]; - var response = new AttachmentResponseModel(attachmentId, data, cipher, _globalSettings) + var response = new AttachmentResponseData { - Url = await _attachmentStorageService.GetAttachmentDownloadUrlAsync(cipher, data) + Cipher = cipher, + Data = data, + Id = attachmentId, + Url = await _attachmentStorageService.GetAttachmentDownloadUrlAsync(cipher, data), }; return response; diff --git a/src/Core/Services/Implementations/EmergencyAccessService.cs b/src/Core/Services/Implementations/EmergencyAccessService.cs index a647c07717..28ff8e66cc 100644 --- a/src/Core/Services/Implementations/EmergencyAccessService.cs +++ b/src/Core/Services/Implementations/EmergencyAccessService.cs @@ -5,7 +5,6 @@ using System.Threading.Tasks; using Bit.Core.Enums; using Bit.Core.Exceptions; using Bit.Core.Models; -using Bit.Core.Models.Api.Response; using Bit.Core.Models.Data; using Bit.Core.Models.Table; using Bit.Core.Repositories; @@ -13,7 +12,6 @@ using Bit.Core.Utilities; using Bit.Core.Settings; using Microsoft.AspNetCore.DataProtection; using Microsoft.AspNetCore.Identity; -using Bit.Core.Models.Api; namespace Bit.Core.Services { @@ -372,7 +370,7 @@ namespace Bit.Core.Services } } - public async Task ViewAsync(Guid id, User requestingUser) + public async Task ViewAsync(Guid id, User requestingUser) { var emergencyAccess = await _emergencyAccessRepository.GetByIdAsync(id); @@ -380,13 +378,16 @@ namespace Bit.Core.Services { throw new BadRequestException("Emergency Access not valid."); } - + var ciphers = await _cipherRepository.GetManyByUserIdAsync(emergencyAccess.GrantorId, false); - - return new EmergencyAccessViewResponseModel(_globalSettings, emergencyAccess, ciphers); + + return new EmergencyAccessViewData { + EmergencyAccess = emergencyAccess, + Ciphers = ciphers, + }; } - public async Task GetAttachmentDownloadAsync(Guid id, string cipherId, string attachmentId, User requestingUser) + public async Task GetAttachmentDownloadAsync(Guid id, string cipherId, string attachmentId, User requestingUser) { var emergencyAccess = await _emergencyAccessRepository.GetByIdAsync(id); diff --git a/src/Core/Services/Implementations/RelayPushNotificationService.cs b/src/Core/Services/Implementations/RelayPushNotificationService.cs index 2ff284d2d0..ec492a0ab3 100644 --- a/src/Core/Services/Implementations/RelayPushNotificationService.cs +++ b/src/Core/Services/Implementations/RelayPushNotificationService.cs @@ -6,9 +6,9 @@ using Bit.Core.Enums; using Microsoft.AspNetCore.Http; using Bit.Core.Models; using System.Net.Http; -using Bit.Core.Models.Api; using Microsoft.Extensions.Logging; using System.Collections.Generic; +using Bit.Core.Models.Api; using Bit.Core.Repositories; using Bit.Core.Settings; diff --git a/src/Core/Services/Implementations/RelayPushRegistrationService.cs b/src/Core/Services/Implementations/RelayPushRegistrationService.cs index 4961a20bb6..2c589be16e 100644 --- a/src/Core/Services/Implementations/RelayPushRegistrationService.cs +++ b/src/Core/Services/Implementations/RelayPushRegistrationService.cs @@ -1,10 +1,10 @@ using System.Collections.Generic; using System.Threading.Tasks; using System.Net.Http; -using Bit.Core.Models.Api; using Bit.Core.Enums; using Bit.Core.Settings; using System.Linq; +using Bit.Core.Models.Api; using Microsoft.Extensions.Logging; namespace Bit.Core.Services diff --git a/src/Core/Utilities/CaptchaProtectedAttribute.cs b/src/Core/Utilities/CaptchaProtectedAttribute.cs index 02d644e533..dec7bd7aff 100644 --- a/src/Core/Utilities/CaptchaProtectedAttribute.cs +++ b/src/Core/Utilities/CaptchaProtectedAttribute.cs @@ -1,7 +1,7 @@ using Bit.Core.Context; using Bit.Core.Exceptions; -using Bit.Core.Services; using Bit.Core.Models.Api; +using Bit.Core.Services; using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.Extensions.DependencyInjection; diff --git a/src/Core/Utilities/CustomIpRateLimitMiddleware.cs b/src/Core/Utilities/CustomIpRateLimitMiddleware.cs index 125bdb2e1b..c7d31f64d8 100644 --- a/src/Core/Utilities/CustomIpRateLimitMiddleware.cs +++ b/src/Core/Utilities/CustomIpRateLimitMiddleware.cs @@ -1,5 +1,4 @@ using AspNetCoreRateLimit; -using Bit.Core.Models.Api; using Bit.Core.Services; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Caching.Memory; @@ -8,6 +7,7 @@ using Microsoft.Extensions.Options; using Newtonsoft.Json; using System.Threading.Tasks; using System; +using Bit.Core.Models.Api; namespace Bit.Core.Utilities { diff --git a/src/Identity/Controllers/AccountController.cs b/src/Identity/Controllers/AccountController.cs index 5018ba2275..57e7d9a106 100644 --- a/src/Identity/Controllers/AccountController.cs +++ b/src/Identity/Controllers/AccountController.cs @@ -1,7 +1,5 @@ -using Bit.Core.Models.Api; -using Bit.Core.Models.Table; +using Bit.Core.Models.Table; using Bit.Core.Repositories; -using Bit.Core.Services; using Bit.Identity.Models; using IdentityModel; using IdentityServer4; @@ -9,7 +7,6 @@ using IdentityServer4.Services; using IdentityServer4.Stores; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Http.Features; using Microsoft.AspNetCore.Localization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; @@ -19,6 +16,7 @@ using System.Linq; using System.Net.Http; using System.Security.Claims; using System.Threading.Tasks; +using Bit.Core.Models.Api; namespace Bit.Identity.Controllers { diff --git a/test/Api.Test/Controllers/AccountsControllerTests.cs b/test/Api.Test/Controllers/AccountsControllerTests.cs index a64fddc4f9..365cb4917e 100644 --- a/test/Api.Test/Controllers/AccountsControllerTests.cs +++ b/test/Api.Test/Controllers/AccountsControllerTests.cs @@ -2,7 +2,6 @@ using Bit.Api.Controllers; using Bit.Core; using Bit.Core.Enums; using Bit.Core.Exceptions; -using Bit.Core.Models.Api; using Bit.Core.Models.Data; using Bit.Core.Models.Table; using Bit.Core.Repositories; @@ -13,6 +12,7 @@ using NSubstitute; using System; using System.Security.Claims; using System.Threading.Tasks; +using Bit.Api.Models.Request.Accounts; using Xunit; namespace Bit.Api.Test.Controllers diff --git a/test/Api.Test/Controllers/OrganizationSponsorshipsControllerTests.cs b/test/Api.Test/Controllers/OrganizationSponsorshipsControllerTests.cs index b0d832de3d..3c97499c64 100644 --- a/test/Api.Test/Controllers/OrganizationSponsorshipsControllerTests.cs +++ b/test/Api.Test/Controllers/OrganizationSponsorshipsControllerTests.cs @@ -8,14 +8,13 @@ using System.Collections.Generic; using Bit.Core.Models.Table; using Bit.Test.Common.AutoFixture; using Bit.Api.Controllers; +using Bit.Api.Models.Request.Organizations; using Bit.Core.Context; using NSubstitute; using Bit.Core.Exceptions; using Bit.Api.Test.AutoFixture.Attributes; using Bit.Core.Repositories; -using Bit.Core.Models.Api.Request; using Bit.Core.Services; -using Bit.Core.Models.Api; using Bit.Core.Utilities; namespace Bit.Api.Test.Controllers diff --git a/test/Api.Test/Controllers/SendsControllerTests.cs b/test/Api.Test/Controllers/SendsControllerTests.cs index a1595ec91c..0b2c8fa74c 100644 --- a/test/Api.Test/Controllers/SendsControllerTests.cs +++ b/test/Api.Test/Controllers/SendsControllerTests.cs @@ -2,7 +2,6 @@ using AutoFixture.Xunit2; using Bit.Api.Controllers; using Bit.Core.Context; using Bit.Core.Enums; -using Bit.Core.Models.Api; using Bit.Core.Models.Table; using Bit.Core.Repositories; using Bit.Core.Services; @@ -15,6 +14,8 @@ using NSubstitute; using System.Collections.Generic; using System.Threading.Tasks; using System; +using Bit.Api.Models.Request; +using Bit.Api.Models.Response; using Xunit; namespace Bit.Api.Test.Controllers