1
0
mirror of https://github.com/bitwarden/server.git synced 2025-04-08 14:38:15 -05:00

use EventTableEntity instead of TableEntity

This commit is contained in:
Kyle Spearrin 2017-12-08 14:03:07 -05:00
parent f898b92f87
commit c01fd359f0
14 changed files with 34 additions and 35 deletions

View File

@ -14,20 +14,20 @@ namespace Bit.Core.Models.Data
CipherId = cipher.Id;
Type = (int)type;
ActingUserId = actingUserId;
Date = DateTime.UtcNow;
Timestamp = DateTime.UtcNow;
if(OrganizationId.HasValue)
{
UserId = null;
PartitionKey = $"OrganizationId={OrganizationId}";
RowKey = string.Format("Date={0}__CipherId={1}__ActingUserId={2}__Type={3}",
CoreHelpers.DateTimeToTableStorageKey(Timestamp.DateTime), CipherId, ActingUserId, Type);
CoreHelpers.DateTimeToTableStorageKey(Date), CipherId, ActingUserId, Type);
}
else
{
PartitionKey = $"UserId={UserId}";
RowKey = string.Format("Date={0}__CipherId={1}__Type={2}",
CoreHelpers.DateTimeToTableStorageKey(Timestamp.DateTime), CipherId, Type);
CoreHelpers.DateTimeToTableStorageKey(Date), CipherId, Type);
}
}
}

View File

@ -13,11 +13,11 @@ namespace Bit.Core.Models.Data
CollectionId = collection.Id;
Type = (int)type;
ActingUserId = actingUserId;
Date = DateTime.UtcNow;
Timestamp = DateTime.UtcNow;
PartitionKey = $"OrganizationId={OrganizationId}";
RowKey = string.Format("Date={0}__ActingUserId={1}__Type={2}",
CoreHelpers.DateTimeToTableStorageKey(Timestamp.DateTime), ActingUserId, Type);
CoreHelpers.DateTimeToTableStorageKey(Date), ActingUserId, Type);
}
}
}

View File

@ -6,6 +6,7 @@ namespace Bit.Core.Models.Data
{
public class EventTableEntity : TableEntity
{
public DateTime Date { get; set; }
public int Type { get; set; }
public Guid? UserId { get; set; }
public Guid? OrganizationId { get; set; }

View File

@ -13,11 +13,11 @@ namespace Bit.Core.Models.Data
GroupId = group.Id;
Type = (int)type;
ActingUserId = actingUserId;
Date = DateTime.UtcNow;
Timestamp = DateTime.UtcNow;
PartitionKey = $"OrganizationId={OrganizationId}";
RowKey = string.Format("Date={0}__ActingUserId={1}__Type={2}",
CoreHelpers.DateTimeToTableStorageKey(Timestamp.DateTime), ActingUserId, Type);
CoreHelpers.DateTimeToTableStorageKey(Date), ActingUserId, Type);
}
}
}

View File

@ -12,11 +12,11 @@ namespace Bit.Core.Models.Data
OrganizationId = organization.Id;
Type = (int)type;
ActingUserId = actingUserId;
Date = DateTime.UtcNow;
Timestamp = DateTime.UtcNow;
PartitionKey = $"OrganizationId={OrganizationId}";
RowKey = string.Format("Date={0}__ActingUserId={1}__Type={2}",
CoreHelpers.DateTimeToTableStorageKey(Timestamp.DateTime), ActingUserId, Type);
CoreHelpers.DateTimeToTableStorageKey(Date), ActingUserId, Type);
}
}
}

View File

@ -14,11 +14,11 @@ namespace Bit.Core.Models.Data
OrganizationUserId = organizationUser.Id;
Type = (int)type;
ActingUserId = actingUserId;
Date = DateTime.UtcNow;
Timestamp = DateTime.UtcNow;
PartitionKey = $"OrganizationId={OrganizationId}";
RowKey = string.Format("Date={0}__ActingUserId={1}__Type={2}",
CoreHelpers.DateTimeToTableStorageKey(Timestamp.DateTime), ActingUserId, Type);
CoreHelpers.DateTimeToTableStorageKey(Date), ActingUserId, Type);
}
}
}

View File

@ -10,11 +10,11 @@ namespace Bit.Core.Models.Data
{
UserId = userId;
Type = (int)type;
Date = DateTime.UtcNow;
Timestamp = DateTime.UtcNow;
PartitionKey = $"UserId={UserId}";
RowKey = string.Format("Date={0}__Type={1}",
CoreHelpers.DateTimeToTableStorageKey(Timestamp.DateTime), Type);
CoreHelpers.DateTimeToTableStorageKey(Date), Type);
}
public UserEvent(Guid userId, Guid organizationId, EventType type)
@ -22,11 +22,11 @@ namespace Bit.Core.Models.Data
OrganizationId = organizationId;
UserId = userId;
Type = (int)type;
Timestamp = DateTime.UtcNow;
Date = DateTime.UtcNow;
PartitionKey = $"OrganizationId={OrganizationId}";
RowKey = string.Format("Date={0}__UserId={1}__Type={2}",
CoreHelpers.DateTimeToTableStorageKey(Timestamp.DateTime), UserId, Type);
CoreHelpers.DateTimeToTableStorageKey(Date), UserId, Type);
}
}
}

View File

@ -2,14 +2,13 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Bit.Core.Models.Data;
using Microsoft.WindowsAzure.Storage.Table;
namespace Bit.Core.Repositories
{
public interface IEventRepository
{
Task<ICollection<EventTableEntity>> GetManyByUserAsync(Guid userId, DateTime startDate, DateTime endDate);
Task CreateAsync(ITableEntity entity);
Task CreateManyAsync(IList<ITableEntity> entities);
Task CreateAsync(EventTableEntity entity);
Task CreateManyAsync(IList<EventTableEntity> entities);
}
}

View File

@ -49,12 +49,12 @@ namespace Bit.Core.Repositories.TableStorage
return results;
}
public async Task CreateAsync(ITableEntity entity)
public async Task CreateAsync(EventTableEntity entity)
{
await Table.ExecuteAsync(TableOperation.Insert(entity));
}
public async Task CreateManyAsync(IList<ITableEntity> entities)
public async Task CreateManyAsync(IList<EventTableEntity> entities)
{
if(!entities?.Any() ?? true)
{

View File

@ -1,12 +1,12 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.WindowsAzure.Storage.Table;
using Bit.Core.Models.Data;
namespace Bit.Core.Services
{
public interface IEventWriteService
{
Task CreateAsync(ITableEntity entity);
Task CreateManyAsync(IList<ITableEntity> entities);
Task CreateAsync(EventTableEntity entity);
Task CreateManyAsync(IList<EventTableEntity> entities);
}
}

View File

@ -1,10 +1,10 @@
using System.Threading.Tasks;
using Bit.Core.Repositories;
using System.Collections.Generic;
using Microsoft.WindowsAzure.Storage.Table;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Queue;
using Newtonsoft.Json;
using Bit.Core.Models.Data;
namespace Bit.Core.Services
{
@ -29,14 +29,14 @@ namespace Bit.Core.Services
_globalSettings = globalSettings;
}
public async Task CreateAsync(ITableEntity entity)
public async Task CreateAsync(EventTableEntity entity)
{
var json = JsonConvert.SerializeObject(entity, _jsonSettings);
var message = new CloudQueueMessage(json);
await _queue.AddMessageAsync(message);
}
public async Task CreateManyAsync(IList<ITableEntity> entities)
public async Task CreateManyAsync(IList<EventTableEntity> entities)
{
var json = JsonConvert.SerializeObject(entities, _jsonSettings);
var message = new CloudQueueMessage(json);

View File

@ -5,7 +5,6 @@ using Bit.Core.Repositories;
using Bit.Core.Models.Data;
using System.Linq;
using System.Collections.Generic;
using Microsoft.WindowsAzure.Storage.Table;
using Bit.Core.Models.Table;
namespace Bit.Core.Services
@ -31,7 +30,7 @@ namespace Bit.Core.Services
public async Task LogUserEventAsync(Guid userId, EventType type)
{
var events = new List<ITableEntity> { new UserEvent(userId, type) };
var events = new List<EventTableEntity> { new UserEvent(userId, type) };
IEnumerable<UserEvent> orgEvents;
if(_currentContext.UserId.HasValue)

View File

@ -1,7 +1,7 @@
using System.Threading.Tasks;
using Bit.Core.Repositories;
using System.Collections.Generic;
using Microsoft.WindowsAzure.Storage.Table;
using Bit.Core.Models.Data;
namespace Bit.Core.Services
{
@ -18,12 +18,12 @@ namespace Bit.Core.Services
_globalSettings = globalSettings;
}
public async Task CreateAsync(ITableEntity entity)
public async Task CreateAsync(EventTableEntity entity)
{
await _eventRepository.CreateAsync(entity);
}
public async Task CreateManyAsync(IList<ITableEntity> entities)
public async Task CreateManyAsync(IList<EventTableEntity> entities)
{
await _eventRepository.CreateManyAsync(entities);
}

View File

@ -1,17 +1,17 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.WindowsAzure.Storage.Table;
using Bit.Core.Models.Data;
namespace Bit.Core.Services
{
public class NoopEventWriteService : IEventWriteService
{
public Task CreateAsync(ITableEntity entity)
public Task CreateAsync(EventTableEntity entity)
{
return Task.FromResult(0);
}
public Task CreateManyAsync(IList<ITableEntity> entities)
public Task CreateManyAsync(IList<EventTableEntity> entities)
{
return Task.FromResult(0);
}