using System; using System.Collections.Generic; using System.Linq; using Bit.Core.Models.Data; using Bit.Core.Models.Table; using Bit.Core.Settings; using Core.Models.Data; namespace Bit.Core.Models.Api { public class SyncResponseModel : ResponseModel { public SyncResponseModel( GlobalSettings globalSettings, User user, bool userTwoFactorEnabled, IEnumerable organizationUserDetails, IEnumerable providerUserDetails, IEnumerable providerUserOrganizationDetails, IEnumerable folders, IEnumerable collections, IEnumerable ciphers, IDictionary> collectionCiphersDict, bool excludeDomains, IEnumerable policies, IEnumerable sends) : base("sync") { Profile = new ProfileResponseModel(user, organizationUserDetails, providerUserDetails, providerUserOrganizationDetails, userTwoFactorEnabled); Folders = folders.Select(f => new FolderResponseModel(f)); Ciphers = ciphers.Select(c => new CipherDetailsResponseModel(c, globalSettings, collectionCiphersDict)); Collections = collections?.Select( c => new CollectionDetailsResponseModel(c)) ?? new List(); Domains = excludeDomains ? null : new DomainsResponseModel(user, false); Policies = policies?.Select(p => new PolicyResponseModel(p)) ?? new List(); Sends = sends.Select(s => new SendResponseModel(s, globalSettings)); } public ProfileResponseModel Profile { get; set; } public IEnumerable Folders { get; set; } public IEnumerable Collections { get; set; } public IEnumerable Ciphers { get; set; } public DomainsResponseModel Domains { get; set; } public IEnumerable Policies { get; set; } public IEnumerable Sends { get; set; } } }