4
4
#import " USRVWebViewApp.h"
5
5
#import " USRVWebRequestError.h"
6
6
#import " USRVWebRequestEvent.h"
7
+ #import " UADSServiceProviderProxy.h"
8
+ #import " NSMutableDictionary+SafeOperations.h"
9
+ #import " UADSServiceProviderProxy.h"
10
+ #import " UADSBaseOptions.h"
11
+ #import " UADSCommonNetworkErrorProxy.h"
12
+ #import " UADSCorePresenceChecker.h"
13
+ #import " NSDictionary+Headers.h"
7
14
8
15
@implementation USRVApiRequest
9
-
10
16
static NSString *webRequestEventCategory = @" REQUEST" ;
11
17
18
+ + (USRVWebViewApp *)eventSender {
19
+ return [USRVWebViewApp getCurrentApp ];
20
+ }
21
+
22
+ + (void )WebViewExposed_supportsURLSession : (USRVWebViewCallback *)callback {
23
+ [callback invoke: [NSNumber numberWithBool: UADSCorePresenceChecker.isPresent], nil ];
24
+ }
25
+
12
26
+ (void )WebViewExposed_get : (NSString *)requestId url : (NSString *)url headers : (NSArray *)headers connectTimeout : (NSNumber *)connectTimeout callback : (USRVWebViewCallback *)callback {
13
27
if (headers && headers.count == 0 ) {
14
28
headers = NULL ;
@@ -28,7 +42,7 @@ + (void)WebViewExposed_get: (NSString *)requestId url: (NSString *)url headers:
28
42
}
29
43
};
30
44
31
- NSDictionary *mappedHeaders = [USRVApiRequest getHeadersMap : headers];
45
+ NSDictionary *mappedHeaders = [NSDictionary uads_getHeadersMap : headers];
32
46
33
47
if (!mappedHeaders) {
34
48
[callback error: USRVNSStringFromWebRequestError (kUnityServicesWebRequestErrorMappingHeadersFailed )
@@ -63,7 +77,7 @@ + (void)WebViewExposed_head: (NSString *)requestId url: (NSString *)url headers:
63
77
}
64
78
};
65
79
66
- NSDictionary *mappedHeaders = [USRVApiRequest getHeadersMap : headers];
80
+ NSDictionary *mappedHeaders = [NSDictionary uads_getHeadersMap : headers];
67
81
68
82
if (!mappedHeaders) {
69
83
[callback error: USRVNSStringFromWebRequestError (kUnityServicesWebRequestErrorMappingHeadersFailed )
@@ -98,7 +112,7 @@ + (void)WebViewExposed_post: (NSString *)requestId url: (NSString *)url body: (N
98
112
}
99
113
};
100
114
101
- NSDictionary *mappedHeaders = [USRVApiRequest getHeadersMap : headers];
115
+ NSDictionary *mappedHeaders = [NSDictionary uads_getHeadersMap : headers];
102
116
103
117
if (!mappedHeaders) {
104
118
[callback error: USRVNSStringFromWebRequestError (kUnityServicesWebRequestErrorMappingHeadersFailed )
@@ -120,54 +134,8 @@ + (void)WebViewExposed_setConcurrentRequestCount: (NSNumber *)count callback: (U
120
134
[callback invoke: nil ];
121
135
}
122
136
123
- + (NSDictionary <NSString *, NSArray *> *)getHeadersMap : (NSArray *)headers {
124
- NSMutableDictionary *mappedHeaders = [[NSMutableDictionary alloc ] init ];
125
-
126
- if (headers && headers.count > 0 ) {
127
- for (int idx = 0 ; idx < headers.count ; idx++) {
128
- if (![[headers objectAtIndex: idx] isKindOfClass: [NSArray class ]]) return NULL ;
129
-
130
- NSArray *header = [headers objectAtIndex: idx];
131
-
132
- if ([header count ] != 2 ) return NULL ;
133
-
134
- if (![[header objectAtIndex: 0 ] isKindOfClass: [NSString class ]] || ![[header objectAtIndex: 1 ] isKindOfClass: [NSString class ]]) {
135
- return NULL ;
136
- }
137
-
138
- NSString *headerKey = [header objectAtIndex: 0 ];
139
- NSString *headerValue = [header objectAtIndex: 1 ];
140
-
141
- if (headerKey.length < 1 ) return NULL ;
142
-
143
- NSMutableArray *valueList = [[NSMutableArray alloc ] initWithArray: [mappedHeaders objectForKey: headerKey]];
144
- [valueList addObject: headerValue];
145
- [mappedHeaders setObject: valueList
146
- forKey: headerKey];
147
- }
148
- }
149
-
150
- return mappedHeaders;
151
- } /* getHeadersMap */
152
-
153
- + (NSArray <NSArray<NSString *> *> *)getHeadersArray : (NSDictionary <NSString *, NSString *> *)headersMap {
154
- __block NSArray *headersArray = [NSArray array ];
155
-
156
- if (headersMap && headersMap.count > 0 ) {
157
- @try {
158
- [headersMap enumerateKeysAndObjectsUsingBlock: ^(NSString *_Nonnull key, NSString *_Nonnull obj, BOOL *_Nonnull stop) {
159
- headersArray = [headersArray arrayByAddingObject: @[key, obj]];
160
- }];
161
- } @catch (id exception) {
162
- return NULL ;
163
- }
164
- }
165
-
166
- return headersArray;
167
- }
168
-
169
137
+ (void )sendSuccess : (NSString *)requestId url : (NSString *)url response : (NSString *)response responseCode : (long )responseCode headers : (NSDictionary <NSString *, NSString *> *)headers {
170
- NSArray <NSArray <NSString *> *> *responseHeaders = [USRVApiRequest getHeadersArray : headers];
138
+ NSArray <NSArray <NSString *> *> *responseHeaders = [NSDictionary uads_getHeadersArray : headers];
171
139
172
140
if (!responseHeaders) {
173
141
NSError *error = [NSError errorWithDomain: @" com.unity3d.ads.UnityServices.Error"
@@ -211,4 +179,35 @@ + (void)sendFailed: (NSString *)requestId url: (NSString *)url error: (NSError *
211
179
nil ];
212
180
} /* sendFailed */
213
181
182
+ + (void )sendResponseToWebView : (NSDictionary *)dictionary
183
+ category : (UnityServicesWebRequestEvent)event {
184
+ [self .eventSender sendEvent: USRVNSStringFromWebRequestEvent (event)
185
+ category: webRequestEventCategory
186
+ param1: dictionary, nil ];
187
+ }
188
+
189
+ + (void )WebViewExposed_sendRequest : (NSDictionary *)requestDictionary
190
+ callback : (USRVWebViewCallback *)callback {
191
+ id errorCompletion = ^(NSDictionary *_Nonnull error) {
192
+ [self sendResponseToWebView: error
193
+ category: kUnityServicesWebRequestEventFailed ];
194
+ };
195
+
196
+ id successCompletion = ^(NSDictionary *_Nonnull response) {
197
+ [self sendResponseToWebView: response
198
+ category: kUnityServicesWebRequestEventComplete ];
199
+ };
200
+
201
+
202
+ [self .network sendRequestUsing: requestDictionary
203
+ successCompletion: successCompletion
204
+ andErrorCompletion: errorCompletion];
205
+
206
+ [callback invoke: requestDictionary[@" id" ] ? : @" " , nil ];
207
+ }
208
+
209
+ + (UADSCommonNetworkProxy *)network {
210
+ return [UADSServiceProviderProxy shared ].mainNetworkLayer ;
211
+ }
212
+
214
213
@end
0 commit comments