Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev 17258 Rev 17259
Línea 789... Línea 789...
789
            return new JsonModel([
789
            return new JsonModel([
790
                'success'   => false,
790
                'success'   => false,
791
                'data'   => 'ERROR_UNAUTHORIZED'
791
                'data'   => 'ERROR_UNAUTHORIZED'
792
            ]);
792
            ]);
793
        }
793
        }
794
        
-
 
795
        
794
            
796
        $slideMapper = MicrolearningSlideMapper::getInstance($this->adapter);
795
        $slideMapper = MicrolearningSlideMapper::getInstance($this->adapter);
797
        $slide = $slideMapper->fetchOneByUuid($slide_uuid);
796
        $slide = $slideMapper->fetchOneByUuid($slide_uuid);
798
        if(!$slide) {
797
        if(!$slide) {
799
            return new JsonModel([
798
            return new JsonModel([
800
                'success'   => false,
799
                'success'   => false,
Línea 884... Línea 883...
884
                
883
                
885
                $slide->file = null;
884
                $slide->file = null;
Línea 886... Línea 885...
886
                $slide->background = null;
885
                $slide->background = null;
887
                
886
                
888
                if($slideMapper->update($slide)) {
-
 
889
                    $slide = $slideMapper->fetchOne($slide->id);    
-
 
890
                    
-
 
891
                    
-
 
Línea -... Línea 887...
-
 
887
                if($slideMapper->update($slide)) {
Línea 892... Línea 888...
892
                    
888
                    $slide = $slideMapper->fetchOne($slide->id);                        
893
                    $files = $this->getRequest()->getFiles()->toArray();
889
                    
-
 
890
                    $files = $this->getRequest()->getFiles()->toArray(); 
-
 
891
                    
Línea 894... Línea 892...
894
                    
892
                    $storage = Storage::getInstance($this->config, $this->adapter);
Línea 895... Línea 893...
895
                    
893
                    $target_path = $storage->getPathMicrolearningSlide();
896
                    $image = Image::getInstance($this->config);
894
 
Línea 897... Línea 895...
897
                    $target_path = $image->getStorage()->getPathMicrolearningSlide();
895
                    $storage->setFiles($files);
Línea 898... Línea -...
898
                    
-
 
899
                    if(isset($files['file']) && empty($files['file']['error'])) {
-
 
900
                        
-
 
901
                        switch($slide->type)
-
 
902
                        {
896
                    
903
                            
897
                    if($storage->setCurrentFilename('file')) {
Línea -... Línea 898...
-
 
898
                        
904
                            case MicrolearningSlide::TYPE_IMAGE :
899
                        switch($slide->type)
-
 
900
                        {
-
 
901
                            
905
                                
902
                            case MicrolearningSlide::TYPE_IMAGE :
906
                                
903
                                
-
 
904
                                try {
Línea 907... Línea 905...
907
                                $tmp_filename  = $files['file']['tmp_name'];
905
                                    list($target_width, $target_height) = explode('x', $this->config['leaderslinked.image_sizes.microlearning_image_size']);
908
                                // $filename      = \LeadersLinked\Library\Functions::normalizeStringFilename($files['file']['name']);
906
                                    
909
                                
907
                                    $tmp_filename  = $storage->getTmpFilename();
910
                                try {
-
 
-
 
908
                                    $filename =  'slide-' .uniqid() . '.jpg';
-
 
909
                                    $target_filename = $storage->composePathToFilename(
-
 
910
                                        Storage::TYPE_MICROLEARNING_SLIDE,
-
 
911
                                        $slide->uuid,
-
 
912
                                        $filename
-
 
913
                                    );
-
 
914
                                    
-
 
915
                                    if($storage->uploadImageCrop($tmp_filename, $target_filename, $target_width, $target_height)) {
-
 
916
                                        $slide->file = $filename;
-
 
917
                                        if(!$slideMapper->update($slide)) {
-
 
918
                                            $this->logger->error('Error al actualizar la diapositiva: ' . $slideMapper->getError());
-
 
919
                                            return new JsonModel([
911
                                    list($target_width, $target_height) = explode('x', $this->config['leaderslinked.image_sizes.microlearning_image_size']);
920
                                                'success'   => false,
912
                                    
921
                                                'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
922
                                            ]);
913
                                    $filename =  'slide-' .uniqid() . '.jpg';
923
                                        }   
914
                                    $crop_to_dimensions = false;
924
                                    } else {
Línea 915... Línea 925...
915
                                    $unlink_source = true;
925
                                        $this->logger->error('Error al subir la imagen: ' . $storage->getError());
Línea 916... Línea 926...
916
                                    
926
                                        return new JsonModel([
917
                                    if($image->uploadProcessChangeSize($tmp_filename, $target_path, $slide->uuid, $filename, $target_width, $target_height, $crop_to_dimensions, $unlink_source)) {
-
 
918
                                        $slide->file = basename($filename);
-
 
919
                                        $slideMapper->update($slide);
-
 
920
                                        
-
 
921
                                    }
927
                                            'success'   => false,
922
                                } catch(\Throwable $e) {
928
                                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
923
                                    error_log($e->getTraceAsString());
929
                                        ]);
924
                                }
930
                                    }
925
                                
931
                                } catch(\Throwable $e) {
926
                                break;
932
                                    $this->logger->error('Error al subir la imagen: ' . $e->getMessage());
927
                                
933
                                    error_log($e->getTraceAsString());
928
                                
934
                                }
Línea 929... Línea 935...
929
                            case MicrolearningSlide::TYPE_DOCUMENT :
935
                                
-
 
936
                                break;
-
 
937
                                
-
 
938
                                
-
 
939
                            case MicrolearningSlide::TYPE_DOCUMENT :                                
-
 
940
                                if($slide->file) {
-
 
941
                                    if(!$storage->deleteFile($target_path, $slide->uuid, $slide->file)) {
-
 
942
                                        return new JsonModel([
-
 
943
                                            'success'   => false,
Línea 930... Línea 944...
930
                                $tmp_filename       = $files['file']['tmp_name'];
944
                                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
931
                                $original_filename  = trim(strtolower($files['file']['name']));
-
 
932
                                
-
 
933
                                
-
 
934
                                if($slide->file) {
945
                                        ]);
935
                                    if(!$image->getStorage()->deleteFile($target_path, $slide->uuid, $slide->file)) {
946
                                    }
-
 
947
                                }
-
 
948
                                
-
 
949
                                try {
-
 
950
                                    $tmp_filename = $storage->getTmpFilename();
-
 
951
                                    $filename = 'document-' . uniqid() . '.pdf';
-
 
952
                                    $target_filename = $storage->composePathToFilename(
936
                                        return new JsonModel([
953
                                        Storage::TYPE_MICROLEARNING_SLIDE,
937
                                            'success'   => false,
954
                                        $slide->uuid,
-
 
955
                                        $filename
938
                                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
956
                                    );
939
                                        ]);
957
 
Línea 940... Línea 958...
940
                                    }
958
                                    
Línea 941... Línea 959...
941
                                }
959
                                    if($storage->putFile($tmp_filename, $target_filename)) {
942
                                
-
 
943
                                try {
-
 
944
                                    
-
 
945
                                    $parts = explode('.', $original_filename);
-
 
946
                                    $filename = 'document-' . uniqid() . '.' . $parts[ count($parts) - 1 ];
960
                                        $slide->file = $filename;
947
                                    
961
                                        if(!$slideMapper->update($slide)) {
948
                                    if($image->getStorage()->moveAndPutFile($target_path, $slide->uuid, $tmp_filename, $filename)) {
962
                                            $this->logger->error('Error al actualizar la diapositiva: ' . $slideMapper->getError());
949
                                        $slide->file = $filename;
963
                                            return new JsonModel([
950
                                        $slideMapper->update($slide);
964
                                                'success'   => false,
951
                                    }
965
                                                'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
952
                                } catch(\Throwable $e) {
966
                                            ]);
953
                                    error_log($e->getTraceAsString());
967
                                        }
Línea 954... Línea 968...
954
                                }
968
                                    }
-
 
969
                                } catch(\Throwable $e) {
-
 
970
                                    $this->logger->error('Error al subir el documento: ' . $e->getMessage());
-
 
971
                                    error_log($e->getTraceAsString());
-
 
972
                                }
-
 
973
                                
-
 
974
                                break;
-
 
975
                                
Línea 955... Línea 976...
955
                                
976
                            case  MicrolearningSlide::TYPE_AUDIO :
956
                                break;
-
 
957
                                
977
                                if($slide->file) {
958
                            case  MicrolearningSlide::TYPE_AUDIO :
-
 
959
                                $tmp_filename       = $files['file']['tmp_name'];
978
                                    if(!$storage->deleteFile($target_path, $slide->uuid, $slide->file)) {
960
                                $original_filename  = trim(strtolower($files['file']['name']));
-
 
961
                                
-
 
962
                                
979
                                        return new JsonModel([
963
                                if($slide->file) {
-
 
964
                                    if(!image ::delete($target_path, $slide->file)) {
980
                                            'success'   => false,
965
                                        return new JsonModel([
981
                                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
966
                                            'success'   => false,
-
 
967
                                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
982
                                        ]);
968
                                        ]);
-
 
969
                                    }
983
                                    }
970
                                }
984
                                }
971
                                
985
                                
-
 
986
                                try {
972
                                try {
987
                                    $tmp_filename = $storage->getTmpFilename();
Línea 973... Línea 988...
973
                                    
988
                                    $filename = 'audio-' . uniqid() . '.mp3';
-
 
989
                                    $target_filename = $storage->composePathToFilename(
974
                                    $parts = explode('.', $original_filename);
990
                                        Storage::TYPE_MICROLEARNING_SLIDE,
975
                                    $filename = 'audio-' . uniqid() . '.' . $parts[ count($parts) - 1 ];
991
                                        $slide->uuid,
Línea 976... Línea 992...
976
                                    
992
                                        $filename
Línea 977... Línea 993...
977
                                    $full_filename      = $image->getStorage()->getTempPath()  . DIRECTORY_SEPARATOR .$filename;
993
                                    );
978
                                    if(move_uploaded_file($tmp_filename , $full_filename)) {
-
 
979
                                        
-
 
980
                                        
-
 
981
                                        $generateFileName   = substr($filename, 0, strrpos($filename, '.')).  '.mp3';
-
 
982
                                        $generateFile       =  $image->getStorage()->getTempPath()  . DIRECTORY_SEPARATOR . $generateFileName ;
994
                                    
983
                                        $cmd                = "/usr/bin/ffmpeg -i $full_filename -b:a 320000 $generateFile";
995
                                    if($storage->putFile($tmp_filename, $target_filename)) {
984
                                        exec($cmd);
996
    
985
                                        
997
                                        $slide->file = $filename;
986
                                        if($image->getStorage()->putFile($target_path, $slide->uuid, $generateFile)) {
998
                                        if(!$slideMapper->update($slide)) {
987
                                            
999
                                            $this->logger->error('Error al actualizar la diapositiva: ' . $slideMapper->getError());
988
                                            $slide->file = $generateFileName;
1000
                                            return new JsonModel([
989
                                            $slideMapper->update($slide);
1001
                                                'success'   => false,
Línea 990... Línea 1002...
990
                                        }
1002
                                                'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
991
                                    }
1003
                                            ]);
992
                                    
1004
                                        }
993
                                } catch(\Throwable $e) {
-
 
994
                                    error_log($e->getTraceAsString());
1005
                                        
-
 
1006
                                    }
-
 
1007
                                    
-
 
1008
                                } catch(\Throwable $e) {
-
 
1009
                                    $this->logger->error('Error al subir el audio: ' . $e->getMessage());
995
                                }
1010
                                    error_log($e->getTraceAsString());
996
                                
1011
                                }
Línea 997... Línea 1012...
997
                                break;
1012
                                
998
                                
1013
                                break;
999
                                
1014
                                
1000
                            case MicrolearningSlide::TYPE_VIDEO :
-
 
1001
                                $tmp_filename       = $files['file']['tmp_name'];
1015
                                
1002
                                $original_filename  = trim(strtolower($files['file']['name']));
-
 
Línea -... Línea 1016...
-
 
1016
                            case MicrolearningSlide::TYPE_VIDEO :
-
 
1017
                                if($slide->file) {
-
 
1018
                                    if(!image ::delete($target_path, $slide->file)) {
-
 
1019
                                        return new JsonModel([
-
 
1020
                                            'success'   => false,
-
 
1021
                                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
1022
                                        ]);
1003
                                
1023
                                    }
1004
                                
1024
                                }
-
 
1025
                                
-
 
1026
                                try {
-
 
1027
                                    $tmp_filename = $storage->getTmpFilename();
-
 
1028
                                    $filename = 'video-' . uniqid() . '.mp4';
-
 
1029
                                    $target_filename = $storage->composePathToFilename(
-
 
1030
                                        Storage::TYPE_MICROLEARNING_SLIDE,
-
 
1031
                                        $slide->uuid,
1005
                                if($slide->file) {
1032
                                        $filename
Línea 1006... Línea 1033...
1006
                                    if(!image ::delete($target_path, $slide->file)) {
1033
                                    );
1007
                                        return new JsonModel([
1034
 
1008
                                            'success'   => false,
-
 
1009
                                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
1035
                                    if($storage->putFile($tmp_filename, $target_filename)) {
1010
                                        ]);
1036
                                        
1011
                                    }
1037
                                        $videoConvert = new VideoConvert();
1012
                                }
1038
                                        $videoConvert->filename = $filename;
1013
                                
1039
                                        $videoConvert->type = VideoConvert::TYPE_MICRO_LEARNING;
1014
                                try {
1040
                                        $videoConvertMapper = VideoConvertMapper::getInstance($this->adapter);
1015
                                    $parts = explode('.', $original_filename);
1041
                                        
1016
                                    $filename = 'video-' . uniqid() . '.' . $parts[ count($parts) - 1 ];
1042
                                        try {
1017
                                    
1043
                                            $videoConvertMapper->insert($videoConvert);
1018
                                    $full_filename      = $target_path  . DIRECTORY_SEPARATOR .$filename;
1044
                                        } catch(\Throwable $e) {
1019
                                    
1045
                                            $this->logger->error('Error al insertar el video: ' . $e->getMessage());
1020
                                    if(move_uploaded_file($tmp_filename , $full_filename)) {
1046
                                            error_log($e->getTraceAsString());
1021
                                        
1047
                                        }
1022
                                        $videoConvert = new VideoConvert();
1048
                                        
1023
                                        $videoConvert->filename = $full_filename;
1049
                                        $slide->file = $filename;
Línea 1024... Línea 1050...
1024
                                        $videoConvert->type = VideoConvert::TYPE_MICRO_LEARNING;
1050
                                        if(!$slideMapper->update($slide)) {
Línea 1025... Línea 1051...
1025
                                        
1051
                                            $this->logger->error('Error al actualizar la diapositiva: ' . $slideMapper->getError());
1026
                                        $videoConvertMapper = VideoConvertMapper::getInstance($this->adapter);
1052
                                            return new JsonModel([
Línea 1027... Línea 1053...
1027
                                        $videoConvertMapper->insert($videoConvert);
1053
                                                'success'   => false,
-
 
1054
                                                'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
1055
                                            ]);
1028
                                        
1056
                                        }
1029
                                        $slide->file = basename($full_filename);
1057
                                        
-
 
1058
                                    }
Línea 1030... Línea 1059...
1030
                                        $slideMapper->update($slide);
1059
                                    
1031
                                    }
1060
                                } catch(\Throwable $e) {
1032
                                    
1061
                                    $this->logger->error('Error al subir el video: ' . $e->getMessage());
-
 
1062
                                    error_log($e->getTraceAsString());
-
 
1063
                                }
-
 
1064
                                break;
-
 
1065
                        }
-
 
1066
                    }
-
 
1067
 
-
 
1068
                    if($storage->setCurrentFilename('background')) {
-
 
1069
                        if($slide->background) {
-
 
1070
                            if(!$storage->deleteFile($target_path, $slide->uuid, $slide->background)) {
-
 
1071
                                return new JsonModel([
-
 
1072
                                    'success'   => false,
-
 
1073
                                    'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
1033
                                } catch(\Throwable $e) {
1074
                                ]);
1034
                                    echo $e->getMessage();
1075
                            }
-
 
1076
                        }
1035
                                    
1077
                        
1036
                                    error_log($e->getTraceAsString());
1078
                        $tmp_filename  = $storage->getTmpFilename();
1037
                                }
1079
                        
Línea 1038... Línea 1080...
1038
                                break;
1080
                        try {