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