Example #1
0
func (manager Manager) FinishTask(teammate *model.Teammate, task *model.Task) bool {
	if task.TeammateUid() != teammate.Uid() ||
		teammate.TaskUid() != task.Uid() {
		return false
	}
	if queue := manager.store.Queues.Find(task.QueueUid()); queue != nil {
		queue.DelTask(task.Uid())
	}
	if !task.Complete() {
		return false
	}
	teammate.FinishTask(task.Uid())
	manager.busManager.PublishEvent(event.CompleteTask, teammate.Identity,
		[]interface{}{teammate.Uid(), task.Uid()})
	return true
}