2023-01-24 19:57:28 +01:00
|
|
|
|
using Bit.Core.Models.Api;
|
|
|
|
|
|
using Bit.Core.SecretsManager.Entities;
|
2023-03-30 16:51:46 +02:00
|
|
|
|
using Bit.Core.SecretsManager.Models.Data;
|
2023-01-13 15:02:53 +01:00
|
|
|
|
|
2023-01-24 19:57:28 +01:00
|
|
|
|
namespace Bit.Api.SecretsManager.Models.Response;
|
2023-01-13 15:02:53 +01:00
|
|
|
|
|
|
|
|
|
|
public class SecretWithProjectsListResponseModel : ResponseModel
|
|
|
|
|
|
{
|
2023-01-19 15:20:59 -06:00
|
|
|
|
private const string _objectName = "SecretsWithProjectsList";
|
|
|
|
|
|
|
2023-03-30 16:51:46 +02:00
|
|
|
|
public SecretWithProjectsListResponseModel(IEnumerable<SecretPermissionDetails> secrets) : base(_objectName)
|
2023-01-13 15:02:53 +01:00
|
|
|
|
{
|
2023-07-14 17:18:26 +02:00
|
|
|
|
Secrets = secrets.Select(s => new SecretsWithProjectsInnerSecret(s));
|
|
|
|
|
|
Projects = secrets.SelectMany(s => s.Secret.Projects).DistinctBy(p => p.Id).Select(p => new SecretWithProjectsInnerProject(p));
|
2023-01-13 15:02:53 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
2023-01-19 15:20:59 -06:00
|
|
|
|
public SecretWithProjectsListResponseModel() : base(_objectName)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-07-14 17:18:26 +02:00
|
|
|
|
public IEnumerable<SecretsWithProjectsInnerSecret> Secrets { get; set; }
|
|
|
|
|
|
public IEnumerable<SecretWithProjectsInnerProject> Projects { get; set; }
|
2023-01-13 15:02:53 +01:00
|
|
|
|
|
2023-07-14 17:18:26 +02:00
|
|
|
|
public class SecretWithProjectsInnerProject
|
2023-01-13 15:02:53 +01:00
|
|
|
|
{
|
2023-07-14 17:18:26 +02:00
|
|
|
|
public SecretWithProjectsInnerProject(Project project)
|
2023-01-13 15:02:53 +01:00
|
|
|
|
{
|
|
|
|
|
|
Id = project.Id;
|
|
|
|
|
|
Name = project.Name;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-07-14 17:18:26 +02:00
|
|
|
|
public SecretWithProjectsInnerProject()
|
2023-01-19 15:20:59 -06:00
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-01-13 15:02:53 +01:00
|
|
|
|
public Guid Id { get; set; }
|
|
|
|
|
|
public string Name { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-07-14 17:18:26 +02:00
|
|
|
|
public class SecretsWithProjectsInnerSecret
|
2023-01-13 15:02:53 +01:00
|
|
|
|
{
|
2023-07-14 17:18:26 +02:00
|
|
|
|
public SecretsWithProjectsInnerSecret(SecretPermissionDetails secret)
|
2023-01-13 15:02:53 +01:00
|
|
|
|
{
|
2023-07-14 17:18:26 +02:00
|
|
|
|
Id = secret.Secret.Id;
|
|
|
|
|
|
OrganizationId = secret.Secret.OrganizationId;
|
2023-03-30 16:51:46 +02:00
|
|
|
|
Key = secret.Secret.Key;
|
|
|
|
|
|
CreationDate = secret.Secret.CreationDate;
|
|
|
|
|
|
RevisionDate = secret.Secret.RevisionDate;
|
2023-07-14 17:18:26 +02:00
|
|
|
|
Projects = secret.Secret.Projects?.Select(p => new SecretWithProjectsInnerProject(p));
|
2023-03-30 16:51:46 +02:00
|
|
|
|
Read = secret.Read;
|
|
|
|
|
|
Write = secret.Write;
|
2023-01-13 15:02:53 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
2023-07-14 17:18:26 +02:00
|
|
|
|
public SecretsWithProjectsInnerSecret()
|
2023-01-19 15:20:59 -06:00
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-07-14 17:18:26 +02:00
|
|
|
|
public Guid Id { get; set; }
|
2023-01-13 15:02:53 +01:00
|
|
|
|
|
2023-07-14 17:18:26 +02:00
|
|
|
|
public Guid OrganizationId { get; set; }
|
2023-01-13 15:02:53 +01:00
|
|
|
|
|
|
|
|
|
|
public string Key { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public DateTime CreationDate { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public DateTime RevisionDate { get; set; }
|
|
|
|
|
|
|
2023-07-14 17:18:26 +02:00
|
|
|
|
public IEnumerable<SecretWithProjectsInnerProject> Projects { get; set; }
|
2023-03-30 16:51:46 +02:00
|
|
|
|
public bool Read { get; set; }
|
|
|
|
|
|
public bool Write { get; set; }
|
2023-01-13 15:02:53 +01:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|