@@ -1232,28 +1232,38 @@ - (void)request_ChangeTaskStatus:(Task *)task andBlock:(void (^)(id data, NSErro
12321232}
12331233
12341234- (void )request_TaskDetail : (Task *)task andBlock : (void (^)(id data, NSError *error))block {
1235- [[CodingNetAPIClient sharedJsonClient ] requestJsonDataWithPath: [task toTaskDetailPath ] withParams: nil withMethodType: Get andBlock: ^(id data, NSError *error) {
1235+ [[CodingNetAPIClient sharedJsonClient ] requestJsonDataWithPath: [task toTaskDetailPath ] withParams: nil withMethodType: Get andBlock: ^(id data, NSError *error) {// 请求任务基本内容
12361236 if (data) {
12371237 id resultData = [data valueForKeyPath: @" data" ];
12381238 Task *resultA = [NSObject objectOfClass: @" Task" fromJSON: resultData];
1239- if (resultA.has_description .boolValue ) {
1240- [MobClick event: kUmeng_Event_Request_Get label: @" 任务_详情_有描述" ];
1241-
1242- [[CodingNetAPIClient sharedJsonClient ] requestJsonDataWithPath: [resultA toDescriptionPath ] withParams: nil withMethodType: Get andBlock: ^(id dataD, NSError *errorD) {
1243- if (dataD) {
1244- dataD = [dataD valueForKey: @" data" ];
1245- Task_Description *taskD = [NSObject objectOfClass: @" Task_Description" fromJSON: dataD];
1246- resultA.task_description = taskD;
1247- block (resultA, nil );
1239+ [[CodingNetAPIClient sharedJsonClient ] requestJsonDataWithPath: [resultA toWatchersPath ] withParams: @{@" pageSize" : @1000 } withMethodType: Get andBlock: ^(id dataW, NSError *errorW) {// 请求任务关注者
1240+ if (dataW) {
1241+ dataW = dataW[@" data" ][@" list" ];
1242+ NSArray *watchers = [NSObject arrayFromJSON: dataW ofObjects: @" User" ];
1243+ resultA.watchers = watchers.mutableCopy ;
1244+
1245+ if (resultA.has_description .boolValue ) {
1246+ [[CodingNetAPIClient sharedJsonClient ] requestJsonDataWithPath: [resultA toDescriptionPath ] withParams: nil withMethodType: Get andBlock: ^(id dataD, NSError *errorD) {// 请求任务描述
1247+ if (dataD) {
1248+ [MobClick event: kUmeng_Event_Request_Get label: @" 任务_详情_有描述" ];
1249+
1250+ dataD = [dataD valueForKey: @" data" ];
1251+ Task_Description *taskD = [NSObject objectOfClass: @" Task_Description" fromJSON: dataD];
1252+ resultA.task_description = taskD;
1253+ block (resultA, nil );
1254+ }else {
1255+ block (nil , errorD);
1256+ }
1257+ }];
12481258 }else {
1249- block (nil , errorD);
1259+ [MobClick event: kUmeng_Event_Request_Get label: @" 任务_详情_无描述" ];
1260+
1261+ block (resultA, nil );
12501262 }
1251- }];
1252- }else {
1253- [MobClick event: kUmeng_Event_Request_Get label: @" 任务_详情_无描述" ];
1254-
1255- block (resultA, nil );
1256- }
1263+ }else {
1264+ block (nil , errorW);
1265+ }
1266+ }];
12571267 }else {
12581268 block (nil , error);
12591269 }
@@ -1297,6 +1307,27 @@ - (void)request_DeleteComment:(TaskComment *)comment ofTask:(Task *)task andBloc
12971307 }];
12981308}
12991309
1310+ - (void )request_ChangeWatcher : (User *)watcher ofTask : (Task *)task andBlock : (void (^)(id data, NSError *error))block {
1311+ NSString *path = [NSString stringWithFormat: @" api/task/%@ /user/%@ /watch" , task.id .stringValue, watcher.global_key];
1312+ User *hasWatcher = [task hasWatcher: watcher];
1313+ NetworkMethod method = hasWatcher? Delete: Post;
1314+
1315+ [[CodingNetAPIClient sharedJsonClient ] requestJsonDataWithPath: path withParams: nil withMethodType: method andBlock: ^(id data, NSError *error) {
1316+ if (data) {
1317+ [MobClick event: kUmeng_Event_Request_ActionOfServer label: method == Post? @" 任务_添加关注者" : @" 任务_删除关注者" ];
1318+
1319+ if (!hasWatcher && watcher) {
1320+ [task.watchers addObject: watcher];
1321+ }else if (hasWatcher){
1322+ [task.watchers removeObject: hasWatcher];
1323+ }
1324+ block (data, nil );
1325+ }else {
1326+ block (nil , error);
1327+ }
1328+ }];
1329+ }
1330+
13001331#pragma mark User
13011332- (void )request_AddUser : (User *)user ToProject : (Project *)project andBlock : (void (^)(id data, NSError *error))block {
13021333// 一次添加多个成员(逗号分隔):users=102,4
0 commit comments