Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev 17078 Rev 17185
Línea 745... Línea 745...
745
                'success' => false,
745
                'success' => false,
746
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
746
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
747
            ]);
747
            ]);
748
        }
748
        }
749
    }
749
    }
750
    
-
 
751
    
-
 
752
    public function usersAction()
-
 
753
    {
-
 
754
        $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
755
        $currentUser    = $currentUserPlugin->getUser();
-
 
756
        $currentCompany = $currentUserPlugin->getCompany();
-
 
757
        
-
 
758
        $request        = $this->getRequest();
-
 
759
        $topic_uuid     = $this->params()->fromRoute('topic_uuid');
-
 
760
        $capsule_uuid   = $this->params()->fromRoute('capsule_uuid');
-
 
761
        $type           = $this->params()->fromRoute('type'); 
-
 
762
        
-
 
763
        
-
 
764
       
-
 
765
        
-
 
766
        $capsuleMapper = MicrolearningCapsuleMapper::getInstance($this->adapter);
-
 
767
        $capsule = $capsuleMapper->fetchOneByUuid($capsule_uuid);
-
 
768
        if(!$capsule) {
-
 
769
            return new JsonModel([
-
 
770
                'success'   => false,
-
 
771
                'data'   => 'ERROR_CAPSULE_NOT_FOUND'
-
 
772
            ]);
-
 
773
        }
-
 
774
        
-
 
775
        if($capsule->company_id != $currentCompany->id) {
-
 
776
            return new JsonModel([
-
 
777
                'success'   => false,
-
 
778
                'data'   => 'ERROR_UNAUTHORIZED'
-
 
779
            ]);
-
 
780
        }
-
 
781
        
-
 
782
        if($request->isGet()) {
-
 
783
 
-
 
784
 
-
 
785
            $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
786
            $sql = $queryMapper->getSql();
-
 
787
            $select = $sql->select();
-
 
788
            $select->columns(['access', 'paid_from', 'paid_to', 'added_on']);
-
 
789
            $select->from(['tb1' => MicrolearningCapsuleUserMapper::_TABLE] );
-
 
790
            $select->join(['tb2' => UserMapper::_TABLE], 'tb1.user_id = tb2.id', ['uuid', 'first_name', 'last_name', 'email']);
-
 
791
            $select->where->equalTo('tb1.company_id', $capsule->company_id);
-
 
792
            $select->where->equalTo('tb1.capsule_id', $capsule->id);
-
 
793
            
-
 
794
            if($type == 'active') {
-
 
795
                $now = date('Y-m-d H:i:s');
-
 
796
                $select->where->nest->equalTo('access', MicrolearningCapsuleUser::ACCESS_UNLIMITED)->or->nest()
-
 
797
                ->equalTo('access', MicrolearningCapsuleUser::ACCESS_PAY_PERIOD)
-
 
798
                ->and->lessThanOrEqualTo('paid_from', $now)->and->greaterThanOrEqualTo('paid_to', $now )->unnest()->unnest();
-
 
799
                
-
 
800
            } 
-
 
801
 
-
 
802
            
-
 
803
            $select->order(['first_name', 'last_name', 'email']);
-
 
804
            $records  = $queryMapper->fetchAll($select);
-
 
805
            
-
 
806
            
-
 
807
            $items = [ ];
-
 
808
            foreach($records as $record)
-
 
809
            {
-
 
810
                
-
 
811
                
-
 
812
                
-
 
813
                
-
 
814
                switch($record['access'])
-
 
815
                {
-
 
816
                    case MicrolearningCapsuleUser::ACCESS_UNLIMITED :
-
 
817
                        $details['access'] = 'LABEL_UNLIMIT';
-
 
818
                        break;
-
 
819
                        
-
 
820
                    case MicrolearningCapsuleUser::ACCESS_REVOKE :
-
 
821
                        $details['access'] = 'LABEL_REVOKED';
-
 
822
                        break;
-
 
823
                        
-
 
824
                    case MicrolearningCapsuleUser::ACCESS_PAY_PERIOD :
-
 
825
                        $dt_paid_from = \DateTime::createFromFormat('Y-m-d', $record['paid_from']);
-
 
826
                        $dt_paid_to = \DateTime::createFromFormat('Y-m-d', $record['paid_to']);
-
 
827
                        
-
 
828
                        $details['access'] = 'LABEL_PAY_PERIOD';
-
 
829
                        $details['paid_from'] = $dt_paid_from->format('d/m/Y');
-
 
830
                        $details['paid_to'] = $dt_paid_to->format('d/m/Y');
-
 
831
                        break;
-
 
832
                        
-
 
833
                    case MicrolearningCapsuleUser::ACCESS_SUPENDED :
-
 
834
                        $dt_paid_from = \DateTime::createFromFormat('Y-m-d', $record['paid_from']);
-
 
835
                        $dt_paid_to = \DateTime::createFromFormat('Y-m-d', $record['paid_to']);
-
 
836
                        
-
 
837
                        $details['access'] = 'LABEL_SUSPENDED';
-
 
838
                        $details['paid_from'] = $dt_paid_from->format('d/m/Y');
-
 
839
                        $details['paid_to'] = $dt_paid_to->format('d/m/Y');
-
 
840
                        break;
-
 
841
                        
-
 
842
                    case MicrolearningCapsuleUser::ACCESS_CANCELLED :
-
 
843
                        $dt_paid_from = \DateTime::createFromFormat('Y-m-d', $record['paid_from']);
-
 
844
                        $dt_paid_to = \DateTime::createFromFormat('Y-m-d', $record['paid_to']);
-
 
845
                        
-
 
846
                        $details['access'] = 'LABEL_CANCELLED';
-
 
847
                        $details['paid_from'] = $dt_paid_from->format('d/m/Y');
-
 
848
                        $details['paid_to'] = $dt_paid_to->format('d/m/Y');
-
 
849
                        break;
-
 
850
                        
-
 
851
                }
-
 
852
                
-
 
853
                
-
 
854
                $item = [
-
 
855
                    'first_name' => $record['first_name'],
-
 
856
                    'last_name' => $record['last_name'],
-
 
857
                    'email' => $record['email'],
-
 
858
                    'details' => $details,
-
 
859
                ];
-
 
860
                
-
 
861
                
-
 
862
                
-
 
863
                array_push($items, $item);
-
 
864
                
-
 
865
                
-
 
866
            }
-
 
867
            
-
 
868
            return new JsonModel([
-
 
869
                'success' => true,
-
 
870
                'data' => [
-
 
871
                    'topic' => $topic->name,
-
 
872
                    'capsule' => $capsule->name,
-
 
873
                    'items' => $items, 
-
 
874
                ]    
-
 
875
            ]);
-
 
876
            
-
 
877
            
-
 
878
            
-
 
879
        } else {
-
 
880
            $data = [
-
 
881
                'success' => false,
-
 
882
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
883
            ];
-
 
884
            
-
 
885
            return new JsonModel($data);
-
 
886
        }
-
 
887
        
-
 
888
        return new JsonModel($data);
-
 
889
    }
-
 
890
    
-
 
891
}
750
}