diff --git a/ng2-components/ng2-activiti-tasklist/src/components/start-task.component.ts b/ng2-components/ng2-activiti-tasklist/src/components/start-task.component.ts index 3938863b84..99ee041330 100644 --- a/ng2-components/ng2-activiti-tasklist/src/components/start-task.component.ts +++ b/ng2-components/ng2-activiti-tasklist/src/components/start-task.component.ts @@ -90,7 +90,7 @@ export class StartTaskComponent implements OnInit { .switchMap((createRes: any) => this.attachForm(createRes.id, this.formKey).defaultIfEmpty(createRes) .switchMap((attachRes: any) => - this.assignTask(createRes.id, this.assignee).defaultIfEmpty(attachRes ? attachRes : createRes) + this.assignTaskByUserId(createRes.id, this.assignee.id).defaultIfEmpty(attachRes ? attachRes : createRes) ) ) .subscribe( @@ -112,10 +112,10 @@ export class StartTaskComponent implements OnInit { return response; } - private assignTask(taskId: string, assignee: any): Observable { + private assignTaskByUserId(taskId: string, userId: any): Observable { let response = Observable.of(); - if (taskId && assignee) { - response = this.taskService.assignTask(taskId, assignee); + if (taskId && userId) { + response = this.taskService.assignTaskByUserId(taskId, userId); } return response; } diff --git a/ng2-components/ng2-activiti-tasklist/src/services/tasklist.service.spec.ts b/ng2-components/ng2-activiti-tasklist/src/services/tasklist.service.spec.ts index 33abca7ce3..f613d174dc 100644 --- a/ng2-components/ng2-activiti-tasklist/src/services/tasklist.service.spec.ts +++ b/ng2-components/ng2-activiti-tasklist/src/services/tasklist.service.spec.ts @@ -678,6 +678,39 @@ describe('Activiti TaskList Service', () => { }); }); + it('should assign task to a userId', (done) => { + let testTaskId = '8888'; + service.assignTaskByUserId(testTaskId, fakeUser2.id).subscribe( + (res: TaskDetailsModel) => { + expect(res).toBeDefined(); + expect(res.id).toEqual(testTaskId); + expect(res.name).toEqual('FakeNameTask'); + expect(res.description).toEqual('FakeDescription'); + expect(res.category).toEqual('3'); + expect(res.created).not.toEqual(''); + expect(res.adhocTaskCanBeReassigned).toBe(true); + expect(res.assignee).toEqual(new User(fakeUser2)); + expect(res.involvedPeople).toEqual([fakeUser1]); + done(); + } + ); + + jasmine.Ajax.requests.mostRecent().respondWith({ + 'status': 200, + contentType: 'application/json', + responseText: JSON.stringify({ + id: testTaskId, + name: 'FakeNameTask', + description: 'FakeDescription', + adhocTaskCanBeReassigned: true, + category: '3', + assignee: fakeUser2, + involvedPeople: [fakeUser1], + created: '2016-07-15T11:19:17.440+0000' + }) + }); + }); + it('should claim a task', (done) => { let taskId = '111'; diff --git a/ng2-components/ng2-activiti-tasklist/src/services/tasklist.service.ts b/ng2-components/ng2-activiti-tasklist/src/services/tasklist.service.ts index 5ad1b4b61d..483321d67c 100644 --- a/ng2-components/ng2-activiti-tasklist/src/services/tasklist.service.ts +++ b/ng2-components/ng2-activiti-tasklist/src/services/tasklist.service.ts @@ -416,7 +416,17 @@ export class TaskListService { * @returns {TaskDetailsModel} */ assignTask(taskId: string, requestNode: any): Observable { - return Observable.fromPromise(this.callApiAssignTask(taskId, requestNode)) + let assignee = {assignee: requestNode.id} ; + return Observable.fromPromise(this.callApiAssignTask(taskId, assignee)) + .map(res => res) + .map((response: TaskDetailsModel) => { + return new TaskDetailsModel(response); + }).catch(err => this.handleError(err)); + } + + assignTaskByUserId(taskId: string, userId: number): Observable { + let assignee = {assignee: userId} ; + return Observable.fromPromise(this.callApiAssignTask(taskId, assignee)) .map(res => res) .map((response: TaskDetailsModel) => { return new TaskDetailsModel(response);