using System.ComponentModel.DataAnnotations; using Bit.Core.Entities; using Bit.Core.Enums; using Bit.Core.NotificationHub; using Bit.Core.Utilities; namespace Bit.Api.Models.Request; public class DeviceRequestModel { [Required] public DeviceType? Type { get; set; } [Required] [StringLength(50)] public string Name { get; set; } [Required] [StringLength(50)] public string Identifier { get; set; } [StringLength(255)] public string PushToken { get; set; } public Device ToDevice(Guid? userId = null) { return ToDevice(new Device { UserId = userId == null ? default(Guid) : userId.Value }); } public Device ToDevice(Device existingDevice) { existingDevice.Name = Name; existingDevice.Identifier = Identifier; existingDevice.PushToken = PushToken; existingDevice.Type = Type.Value; return existingDevice; } } public class WebPushAuthRequestModel { [Required] public string Endpoint { get; set; } [Required] public string P256dh { get; set; } [Required] public string Auth { get; set; } public WebPushRegistrationData ToData() { return new WebPushRegistrationData { Endpoint = Endpoint, P256dh = P256dh, Auth = Auth }; } } public class DeviceTokenRequestModel { [StringLength(255)] public string PushToken { get; set; } public Device ToDevice(Device existingDevice) { existingDevice.PushToken = PushToken; return existingDevice; } } public class DeviceKeysRequestModel { /// [Required] [EncryptedString] public string EncryptedUserKey { get; set; } /// [Required] [EncryptedString] public string EncryptedPublicKey { get; set; } /// [Required] [EncryptedString] public string EncryptedPrivateKey { get; set; } public Device ToDevice(Device existingDevice) { existingDevice.EncryptedUserKey = EncryptedUserKey; existingDevice.EncryptedPublicKey = EncryptedPublicKey; existingDevice.EncryptedPrivateKey = EncryptedPrivateKey; return existingDevice; } }