mirror of
https://github.com/bitwarden/server
synced 2025-12-16 16:23:31 +00:00
* Move PushType to Platform Folder - Move the PushType next to the rest of push notification code - Specifically exclude it from needing Platform code review - Add tests establishing rules Platform has for usage of this enum, making it safe to have no owner * Move NotificationHub code into Platform/Push directory * Update NotificationHub namespace imports * Add attribute for storing push type metadata * Rename Push Engines to have PushEngine suffix * Move Push Registration items to their own directory * Push code move * Add expected usage comment * Add Push feature registration method - Make method able to be called multipes times with no ill effects * Add Push Registration service entrypoint and tests * Use new service entrypoints * Test changes
89 lines
2.4 KiB
C#
89 lines
2.4 KiB
C#
using Bit.Core.Enums;
|
|
using Bit.Core.NotificationCenter.Enums;
|
|
|
|
namespace Bit.Core.Models;
|
|
|
|
// New push notification payload models should not be defined in this file
|
|
// they should instead be defined in file owned by your team.
|
|
|
|
public class PushNotificationData<T>
|
|
{
|
|
public PushNotificationData(PushType type, T payload, string? contextId)
|
|
{
|
|
Type = type;
|
|
Payload = payload;
|
|
ContextId = contextId;
|
|
}
|
|
|
|
public PushType Type { get; set; }
|
|
public T Payload { get; set; }
|
|
public string? ContextId { get; set; }
|
|
}
|
|
|
|
public class SyncCipherPushNotification
|
|
{
|
|
public Guid Id { get; set; }
|
|
public Guid? UserId { get; set; }
|
|
public Guid? OrganizationId { get; set; }
|
|
public IEnumerable<Guid>? CollectionIds { get; set; }
|
|
public DateTime RevisionDate { get; set; }
|
|
}
|
|
|
|
public class SyncFolderPushNotification
|
|
{
|
|
public Guid Id { get; set; }
|
|
public Guid UserId { get; set; }
|
|
public DateTime RevisionDate { get; set; }
|
|
}
|
|
|
|
public class UserPushNotification
|
|
{
|
|
public Guid UserId { get; set; }
|
|
public DateTime Date { get; set; }
|
|
}
|
|
|
|
public class SyncSendPushNotification
|
|
{
|
|
public Guid Id { get; set; }
|
|
public Guid UserId { get; set; }
|
|
public DateTime RevisionDate { get; set; }
|
|
}
|
|
|
|
public class NotificationPushNotification
|
|
{
|
|
public Guid Id { get; set; }
|
|
public Priority Priority { get; set; }
|
|
public bool Global { get; set; }
|
|
public ClientType ClientType { get; set; }
|
|
public Guid? UserId { get; set; }
|
|
public Guid? OrganizationId { get; set; }
|
|
public Guid? InstallationId { get; set; }
|
|
public Guid? TaskId { get; set; }
|
|
public string? Title { get; set; }
|
|
public string? Body { get; set; }
|
|
public DateTime CreationDate { get; set; }
|
|
public DateTime RevisionDate { get; set; }
|
|
public DateTime? ReadDate { get; set; }
|
|
public DateTime? DeletedDate { get; set; }
|
|
}
|
|
|
|
public class AuthRequestPushNotification
|
|
{
|
|
public Guid UserId { get; set; }
|
|
public Guid Id { get; set; }
|
|
}
|
|
|
|
public class OrganizationStatusPushNotification
|
|
{
|
|
public Guid OrganizationId { get; set; }
|
|
public bool Enabled { get; set; }
|
|
}
|
|
|
|
public class OrganizationCollectionManagementPushNotification
|
|
{
|
|
public Guid OrganizationId { get; init; }
|
|
public bool LimitCollectionCreation { get; init; }
|
|
public bool LimitCollectionDeletion { get; init; }
|
|
public bool LimitItemDeletion { get; init; }
|
|
}
|