1
0
mirror of https://github.com/bitwarden/server synced 2025-12-10 13:23:27 +00:00
Files
server/src/Core/AdminConsole/OrganizationFeatures/OrganizationConnections/UpdateOrganizationConnectionCommand.cs

38 lines
1.4 KiB
C#

using Bit.Core.AdminConsole.OrganizationFeatures.OrganizationConnections.Interfaces;
using Bit.Core.Entities;
using Bit.Core.Exceptions;
using Bit.Core.Models.Data.Organizations.OrganizationConnections;
using Bit.Core.Models.OrganizationConnectionConfigs;
using Bit.Core.Repositories;
namespace Bit.Core.AdminConsole.OrganizationFeatures.OrganizationConnections;
public class UpdateOrganizationConnectionCommand : IUpdateOrganizationConnectionCommand
{
private readonly IOrganizationConnectionRepository _organizationConnectionRepository;
public UpdateOrganizationConnectionCommand(IOrganizationConnectionRepository organizationConnectionRepository)
{
_organizationConnectionRepository = organizationConnectionRepository;
}
public async Task<OrganizationConnection> UpdateAsync<T>(OrganizationConnectionData<T> connectionData) where T : IConnectionConfig
{
if (!connectionData.Id.HasValue)
{
throw new Exception("Cannot update connection, Connection does not exist.");
}
var connection = await _organizationConnectionRepository.GetByIdAsync(connectionData.Id.Value);
if (connection == null)
{
throw new NotFoundException();
}
var entity = connectionData.ToEntity();
await _organizationConnectionRepository.UpsertAsync(entity);
return entity;
}
}