Code Duplication    Length = 87-88 lines in 3 locations

app/Services/Action/TaskMoveColumnAssigned.php 1 location

@@ 19-106 (lines=88) @@
16
/**
17
 * Move a task to another column when an assignee is set.
18
 */
19
class TaskMoveColumnAssigned extends Base
20
{
21
    /**
22
     * Get automatic action description.
23
     *
24
     * @return string
25
     */
26
    public function getDescription()
27
    {
28
        return t('Move the task to another column when assigned to a user');
29
    }
30
31
    /**
32
     * Get the list of compatible events.
33
     *
34
     * @return array
35
     */
36
    public function getCompatibleEvents()
37
    {
38
        return [
39
            TaskModel::EVENT_ASSIGNEE_CHANGE,
40
            TaskModel::EVENT_UPDATE,
41
        ];
42
    }
43
44
    /**
45
     * Get the required parameter for the action (defined by the user).
46
     *
47
     * @return array
48
     */
49
    public function getActionRequiredParameters()
50
    {
51
        return [
52
            'src_column_id'  => t('Source column'),
53
            'dest_column_id' => t('Destination column'),
54
        ];
55
    }
56
57
    /**
58
     * Get the required parameter for the event.
59
     *
60
     * @return string[]
61
     */
62
    public function getEventRequiredParameters()
63
    {
64
        return [
65
            'task_id',
66
            'task' => [
67
                'project_id',
68
                'column_id',
69
                'owner_id',
70
                'position',
71
                'swimlane_id',
72
            ],
73
        ];
74
    }
75
76
    /**
77
     * Execute the action (move the task to another column).
78
     *
79
     * @param array $data Event data dictionary
80
     *
81
     * @return bool True if the action was executed or false when not executed
82
     */
83
    public function doAction(array $data)
84
    {
85
        return $this->taskPositionModel->movePosition(
86
            $data['task']['project_id'],
87
            $data['task_id'],
88
            $this->getParam('dest_column_id'),
89
            $data['task']['position'],
90
            $data['task']['swimlane_id'],
91
            false
92
        );
93
    }
94
95
    /**
96
     * Check if the event data meet the action condition.
97
     *
98
     * @param array $data Event data dictionary
99
     *
100
     * @return bool
101
     */
102
    public function hasRequiredCondition(array $data)
103
    {
104
        return $data['task']['column_id'] == $this->getParam('src_column_id') && $data['task']['owner_id'] > 0;
105
    }
106
}
107

app/Services/Action/TaskMoveColumnCategoryChange.php 1 location

@@ 19-105 (lines=87) @@
16
/**
17
 * Move a task to another column when the category is changed.
18
 */
19
class TaskMoveColumnCategoryChange extends Base
20
{
21
    /**
22
     * Get automatic action description.
23
     *
24
     * @return string
25
     */
26
    public function getDescription()
27
    {
28
        return t('Move the task to another column when the category is changed');
29
    }
30
31
    /**
32
     * Get the list of compatible events.
33
     *
34
     * @return array
35
     */
36
    public function getCompatibleEvents()
37
    {
38
        return [
39
            TaskModel::EVENT_UPDATE,
40
        ];
41
    }
42
43
    /**
44
     * Get the required parameter for the action (defined by the user).
45
     *
46
     * @return array
47
     */
48
    public function getActionRequiredParameters()
49
    {
50
        return [
51
            'dest_column_id' => t('Destination column'),
52
            'category_id'    => t('Category'),
53
        ];
54
    }
55
56
    /**
57
     * Get the required parameter for the event.
58
     *
59
     * @return string[]
60
     */
61
    public function getEventRequiredParameters()
62
    {
63
        return [
64
            'task_id',
65
            'task' => [
66
                'project_id',
67
                'column_id',
68
                'category_id',
69
                'position',
70
                'swimlane_id',
71
            ],
72
        ];
73
    }
74
75
    /**
76
     * Execute the action (move the task to another column).
77
     *
78
     * @param array $data Event data dictionary
79
     *
80
     * @return bool True if the action was executed or false when not executed
81
     */
82
    public function doAction(array $data)
83
    {
84
        return $this->taskPositionModel->movePosition(
85
            $data['task']['project_id'],
86
            $data['task_id'],
87
            $this->getParam('dest_column_id'),
88
            $data['task']['position'],
89
            $data['task']['swimlane_id'],
90
            false
91
        );
92
    }
93
94
    /**
95
     * Check if the event data meet the action condition.
96
     *
97
     * @param array $data Event data dictionary
98
     *
99
     * @return bool
100
     */
101
    public function hasRequiredCondition(array $data)
102
    {
103
        return $data['task']['column_id'] != $this->getParam('dest_column_id') && $data['task']['category_id'] == $this->getParam('category_id');
104
    }
105
}
106

app/Services/Action/TaskMoveColumnUnAssigned.php 1 location

@@ 19-106 (lines=88) @@
16
/**
17
 * Move a task to another column when an assignee is cleared.
18
 */
19
class TaskMoveColumnUnAssigned extends Base
20
{
21
    /**
22
     * Get automatic action description.
23
     *
24
     * @return string
25
     */
26
    public function getDescription()
27
    {
28
        return t('Move the task to another column when assignee is cleared');
29
    }
30
31
    /**
32
     * Get the list of compatible events.
33
     *
34
     * @return array
35
     */
36
    public function getCompatibleEvents()
37
    {
38
        return [
39
            TaskModel::EVENT_ASSIGNEE_CHANGE,
40
            TaskModel::EVENT_UPDATE,
41
        ];
42
    }
43
44
    /**
45
     * Get the required parameter for the action (defined by the user).
46
     *
47
     * @return array
48
     */
49
    public function getActionRequiredParameters()
50
    {
51
        return [
52
            'src_column_id'  => t('Source column'),
53
            'dest_column_id' => t('Destination column'),
54
        ];
55
    }
56
57
    /**
58
     * Get the required parameter for the event.
59
     *
60
     * @return string[]
61
     */
62
    public function getEventRequiredParameters()
63
    {
64
        return [
65
            'task_id',
66
            'task' => [
67
                'project_id',
68
                'column_id',
69
                'owner_id',
70
                'position',
71
                'swimlane_id',
72
            ],
73
        ];
74
    }
75
76
    /**
77
     * Execute the action (move the task to another column).
78
     *
79
     * @param array $data Event data dictionary
80
     *
81
     * @return bool True if the action was executed or false when not executed
82
     */
83
    public function doAction(array $data)
84
    {
85
        return $this->taskPositionModel->movePosition(
86
            $data['task']['project_id'],
87
            $data['task_id'],
88
            $this->getParam('dest_column_id'),
89
            $data['task']['position'],
90
            $data['task']['swimlane_id'],
91
            false
92
        );
93
    }
94
95
    /**
96
     * Check if the event data meet the action condition.
97
     *
98
     * @param array $data Event data dictionary
99
     *
100
     * @return bool
101
     */
102
    public function hasRequiredCondition(array $data)
103
    {
104
        return $data['task']['column_id'] == $this->getParam('src_column_id') && $data['task']['owner_id'] == 0;
105
    }
106
}
107