Add public initializers

This commit is contained in:
Christoph Hagen 2022-06-05 18:25:39 +02:00
parent 96e0da10f3
commit 03426ab3ac
6 changed files with 81 additions and 0 deletions

View File

@ -14,4 +14,14 @@ public struct AuthenticatedPushMessage: Codable {
/// The message to send
public let message: PushMessage
/**
Create an authenticated push message
- Parameter sender: The authentication of the sender
- Parameter message: The message metadata and content
*/
public init(sender: DeviceAuthentication, message: PushMessage) {
self.sender = sender
self.message = message
}
}

View File

@ -19,4 +19,14 @@ public struct DeviceAuthentication: Codable {
*/
public let authentication: AuthenticationToken
/**
Create a device authentication object.
- Parameter pushToken: The APNs device token
- Parameter authentication: The authentication token generated by the server
*/
public init(pushToken: PushToken, authentication: AuthenticationToken) {
self.pushToken = pushToken
self.authentication = authentication
}
}

View File

@ -12,4 +12,15 @@ public struct DeviceDecision: Codable {
/// The hash of the master key to authenticate the request.
public let masterKeyHash: Data
/**
Create a decision object to approve or reject a device registration.
- Parameter pushToken: The APNs device token
- Parameter masterKeyHash: The SHA256 hash of the administrator master key.
*/
public init(pushToken: PushToken, masterKeyHash: Data) {
self.pushToken = pushToken
self.masterKeyHash = masterKeyHash
}
}

View File

@ -17,4 +17,16 @@ public struct DeviceRegistration: Codable {
The name is displayed when registered users request a list of all devices in an application.
*/
public let name: String
/**
Create a new device registration object.
- Parameter pushToken: The push token to register
- Parameter application: The application the device uses
- Parameter name: A descriptive name of the device.
*/
public init(pushToken: PushToken, application: ApplicationId, name: String) {
self.pushToken = pushToken
self.application = application
self.name = name
}
}

View File

@ -10,4 +10,15 @@ public struct PushTokenUpdate: Codable {
/// The new push token to register
public let newToken: PushToken
/**
Create a device authentication object.
- Parameter device: The authentication of the device requesting the change.
- Parameter PushToken: The new APNs token to use from now on
*/
public init(device: DeviceAuthentication, newToken: PushToken) {
self.device = device
self.newToken = newToken
}
}

View File

@ -55,6 +55,33 @@ public struct PushMessage: Codable {
In general, the topic is your apps bundle ID/app ID. It can have a suffix based on the type of push notification. If youre using a certificate that supports PushKit VoIP or watchOS complication notifications, you must include this header with bundle ID of you app and if applicable, the proper suffix. If youre using token-based authentication with APNs, you must include this header with the correct bundle ID and suffix combination. To learn more about app ID, see [Register an App ID](https://help.apple.com/developer-account/#/dev1b35d6f83).
*/
public let topic: String?
/**
Create a new push message.
- Parameter recipients: A list of push tokens for all recipients of the message
- Parameter payload: The message content and metadata
- Parameter pushType: The content type of the message
- Parameter topic: The topic id
- Parameter expiration: An optional expiration date for the message
- Parameter lowPriority: Specify `true` to deliver message with lower priority
- Parameter collapseIdentifier: An optional identifier to group push notifications
*/
public init(recipients: [PushToken],
payload: APNSwiftPayload,
pushType: APNSwiftConnection.PushType,
topic: String,
expiration: Date? = nil,
lowPriority: Bool = false,
collapseIdentifier: String? = nil) {
self.recipients = recipients
self.payload = payload
self.pushType = pushType
self.topic = topic
self.expiration = expiration
self.lowPriority = lowPriority
self.collapseIdentifier = collapseIdentifier
}
}
extension APNSwiftConnection.PushType: Codable {