XMLRPCHelper: fix compilation

This commit is contained in:
Gautier Pelloux-Prayer 2015-11-12 11:01:18 +01:00
parent d2386a043b
commit dd815d1c3f
2 changed files with 56 additions and 5 deletions

View file

@ -34,6 +34,13 @@
- (void)sendXMLRequestMethod:(NSString *)method
withParams:(NSArray *)params
onSuccess:(BOOL (^)(XMLRPCResponse *response))successBlock
onError:(BOOL (^)(XMLRPCRequest *request))errorBlock;
onError:(BOOL (^)(XMLRPCRequest *response))errorBlock;
// CUSTOM API
+ (void)GetProvisioningURL:(NSString *)username
password:(NSString *)password
domain:(NSString *)domain
OnSuccess:(void (^)(NSString *url))onSucess;
@end

View file

@ -14,15 +14,29 @@
#import "Utils.h"
/* This subclass allows use to store the block to execute on success */
@interface UrmetXMLRPCRequest : XMLRPCRequest
@interface BlockXMLRPCRequest : XMLRPCRequest
@property(copy, nonatomic) BOOL (^successBlock)(XMLRPCResponse *response);
@property(copy, nonatomic) BOOL (^xmlErrorBlock)(XMLRPCRequest *request);
@end
@implementation BlockXMLRPCRequest
@end
@implementation XMLRPCHelper
#pragma mark - API
static XMLRPCHelper *xmlManager = nil;
+ (XMLRPCHelper *)xml {
@synchronized(self) {
if (xmlManager == nil) {
xmlManager = [[XMLRPCHelper alloc] init];
}
}
return xmlManager;
}
- (void)sendXMLRequestMethod:(NSString *)method withParams:(NSArray *)params {
[self sendXMLRequestMethod:method withParams:params onSuccess:nil onError:nil];
}
@ -40,7 +54,7 @@
LOGI(@"XMLRPC %@ - %@", method, params);
NSURL *URL =
[NSURL URLWithString:[LinphoneManager.instance lpConfigStringForKey:@"xmlrpc_url" forSection:@"assistant"]];
UrmetXMLRPCRequest *request = [[UrmetXMLRPCRequest alloc] initWithURL:URL];
BlockXMLRPCRequest *request = [[BlockXMLRPCRequest alloc] initWithURL:URL];
[request setMethod:method withParameters:params];
if (successBlock) {
request.successBlock = successBlock;
@ -57,7 +71,7 @@
- (void)request:(XMLRPCRequest *)request didReceiveResponse:(XMLRPCResponse *)response {
UrmetXMLRPCRequest *req = (UrmetXMLRPCRequest *)request;
BlockXMLRPCRequest *req = (BlockXMLRPCRequest *)request;
NSString *error = nil;
BOOL handleHere = YES;
@ -86,7 +100,7 @@
}
- (void)request:(XMLRPCRequest *)request didFailWithError:(NSError *)error {
UrmetXMLRPCRequest *req = (UrmetXMLRPCRequest *)request;
BlockXMLRPCRequest *req = (BlockXMLRPCRequest *)request;
BOOL handleHere = YES;
if (req.xmlErrorBlock) {
handleHere = req.xmlErrorBlock(request);
@ -118,4 +132,34 @@
[av show];
}
+ (void)GetProvisioningURL:(NSString *)username
password:(NSString *)password
domain:(NSString *)domain
OnSuccess:(void (^)(NSString *response))onSuccess {
if (!username || !password || !domain) {
onSuccess(nil);
return;
}
[self.class.xml sendXMLRequestMethod:@"get_remote_provisioning_filename"
withParams:@[ username, password, domain ]
onSuccess:^BOOL(XMLRPCResponse *response) {
if (!response.isFault && response.object) {
NSString *url =
[NSString stringWithFormat:@"%@/%@.xml",
[LinphoneManager.instance lpConfigStringForKey:@"remote_prosivioning_root"
forSection:@"assistant"],
response.object];
onSuccess(url);
} else {
onSuccess(nil);
}
return FALSE;
}
onError:^BOOL(XMLRPCRequest *request) {
onSuccess(nil);
return FALSE;
}];
}
@end