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