Code Duplication    Length = 203-203 lines in 2 locations

src/OroCRM/Bundle/CallBundle/Provider/CallActivityListProvider.php 1 location

@@ 17-219 (lines=203) @@
14
15
use OroCRM\Bundle\CallBundle\Entity\Call;
16
17
class CallActivityListProvider implements
18
    ActivityListProviderInterface,
19
    CommentProviderInterface,
20
    ActivityListDateProviderInterface
21
{
22
    const ACTIVITY_CLASS = 'OroCRM\Bundle\CallBundle\Entity\Call';
23
    const ACL_CLASS = 'OroCRM\Bundle\CallBundle\Entity\Call';
24
25
    /** @var DoctrineHelper */
26
    protected $doctrineHelper;
27
28
    /** @var ServiceLink */
29
    protected $entityOwnerAccessorLink;
30
31
    /** @var ActivityAssociationHelper */
32
    protected $activityAssociationHelper;
33
34
    /** @var CommentAssociationHelper */
35
    protected $commentAssociationHelper;
36
37
    /**
38
     * @param DoctrineHelper            $doctrineHelper
39
     * @param ServiceLink               $entityOwnerAccessorLink
40
     * @param ActivityAssociationHelper $activityAssociationHelper
41
     * @param CommentAssociationHelper  $commentAssociationHelper
42
     */
43
    public function __construct(
44
        DoctrineHelper $doctrineHelper,
45
        ServiceLink $entityOwnerAccessorLink,
46
        ActivityAssociationHelper $activityAssociationHelper,
47
        CommentAssociationHelper $commentAssociationHelper
48
    ) {
49
        $this->doctrineHelper            = $doctrineHelper;
50
        $this->entityOwnerAccessorLink   = $entityOwnerAccessorLink;
51
        $this->activityAssociationHelper = $activityAssociationHelper;
52
        $this->commentAssociationHelper  = $commentAssociationHelper;
53
    }
54
55
    /**
56
     * {@inheritdoc}
57
     */
58
    public function isApplicableTarget($entityClass, $accessible = true)
59
    {
60
        return $this->activityAssociationHelper->isActivityAssociationEnabled(
61
            $entityClass,
62
            self::ACTIVITY_CLASS,
63
            $accessible
64
        );
65
    }
66
67
    /**
68
     * {@inheritdoc}
69
     */
70
    public function getSubject($entity)
71
    {
72
        /** @var $entity Call */
73
        return $entity->getSubject();
74
    }
75
76
    /**
77
     * {@inheritdoc}
78
     */
79
    public function getDescription($entity)
80
    {
81
        /** @var $entity Call */
82
        return $entity->getNotes();
83
    }
84
85
    /**
86
     * {@inheritdoc}
87
     */
88
    public function getOwner($entity)
89
    {
90
        /** @var $entity Call */
91
        return $entity->getOwner();
92
    }
93
94
    /**
95
     * {@inheritdoc}
96
     */
97
    public function getCreatedAt($entity)
98
    {
99
        /** @var $entity Call */
100
        return $entity->getCreatedAt();
101
    }
102
103
    /**
104
     * {@inheritdoc}
105
     */
106
    public function getUpdatedAt($entity)
107
    {
108
        /** @var $entity Call */
109
        return $entity->getUpdatedAt();
110
    }
111
112
    /**
113
     * {@inheritdoc}
114
     */
115
    public function getData(ActivityList $activityListEntity)
116
    {
117
        return [];
118
    }
119
120
    /**
121
     * {@inheritdoc}
122
     */
123
    public function getOrganization($activityEntity)
124
    {
125
        /** @var $activityEntity Call */
126
        return $activityEntity->getOrganization();
127
    }
128
129
    /**
130
     * {@inheritdoc}
131
     */
132
    public function getTemplate()
133
    {
134
        return 'OroCRMCallBundle:Call:js/activityItemTemplate.js.twig';
135
    }
136
137
    /**
138
     * {@inheritdoc}
139
     */
140
    public function getRoutes()
141
    {
142
        return [
143
            'itemView'   => 'orocrm_call_widget_info',
144
            'itemEdit'   => 'orocrm_call_update',
145
            'itemDelete' => 'oro_api_delete_call'
146
        ];
147
    }
148
149
    /**
150
     * {@inheritdoc}
151
     */
152
    public function getActivityClass()
153
    {
154
        return self::ACTIVITY_CLASS;
155
    }
156
157
    /**
158
     * {@inheritdoc}
159
     */
160
    public function getAclClass()
161
    {
162
        return self::ACL_CLASS;
163
    }
164
165
    /**
166
     * {@inheritdoc}
167
     */
168
    public function getActivityId($entity)
169
    {
170
        return $this->doctrineHelper->getSingleEntityIdentifier($entity);
171
    }
172
173
    /**
174
     * {@inheritdoc}
175
     */
176
    public function isApplicable($entity)
177
    {
178
        if (is_object($entity)) {
179
            $entity = $this->doctrineHelper->getEntityClass($entity);
180
        }
181
182
        return $entity == self::ACTIVITY_CLASS;
183
    }
184
185
    /**
186
     * {@inheritdoc}
187
     */
188
    public function getTargetEntities($entity)
189
    {
190
        return $entity->getActivityTargetEntities();
191
    }
192
193
    /**
194
     * {@inheritdoc}
195
     */
196
    public function isCommentsEnabled($entityClass)
197
    {
198
        return $this->commentAssociationHelper->isCommentAssociationEnabled($entityClass);
199
    }
200
201
    /**
202
     * {@inheritdoc}
203
     */
204
    public function getActivityOwners($entity, ActivityList $activityList)
205
    {
206
        $organization = $this->getOrganization($entity);
207
        $owner = $this->entityOwnerAccessorLink->getService()->getOwner($entity);
208
209
        if (!$organization || !$owner) {
210
            return [];
211
        }
212
213
        $activityOwner = new ActivityOwner();
214
        $activityOwner->setActivity($activityList);
215
        $activityOwner->setOrganization($organization);
216
        $activityOwner->setUser($owner);
217
        return [$activityOwner];
218
    }
219
}
220

src/OroCRM/Bundle/TaskBundle/Provider/TaskActivityListProvider.php 1 location

@@ 17-219 (lines=203) @@
14
15
use OroCRM\Bundle\TaskBundle\Entity\Task;
16
17
class TaskActivityListProvider implements
18
    ActivityListProviderInterface,
19
    CommentProviderInterface,
20
    ActivityListDateProviderInterface
21
{
22
    const ACTIVITY_CLASS = 'OroCRM\Bundle\TaskBundle\Entity\Task';
23
    const ACL_CLASS = 'OroCRM\Bundle\TaskBundle\Entity\Task';
24
25
    /** @var DoctrineHelper */
26
    protected $doctrineHelper;
27
28
    /** @var ServiceLink */
29
    protected $entityOwnerAccessorLink;
30
31
    /** @var ActivityAssociationHelper */
32
    protected $activityAssociationHelper;
33
34
    /** @var CommentAssociationHelper */
35
    protected $commentAssociationHelper;
36
37
    /**
38
     * @param DoctrineHelper            $doctrineHelper
39
     * @param ServiceLink               $entityOwnerAccessorLink
40
     * @param ActivityAssociationHelper $activityAssociationHelper
41
     * @param CommentAssociationHelper  $commentAssociationHelper
42
     */
43
    public function __construct(
44
        DoctrineHelper $doctrineHelper,
45
        ServiceLink $entityOwnerAccessorLink,
46
        ActivityAssociationHelper $activityAssociationHelper,
47
        CommentAssociationHelper $commentAssociationHelper
48
    ) {
49
        $this->doctrineHelper            = $doctrineHelper;
50
        $this->entityOwnerAccessorLink   = $entityOwnerAccessorLink;
51
        $this->activityAssociationHelper = $activityAssociationHelper;
52
        $this->commentAssociationHelper  = $commentAssociationHelper;
53
    }
54
55
    /**
56
     * {@inheritdoc}
57
     */
58
    public function isApplicableTarget($entityClass, $accessible = true)
59
    {
60
        return $this->activityAssociationHelper->isActivityAssociationEnabled(
61
            $entityClass,
62
            self::ACTIVITY_CLASS,
63
            $accessible
64
        );
65
    }
66
67
    /**
68
     * {@inheritdoc}
69
     */
70
    public function getSubject($entity)
71
    {
72
        /** @var $entity Task */
73
        return $entity->getSubject();
74
    }
75
76
    /**
77
     * {@inheritdoc}
78
     */
79
    public function getDescription($entity)
80
    {
81
        /** @var $entity Task */
82
        return $entity->getDescription();
83
    }
84
85
    /**
86
     * {@inheritdoc}
87
     */
88
    public function getOwner($entity)
89
    {
90
        /** @var $entity Task */
91
        return $entity->getOwner();
92
    }
93
94
    /**
95
     * {@inheritdoc}
96
     */
97
    public function getCreatedAt($entity)
98
    {
99
        /** @var $entity Task */
100
        return $entity->getCreatedAt();
101
    }
102
103
    /**
104
     * {@inheritdoc}
105
     */
106
    public function getUpdatedAt($entity)
107
    {
108
        /** @var $entity Task */
109
        return $entity->getUpdatedAt();
110
    }
111
112
    /**
113
     * {@inheritdoc}
114
     */
115
    public function getData(ActivityList $activityListEntity)
116
    {
117
        return [];
118
    }
119
120
    /**
121
     * {@inheritdoc}
122
     */
123
    public function getOrganization($activityEntity)
124
    {
125
        /** @var $activityEntity Task */
126
        return $activityEntity->getOrganization();
127
    }
128
129
    /**
130
     * {@inheritdoc
131
     */
132
    public function getTemplate()
133
    {
134
        return 'OroCRMTaskBundle:Task:js/activityItemTemplate.js.twig';
135
    }
136
137
    /**
138
     * {@inheritdoc}
139
     */
140
    public function getRoutes()
141
    {
142
        return [
143
            'itemView'   => 'orocrm_task_widget_info',
144
            'itemEdit'   => 'orocrm_task_update',
145
            'itemDelete' => 'orocrm_api_delete_task'
146
        ];
147
    }
148
149
    /**
150
     * {@inheritdoc}
151
     */
152
    public function getActivityClass()
153
    {
154
        return self::ACTIVITY_CLASS;
155
    }
156
157
    /**
158
     * {@inheritdoc}
159
     */
160
    public function getAclClass()
161
    {
162
        return self::ACL_CLASS;
163
    }
164
165
    /**
166
     * {@inheritdoc}
167
     */
168
    public function getActivityId($entity)
169
    {
170
        return $this->doctrineHelper->getSingleEntityIdentifier($entity);
171
    }
172
173
    /**
174
     * {@inheritdoc}
175
     */
176
    public function isApplicable($entity)
177
    {
178
        if (is_object($entity)) {
179
            $entity = $this->doctrineHelper->getEntityClass($entity);
180
        }
181
182
        return $entity == self::ACTIVITY_CLASS;
183
    }
184
185
    /**
186
     * {@inheritdoc}
187
     */
188
    public function getTargetEntities($entity)
189
    {
190
        return $entity->getActivityTargetEntities();
191
    }
192
193
    /**
194
     * {@inheritdoc}
195
     */
196
    public function isCommentsEnabled($entityClass)
197
    {
198
        return $this->commentAssociationHelper->isCommentAssociationEnabled($entityClass);
199
    }
200
201
    /**
202
     * {@inheritdoc}
203
     */
204
    public function getActivityOwners($entity, ActivityList $activityList)
205
    {
206
        $organization = $this->getOrganization($entity);
207
        $owner = $this->entityOwnerAccessorLink->getService()->getOwner($entity);
208
209
        if (!$organization || !$owner) {
210
            return [];
211
        }
212
213
        $activityOwner = new ActivityOwner();
214
        $activityOwner->setActivity($activityList);
215
        $activityOwner->setOrganization($organization);
216
        $activityOwner->setUser($owner);
217
        return [$activityOwner];
218
    }
219
}
220