1f6562485SCharlie Cruzan// Copyright 2018-present 650 Industries. All rights reserved. 2f6562485SCharlie Cruzan 3f6562485SCharlie Cruzan#import "EXScopedNotificationSerializer.h" 47228d0b7SCharlie Cruzan#import "EXScopedNotificationsUtils.h" 5f6562485SCharlie Cruzan 6f6562485SCharlie CruzanNS_ASSUME_NONNULL_BEGIN 7f6562485SCharlie Cruzan 8f6562485SCharlie Cruzan@implementation EXScopedNotificationSerializer 9f6562485SCharlie Cruzan 10f6562485SCharlie Cruzan+ (NSDictionary *)serializedNotificationResponse:(UNNotificationResponse *)response 11f6562485SCharlie Cruzan{ 12f6562485SCharlie Cruzan NSDictionary *serializedResponse = [super serializedNotificationResponse:response]; 13f6562485SCharlie Cruzan NSMutableDictionary *serializedResponseMutable = [serializedResponse mutableCopy]; 14f6562485SCharlie Cruzan serializedResponseMutable[@"notification"] = [self serializedNotification:response.notification]; 15f6562485SCharlie Cruzan 16f6562485SCharlie Cruzan return [serializedResponseMutable copy]; 17f6562485SCharlie Cruzan} 18f6562485SCharlie Cruzan 19f6562485SCharlie Cruzan+ (NSDictionary *)serializedNotification:(UNNotification *)notification 20f6562485SCharlie Cruzan{ 21f6562485SCharlie Cruzan NSDictionary *serializedNotification = [super serializedNotification:notification]; 22f6562485SCharlie Cruzan NSMutableDictionary *serializedNotificationMutable = [serializedNotification mutableCopy]; 23f6562485SCharlie Cruzan serializedNotificationMutable[@"request"] = [self serializedNotificationRequest:notification.request]; 24f6562485SCharlie Cruzan 25f6562485SCharlie Cruzan return [serializedNotificationMutable copy]; 26f6562485SCharlie Cruzan} 27f6562485SCharlie Cruzan 2869c8b63fSStanisław Chmiela+ (NSDictionary *)serializedNotificationContent:(UNNotificationRequest *)request 29f6562485SCharlie Cruzan{ 3069c8b63fSStanisław Chmiela NSDictionary *serializedContent = [super serializedNotificationContent:request]; 31f6562485SCharlie Cruzan NSMutableDictionary *serializedContentMutable = [serializedContent mutableCopy]; 32*d044143fSCharlie Cruzan serializedContentMutable[@"categoryIdentifier"] = request.content.categoryIdentifier ? [EXScopedNotificationsUtils getScopeAndIdentifierFromScopedIdentifier:request.content.categoryIdentifier].identifier : [NSNull null]; 33f6562485SCharlie Cruzan 34f6562485SCharlie Cruzan return [serializedContentMutable copy]; 35f6562485SCharlie Cruzan} 36f6562485SCharlie Cruzan 37*d044143fSCharlie Cruzan+ (NSDictionary *)serializedNotificationRequest:(UNNotificationRequest *)request 38*d044143fSCharlie Cruzan{ 39*d044143fSCharlie Cruzan NSDictionary* serializedRequest = [super serializedNotificationRequest:request]; 40*d044143fSCharlie Cruzan NSMutableDictionary *serializedRequestMutable = [serializedRequest mutableCopy]; 41*d044143fSCharlie Cruzan serializedRequestMutable[@"identifier"] = [EXScopedNotificationsUtils getScopeAndIdentifierFromScopedIdentifier:request.identifier].identifier; 42*d044143fSCharlie Cruzan 43*d044143fSCharlie Cruzan return [serializedRequestMutable copy]; 44*d044143fSCharlie Cruzan} 45*d044143fSCharlie Cruzan 46f6562485SCharlie Cruzan@end 47f6562485SCharlie Cruzan 48f6562485SCharlie CruzanNS_ASSUME_NONNULL_END 49