1
0
mirror of https://github.com/bitwarden/server.git synced 2025-04-23 22:15:10 -05:00
bitwarden/src/Infrastructure.EntityFramework/Repositories/OrganizationApiKeyRepository.cs
2022-08-29 16:06:55 -04:00

30 lines
1.1 KiB
C#

using AutoMapper;
using Bit.Core.Entities;
using Bit.Core.Enums;
using Bit.Core.Repositories;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
namespace Bit.Infrastructure.EntityFramework.Repositories;
public class OrganizationApiKeyRepository : Repository<OrganizationApiKey, Models.OrganizationApiKey, Guid>, IOrganizationApiKeyRepository
{
public OrganizationApiKeyRepository(IServiceScopeFactory serviceScopeFactory, IMapper mapper)
: base(serviceScopeFactory, mapper, db => db.OrganizationApiKeys)
{
}
public async Task<IEnumerable<OrganizationApiKey>> GetManyByOrganizationIdTypeAsync(Guid organizationId, OrganizationApiKeyType? type = null)
{
using (var scope = ServiceScopeFactory.CreateScope())
{
var dbContext = GetDatabaseContext(scope);
var apiKeys = await dbContext.OrganizationApiKeys
.Where(o => o.OrganizationId == organizationId && (type == null || o.Type == type))
.ToListAsync();
return Mapper.Map<List<OrganizationApiKey>>(apiKeys);
}
}
}