mirror of
https://github.com/bitwarden/server
synced 2025-12-28 14:13:48 +00:00
[PM-17562] Add GET endpoints for event integrations (#6104)
* [PM-17562] Add GET endpoints for event integrations * Default to null for Service * Respond to PR Feedback
This commit is contained in:
@@ -3,6 +3,7 @@ using Bit.Core.Enums;
|
||||
using Bit.Core.Models.Data.Organizations;
|
||||
using Bit.Core.Repositories;
|
||||
using Bit.Infrastructure.EntityFramework.AdminConsole.Models;
|
||||
using Bit.Infrastructure.EntityFramework.AdminConsole.Repositories.Queries;
|
||||
using Bit.Infrastructure.EntityFramework.Repositories;
|
||||
using Bit.Infrastructure.EntityFramework.Repositories.Queries;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
@@ -40,4 +41,17 @@ public class OrganizationIntegrationConfigurationRepository : Repository<Core.Ad
|
||||
return await query.Run(dbContext).ToListAsync();
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<List<Core.AdminConsole.Entities.OrganizationIntegrationConfiguration>> GetManyByIntegrationAsync(
|
||||
Guid organizationIntegrationId)
|
||||
{
|
||||
using (var scope = ServiceScopeFactory.CreateScope())
|
||||
{
|
||||
var dbContext = GetDatabaseContext(scope);
|
||||
var query = new OrganizationIntegrationConfigurationReadManyByOrganizationIntegrationIdQuery(
|
||||
organizationIntegrationId
|
||||
);
|
||||
return await query.Run(dbContext).ToListAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +1,29 @@
|
||||
using AutoMapper;
|
||||
using Bit.Core.Repositories;
|
||||
using Bit.Infrastructure.EntityFramework.AdminConsole.Models;
|
||||
using Bit.Infrastructure.EntityFramework.AdminConsole.Repositories.Queries;
|
||||
using Bit.Infrastructure.EntityFramework.Repositories;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace Bit.Infrastructure.EntityFramework.AdminConsole.Repositories;
|
||||
|
||||
public class OrganizationIntegrationRepository : Repository<Core.AdminConsole.Entities.OrganizationIntegration, OrganizationIntegration, Guid>, IOrganizationIntegrationRepository
|
||||
public class OrganizationIntegrationRepository :
|
||||
Repository<Core.AdminConsole.Entities.OrganizationIntegration, OrganizationIntegration, Guid>,
|
||||
IOrganizationIntegrationRepository
|
||||
{
|
||||
public OrganizationIntegrationRepository(IServiceScopeFactory serviceScopeFactory, IMapper mapper)
|
||||
: base(serviceScopeFactory, mapper, (DatabaseContext context) => context.OrganizationIntegrations)
|
||||
{ }
|
||||
{
|
||||
}
|
||||
|
||||
public async Task<List<Core.AdminConsole.Entities.OrganizationIntegration>> GetManyByOrganizationAsync(Guid organizationId)
|
||||
{
|
||||
using (var scope = ServiceScopeFactory.CreateScope())
|
||||
{
|
||||
var dbContext = GetDatabaseContext(scope);
|
||||
var query = new OrganizationIntegrationReadManyByOrganizationIdQuery(organizationId);
|
||||
return await query.Run(dbContext).ToListAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
using Bit.Core.AdminConsole.Entities;
|
||||
using Bit.Infrastructure.EntityFramework.Repositories;
|
||||
using Bit.Infrastructure.EntityFramework.Repositories.Queries;
|
||||
|
||||
namespace Bit.Infrastructure.EntityFramework.AdminConsole.Repositories.Queries;
|
||||
|
||||
public class OrganizationIntegrationConfigurationReadManyByOrganizationIntegrationIdQuery : IQuery<OrganizationIntegrationConfiguration>
|
||||
{
|
||||
private readonly Guid _organizationIntegrationId;
|
||||
|
||||
public OrganizationIntegrationConfigurationReadManyByOrganizationIntegrationIdQuery(Guid organizationIntegrationId)
|
||||
{
|
||||
_organizationIntegrationId = organizationIntegrationId;
|
||||
}
|
||||
|
||||
public IQueryable<OrganizationIntegrationConfiguration> Run(DatabaseContext dbContext)
|
||||
{
|
||||
var query = from oic in dbContext.OrganizationIntegrationConfigurations
|
||||
where oic.OrganizationIntegrationId == _organizationIntegrationId
|
||||
select new OrganizationIntegrationConfiguration()
|
||||
{
|
||||
Id = oic.Id,
|
||||
OrganizationIntegrationId = oic.OrganizationIntegrationId,
|
||||
Configuration = oic.Configuration,
|
||||
EventType = oic.EventType,
|
||||
Filters = oic.Filters,
|
||||
Template = oic.Template,
|
||||
RevisionDate = oic.RevisionDate
|
||||
};
|
||||
return query;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
using Bit.Core.AdminConsole.Entities;
|
||||
using Bit.Infrastructure.EntityFramework.Repositories;
|
||||
using Bit.Infrastructure.EntityFramework.Repositories.Queries;
|
||||
|
||||
namespace Bit.Infrastructure.EntityFramework.AdminConsole.Repositories.Queries;
|
||||
|
||||
public class OrganizationIntegrationReadManyByOrganizationIdQuery : IQuery<OrganizationIntegration>
|
||||
{
|
||||
private readonly Guid _organizationId;
|
||||
|
||||
public OrganizationIntegrationReadManyByOrganizationIdQuery(Guid organizationId)
|
||||
{
|
||||
_organizationId = organizationId;
|
||||
}
|
||||
|
||||
public IQueryable<OrganizationIntegration> Run(DatabaseContext dbContext)
|
||||
{
|
||||
var query = from oi in dbContext.OrganizationIntegrations
|
||||
where oi.OrganizationId == _organizationId
|
||||
select new OrganizationIntegration()
|
||||
{
|
||||
Id = oi.Id,
|
||||
OrganizationId = oi.OrganizationId,
|
||||
Type = oi.Type,
|
||||
Configuration = oi.Configuration,
|
||||
};
|
||||
return query;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user