1
0
mirror of https://github.com/bitwarden/server.git synced 2025-07-03 00:52:49 -05:00

clear token by id

This commit is contained in:
Kyle Spearrin
2017-06-02 16:52:54 -04:00
parent bee1ac659b
commit 7b1c0d6df1
9 changed files with 54 additions and 23 deletions

View File

@ -8,8 +8,9 @@ namespace Bit.Core.Repositories
public interface IDeviceRepository : IRepository<Device, Guid>
{
Task<Device> GetByIdAsync(Guid id, Guid userId);
Task<Device> GetByIdentifierAsync(string identifier);
Task<Device> GetByIdentifierAsync(string identifier, Guid userId);
Task<ICollection<Device>> GetManyByUserIdAsync(Guid userId);
Task ClearPushTokenByIdentifierAsync(string identifier);
Task ClearPushTokenAsync(Guid id);
}
}

View File

@ -30,6 +30,22 @@ namespace Bit.Core.Repositories.SqlServer
return device;
}
public async Task<Device> GetByIdentifierAsync(string identifier)
{
using(var connection = new SqlConnection(ConnectionString))
{
var results = await connection.QueryAsync<Device>(
$"[{Schema}].[{Table}_ReadByIdentifier]",
new
{
Identifier = identifier
},
commandType: CommandType.StoredProcedure);
return results.FirstOrDefault();
}
}
public async Task<Device> GetByIdentifierAsync(string identifier, Guid userId)
{
using(var connection = new SqlConnection(ConnectionString))
@ -60,13 +76,13 @@ namespace Bit.Core.Repositories.SqlServer
}
}
public async Task ClearPushTokenByIdentifierAsync(string identifier)
public async Task ClearPushTokenAsync(Guid id)
{
using(var connection = new SqlConnection(ConnectionString))
{
await connection.ExecuteAsync(
$"[{Schema}].[{Table}_ClearPushTokenByIdentifier]",
new { Identifier = identifier },
$"[{Schema}].[{Table}_ClearPushTokenById]",
new { Id = id },
commandType: CommandType.StoredProcedure);
}
}

View File

@ -35,7 +35,7 @@ namespace Bit.Core.Services
public async Task ClearTokenAsync(Device device)
{
await _deviceRepository.ClearPushTokenByIdentifierAsync(device.Identifier);
await _deviceRepository.ClearPushTokenAsync(device.Id);
await _pushRegistrationService.DeleteRegistrationAsync(device.Id);
}

View File

@ -50,9 +50,9 @@ namespace Bit.Core.Services
switch(device.Type)
{
case Enums.DeviceType.Android:
payloadTemplate = "{\"data\":{\"type\":\"#(type)\",\"payload\":\"$(payload)\"}}";
messageTemplate = "{\"data\":{\"type\":\"#(type)\"}," +
"\"notification\":{\"title\":\"$(title)\",\"body\":\"$(message)\"}}";
payloadTemplate = "{\"data\":{\"data\":{\"type\":\"#(type)\",\"payload\":\"$(payload)\"}}}";
messageTemplate = "{\"data\":{\"data\":{\"type\":\"#(type)\"}," +
"\"notification\":{\"title\":\"$(title)\",\"body\":\"$(message)\"}}}";
installation.Platform = NotificationPlatform.Gcm;
break;