Proyectos de Subversion LeadersLinked - Services

Rev

Rev 602 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 602 Rev 625
Línea 83... Línea 83...
83
     * {@inheritDoc}
83
     * {@inheritDoc}
84
     * @see \Laminas\Mvc\Controller\AbstractActionController::indexAction()
84
     * @see \Laminas\Mvc\Controller\AbstractActionController::indexAction()
85
     */
85
     */
86
    public function indexAction()
86
    public function indexAction()
87
    {
87
    {
88
            
-
 
89
        $request = $this->getRequest();
88
        $request = $this->getRequest();
-
 
89
            
90
        if($request->isGet()) {
90
        if(!$request->isGet()) {
-
 
91
            return new JsonModel([
-
 
92
                'success' => false,
-
 
93
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
94
            ]);
-
 
95
        }
-
 
96
        
-
 
97
        $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
98
        $currentUser = $currentUserPlugin->getUser();
-
 
99
            
-
 
100
        $search = Functions::sanitizeFilterString($this->params()->fromQuery('search', ''));
-
 
101
        $entity = Functions::sanitizeFilterString($this->params()->fromQuery('entity', 'capsules'));
-
 
102
        
-
 
103
        $storage = Storage::getInstance($this->config, $this->adapter);
-
 
104
 
-
 
105
        if($entity == 'rewards') {
91
            $currentUserPlugin = $this->plugin('currentUserPlugin');
106
            $currentUserPlugin = $this->plugin('currentUserPlugin');
92
            $currentUser = $currentUserPlugin->getUser();
107
            $currentUser = $currentUserPlugin->getUser();
Línea -... Línea 108...
-
 
108
            
-
 
109
            $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
-
 
110
            $currentNetwork = $currentNetworkPlugin->getNetwork();
-
 
111
            
-
 
112
            $companyMapper = CompanyMapper::getInstance($this->adapter);
-
 
113
            $company = $companyMapper->fetchDefaultForNetworkByNetworkId($currentNetwork->id);
-
 
114
            
-
 
115
            $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
116
            $select = $queryMapper->getSql()->select( EngagementRewardMapper::_TABLE);
-
 
117
            $select->columns(['uuid', 'name',   'image', 'points']);
-
 
118
            $select->where->equalTo('company_id', $company->id);
-
 
119
            $select->where->equalTo('status', EngagementReward::STATUS_ACTIVE);
-
 
120
            
-
 
121
            if($search) {
-
 
122
                $select->where->like('c.name', '%' . $search . '%');
-
 
123
            }
-
 
124
            
-
 
125
            $select->order(['name ASC']);
-
 
126
            
-
 
127
            
-
 
128
            $path = $storage->getPathEngagementReward();
-
 
129
            
-
 
130
            $records = $queryMapper->fetchAll($select);
-
 
131
            
-
 
132
            $items = [];
-
 
133
            foreach($records as $record)
-
 
134
            {
-
 
135
 
-
 
136
                
-
 
137
                $item = [
-
 
138
                    
-
 
139
                    'name' => $record['name'],
-
 
140
                    'image' => $storage->getGenericImage($path, $record['uuid'], $record['image']),
-
 
141
                    'points' => $record['points'],
-
 
142
                    'link_claim' => $this->url()->fromRoute('marketplace/claim', ['id' => $record['uuid']])
Línea 93... Línea -...
93
            
-
 
94
                
-
 
Línea 95... Línea 143...
95
                $search = Functions::sanitizeFilterString($this->params()->fromQuery('search', ''));
143
                ];
96
                $entity = Functions::sanitizeFilterString($this->params()->fromQuery('entity', 'capsules'));
144
                
-
 
145
                
-
 
146
                array_push($items, $item);
-
 
147
            }
Línea 97... Línea -...
97
                
-
 
98
                $storage = Storage::getInstance($this->config, $this->adapter);
148
            
99
                if($entity == 'rewards') {
-
 
100
        
-
 
101
                    $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
102
                    $currentUser = $currentUserPlugin->getUser();
-
 
103
                    
149
            
104
                    $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
-
 
105
                    $currentNetwork = $currentNetworkPlugin->getNetwork();
-
 
106
                    
-
 
107
                    $companyMapper = CompanyMapper::getInstance($this->adapter);
-
 
108
                    $company = $companyMapper->fetchDefaultForNetworkByNetworkId($currentNetwork->id);
-
 
109
                    
-
 
110
                    
-
 
111
                    
-
 
112
                    $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
113
                    $select = $queryMapper->getSql()->select( EngagementRewardMapper::_TABLE);
-
 
114
                    $select->columns(['uuid', 'name',   'image', 'points']);
-
 
115
                    $select->where->equalTo('company_id', $company->id);
-
 
116
                    $select->where->equalTo('status', EngagementReward::STATUS_ACTIVE);
-
 
117
                    
-
 
118
                    if($search) {
-
 
119
                        $select->where->like('c.name', '%' . $search . '%');
-
 
120
                    }
-
 
121
                    
-
 
122
                    $select->order(['name ASC']);
-
 
123
                    
-
 
124
                    
-
 
125
                    $path = $storage->getPathEngagementReward();
-
 
126
                    
-
 
127
                    $records = $queryMapper->fetchAll($select);
-
 
128
                    
-
 
129
                    $items = [];
-
 
130
                    foreach($records as $record)
-
 
131
                    {
-
 
132
 
-
 
133
                        
-
 
134
                        $item = [
-
 
135
                            
-
 
136
                            'name' => $record['name'],
-
 
137
                            'image' => $storage->getGenericImage($path, $record['uuid'], $record['image']),
-
 
138
                            'points' => $record['points'],
-
 
139
                            'link_claim' => $this->url()->fromRoute('marketplace/claim', ['id' => $record['uuid']])
-
 
140
                        ];
-
 
141
                        
-
 
142
                        
-
 
143
                        array_push($items, $item);
-
 
144
                    }
150
        } 
145
                    
-
 
146
                    
-
 
147
                } else if($entity == 'capsules') {
151
        
148
                    $path = $storage->getPathMicrolearningCapsule();
152
        if($entity == 'capsules') {
149
                    $microlearningCapsuleUserMapper = MicrolearningCapsuleUserMapper::getInstance($this->adapter);
153
            $microlearningCapsuleUserMapper = MicrolearningCapsuleUserMapper::getInstance($this->adapter);
150
                    
154
            $path = $storage->getPathMicrolearningCapsule();
151
                   
155
            
152
                    $queryMapper = QueryMapper::getInstance($this->adapter);
156
            $queryMapper = QueryMapper::getInstance($this->adapter);
153
                    $select = $queryMapper->getSql()->select();
157
            $select = $queryMapper->getSql()->select();
154
                    $select->columns(['id', 'uuid', 'name', 'status', 'image', 'privacy', 'type', 'marketplace']);
158
            $select->columns(['id', 'uuid', 'name', 'status', 'image', 'privacy', 'type', 'marketplace']);
155
                    $select->from(['c' => MicrolearningCapsuleMapper::_TABLE]);
159
            $select->from(['c' => MicrolearningCapsuleMapper::_TABLE]);
156
                    $select->join(['t' => MicrolearningTopicMapper::_TABLE], ' c.topic_id = t.id ', ['topic_uuid' => 'uuid']);
160
            $select->join(['t' => MicrolearningTopicMapper::_TABLE], ' c.topic_id = t.id ', ['topic_uuid' => 'uuid']);
157
                    $select->join(['o' => CompanyMapper::_TABLE], ' c.company_id = o.id ', ['company_uuid' => 'uuid']);
-
 
158
                    $select->where->equalTo('c.privacy', MicrolearningCapsule::PRIVACY_PUBLIC);
161
            $select->join(['o' => CompanyMapper::_TABLE], ' c.company_id = o.id ', ['company_uuid' => 'uuid']);
159
                    $select->where->equalTo('c.type', MicrolearningCapsule::TYPE_FREE);
162
            $select->where->equalTo('c.privacy', MicrolearningCapsule::PRIVACY_PUBLIC);
160
                    $select->where->equalTo('c.status', MicrolearningCapsule::STATUS_ACTIVE);
163
            $select->where->equalTo('c.type', MicrolearningCapsule::TYPE_FREE);
161
                    
164
            $select->where->equalTo('c.status', MicrolearningCapsule::STATUS_ACTIVE);
162
                    if($search) {
165
            if($search) {
163
                        $select->where->like('c.name', '%' . $search . '%');
166
                $select->where->like('c.name', '%' . $search . '%');
164
                    }
-
 
165
                    $select->order(['name ASC']);
-
 
166
                    
-
 
167
                   //echo $select->getSqlString($this->adapter->platform); exit;
-
 
168
    
-
 
169
                    $records = $queryMapper->fetchAll($select);
-
 
170
    
-
 
171
                    $items = [];
-
 
172
                    foreach($records as $record)
-
 
173
                    {
-
 
174
                        $capsuleUser = $microlearningCapsuleUserMapper->fetchOneByUserIdAndCapsuleId($currentUser->id, $record['id']);
-
 
175
                        
-
 
176
                        
-
 
177
                        $params = [
-
 
178
                            'company_id' => $record['company_uuid'], 
-
 
179
                            'topic_id' => $record['topic_uuid'], 
-
 
180
                            'capsule_id' => $record['uuid']
-
 
181
                        ];
-
 
182
                        
-
 
183
                        $item = [
-
 
184
                            'name' => $record['name'],
-
 
185
                            'image' => $storage->getGenericImage($path, $record['uuid'],  $record['marketplace']),
-
 
186
                            'status' => $capsuleUser ? 'LABEL_ENROLLED' : 'LABEL_AVAILABLE',
-
 
187
                            'link_enroll' => $capsuleUser ? '' : $this->url()->fromRoute('marketplace/enroll', $params), 
-
 
188
                        ];
-
 
189
                        
-
 
Línea -... Línea 167...
-
 
167
            }
-
 
168
            $select->order(['name ASC']);
-
 
169
            
-
 
170
            //echo $select->getSqlString($this->adapter->platform); exit;
-
 
171
 
-
 
172
            $records = $queryMapper->fetchAll($select);
Línea -... Línea 173...
-
 
173
 
-
 
174
            $items = [];
-
 
175
            foreach($records as $record)
-
 
176
            {
-
 
177
                $capsuleUser = $microlearningCapsuleUserMapper->fetchOneByUserIdAndCapsuleId($currentUser->id, $record['id']);
Línea 190... Línea 178...
190
    
178
                
191
                        array_push($items, $item);
179
                $params = [
-
 
180
                    'company_id' => $record['company_uuid'], 
192
                    }
181
                    'topic_id' => $record['topic_uuid'], 
-
 
182
                    'capsule_id' => $record['uuid']
193
                }
183
                ];
Línea 194... Línea 184...
194
 
184
                
195
                
-
 
196
                
-
 
197
                $response = [
-
 
198
                    'success' => true,
-
 
199
                    'data' => $items
-
 
200
                ];
-
 
201
                
185
                $item = [
202
                return new JsonModel($response);
186
                    'name' => $record['name'],
-
 
187
                    'image' => $storage->getGenericImage($path, $record['uuid'],  $record['marketplace']),
-
 
188
                    'status' => $capsuleUser ? 'LABEL_ENROLLED' : 'LABEL_AVAILABLE',
-
 
189
                    'link_enroll' => $capsuleUser ? '' : $this->url()->fromRoute('marketplace/enroll', $params), 
-
 
190
                ];
-
 
191
                
-
 
192
                array_push($items, $item);
-
 
193
            }
-
 
194
        }
203
 
195
 
Línea 204... Línea 196...
204
            
196
        $response = [
205
        } else {
197
            'success' => true,
206
            return new JsonModel([
198
            'data' => $items