Files
ifish/Ifish/controllers/IfishTabControllers/消息/IfishIMFiles/Sessions/Service/NTESDemoService.m
T
2017-08-15 16:59:01 +08:00

85 lines
3.2 KiB
Objective-C

//
// NTESDemoService.m
// NIM
//
// Created by amao on 1/20/16.
// Copyright © 2016 Netease. All rights reserved.
//
#import "NTESDemoService.h"
@implementation NTESDemoService
+ (instancetype)sharedService
{
static id instance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[[self class] alloc] init];
});
return instance;
}
- (void)registerUser:(NTESRegisterData *)data
completion:(NTESRegisterHandler)completion
{
NTESDemoRegisterTask *task = [[NTESDemoRegisterTask alloc] init];
task.data = data;
task.handler = completion;
[self runTask:task];
}
- (void)fetchDemoChatrooms:(NTESChatroomListHandler)completion
{
NTESDemoFetchChatroomTask *task = [[NTESDemoFetchChatroomTask alloc] init];
task.handler = completion;
[self runTask:task];
}
- (void)runTask:(id<NTESDemoServiceTask>)task
{
if ([[NIMSDK sharedSDK] isUsingDemoAppKey])
{
NSURLRequest *request = [task taskRequest];
[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
id jsonObject = nil;
NSError *error = connectionError;
if (connectionError == nil &&
[response isKindOfClass:[NSHTTPURLResponse class]] &&
[(NSHTTPURLResponse *)response statusCode] == 200)
{
if (data)
{
jsonObject = [NSJSONSerialization JSONObjectWithData:data
options:0
error:&error];
}
else
{
error = [NSError errorWithDomain:@"ntes domain"
code:-1
userInfo:@{@"description" : @"invalid data"}];
}
}
[task onGetResponse:jsonObject
error:error];
}];
}
else
{
//Demo Service中我们模拟了APP服务器所应该实现的部分功能,上层开发需要构建相应的APP服务器,而不是直接使用我们的DEMO服务器
[task onGetResponse:nil
error:[NSError errorWithDomain:@"ntes domain"
code:-1
userInfo:@{@"description" : @"use your own app server"}]];
}
}
@end