Example #1
0
/*
 * FindTaskForTeammate
 */
func FindTaskForTeammate(store *model.Store, teammate *model.Teammate) *model.Task {
	teamUid := teammate.TeamUid()
	queuesWithTasks := store.Queues.Select(func(item interface{}) bool {
		queue := item.(*model.Queue)
		// TODO: select only queues with a task waiting
		return queue.TeamUid() == teamUid && queue.NextTaskUid() != ""
	})
	if len(queuesWithTasks) == 0 {
		return nil
	}
	taskUid := queuesWithTasks[0].NextTaskUid()
	task := store.Tasks.Find(taskUid)
	return task
}