ifish/Ifish/controllers/IfishTabControllers/消息/IfishIMFiles/Sessions/Service/NTESDemoService.m

85 lines
3.2 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// 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