2018-07-13 19:06:08 -05:00
package Dojo::Model::Vuelo ;
use Mojo::File 'path' ;
use Mojo::JSON qw( decode_json encode_json ) ;
2018-07-20 05:16:47 -05:00
use Dojo::Support qw{ log dmph merge_hash load_module get_names } ;
use Mojo::Base 'Mojolicious::Controller' ;
2018-07-13 19:06:08 -05:00
use File::Basename ;
2018-08-15 02:47:30 -05:00
use Encode qw( decode_utf8 encode_utf8 ) ;
2018-07-13 19:06:08 -05:00
use Text::Markdown qw{ markdown } ;
use DBI ;
use Dojo::Conf ;
sub new { bless { } , shift } ;
2018-08-16 03:26:43 +00:00
#just for fun
2018-07-13 19:06:08 -05:00
2018-07-20 05:16:47 -05:00
# Read vdg user ===============================================================
sub mod {
my $ q = "select nombre,contenido from casa;" ;
my % h = map { $ _ - > { nombre } = > $ _ - > { contenido } } @ { _read ( $ q ) } ;
return % h ;
}
sub md_to_hash {
my ( $ self , @ filelist ) = @ _ ;
return { map { basename ( $ _ , ".md" ) = > load_md ( "public/$_" ) } @ filelist } ;
}
sub calendar_monthblock {
return _read ( path ( "public/home/cal/q1Block.q" ) - > slurp ) ;
}
sub calendar_events {
return _read ( path ( "public/home/cal/q3Event.q" ) - > slurp ) ;
}
sub event {
my ( $ self , $ id ) = @ _ ;
return shift @ { _read ( path ( "public/home/event/qEvent.q" ) - > slurp , $ id ) } ;
}
sub store {
return _read ( path ( "public/home/store/qStore.q" ) - > slurp ) ;
}
sub tv_videos {
return _read ( path ( "public/home/tv/qSeries.q" ) - > slurp ) ; #group,name
}
sub tv_series {
return _read ( path ( "public/home/tv/qTable.q" ) - > slurp ) ; #name,order,group
}
sub podcast_txt {
2018-08-16 03:18:46 +00:00
# return "Hemos desarrollado con mucho cariño ejercicios gratuitos y descargables que pueden ser practicados por cualquier persona aún antes de asistir a uno de los cursos de instrucción.";
return decode_utf8 ( path ( "public/home/podcast/text.txt" ) - > slurp ) ;
2018-07-20 05:16:47 -05:00
}
sub podcast_infoHash {
return decode_json path ( "public/home/podcast/jsonPod.json" ) - > slurp ;
}
2018-07-27 18:55:22 -05:00
2018-07-20 05:16:47 -05:00
#==============================================================================
# Read vdg admin ==============================================================
sub msg_heads {
my ( $ self , @ bind ) = @ _ ;
my @ empty ;
my $ q = path ( "public/home/admin/mensajes/qEntries.q" ) - > slurp ;
2018-08-15 07:59:04 +00:00
my $ dbh = DBI - > connect ( "DBI:mysql:" . Dojo::Conf:: MSGDB . ":" . Dojo::Conf:: MSGDB_H , Dojo::Conf:: MSGDB_UR , Dojo::Conf:: MSGDB_URP , { mysql_enable_utf8 = > 1 } ) ;
2018-07-20 05:16:47 -05:00
return \ @ empty unless ( $ dbh ) ;
2018-08-16 03:18:46 +00:00
my $ h = $ dbh - > selectall_arrayref ( $ q , { Slice = > { } } , @ bind ) // "error" ;
2018-07-20 05:16:47 -05:00
#((col1=>d1,col2=>d1),(col1=>d2,col2=>d2))
$ dbh - > disconnect ( ) ;
return $ h ;
}
sub msg {
my ( $ c , @ bind ) = @ _ ;
my @ empty ;
my $ q = path ( "public/home/admin/mensajes/json/qGetInfo.q" ) - > slurp ;
2018-08-15 07:59:04 +00:00
my $ dbh = DBI - > connect ( "DBI:mysql:" . Dojo::Conf:: MSGDB . ":" . Dojo::Conf:: MSGDB_H , Dojo::Conf:: MSGDB_UR , Dojo::Conf:: MSGDB_URP , { mysql_enable_utf8 = > 1 } ) ;
2018-07-20 05:16:47 -05:00
return \ @ empty unless ( $ dbh ) ;
2018-08-16 03:18:46 +00:00
my $ h = $ dbh - > selectall_arrayref ( $ q , { Slice = > { } } , @ bind ) // \ @ empty ;
2018-07-20 05:16:47 -05:00
#((col1=>d1,col2=>d1),(col1=>d2,col2=>d2))
$ dbh - > disconnect ( ) ;
return shift @$ h ;
}
sub courses { return _read ( "select nombre as name, id from curso;" ) }
sub course { return shift @ { _read ( path ( "public/home/admin/event/json/qCourse.q" ) - > slurp , pop ) } }
sub places { return _read ( "select nombre as name, id from lugar;" ) }
sub place { return shift @ { _read ( path ( "public/home/admin/event/json/qPlace.q" ) - > slurp , pop ) } }
sub months { return _read ( "select nombre as name, id from mes;" ) } ;
sub events { return _read ( path ( "public/home/admin/event/qEprev.q" ) - > slurp ) }
sub eventa { return shift @ { _read ( path ( "public/home/admin/event/json/qEvent.q" ) - > slurp , pop ) } }
sub eimgList { return [ get_names ( "public/home/cal/img/" ) ] }
#==============================================================================
2018-08-15 05:07:04 +00:00
# Write vdg user ==============================================================
sub contact {
my $ c = shift ;
my $ q = "insert into entrada (nombre,correo,pagina,texto,fecha) values(?,?,?,?,now() )" ;
return _writemsg ( $ q , @ _ ) ;
}
#==============================================================================
2018-07-20 05:16:47 -05:00
# Write vdg admin ==============================================================
sub umod {
my $ c = shift ;
my $ q = "update casa set contenido = ? where nombre = ? ;" ;
return _write ( $ q , @ _ ) ;
}
sub event_del { return _write ( "delete from evento where id = ?;" , pop ) ; }
sub course_del { return _write ( "delete from curso where id = ?;" , pop ) ; }
sub place_del { return _write ( "delete from lugar where id = ?;" , pop ) ; }
sub event_up {
my ( $ self , @ bind ) = @ _ ;
return _write ( path ( "public/home/admin/event/add/qEup.q" ) - > slurp , @ bind ) ;
}
sub course_up {
my ( $ self , @ bind ) = @ _ ;
return _write ( path ( "public/home/admin/event/add/qCup.q" ) - > slurp , @ bind ) ;
}
sub place_up {
my ( $ self , @ bind ) = @ _ ;
return _write ( path ( "public/home/admin/event/add/qPup.q" ) - > slurp , @ bind ) ;
}
sub event_ch {
my ( $ self , @ bind ) = @ _ ;
return _write ( path ( "public/home/admin/event/change/qEup.q" ) - > slurp , @ bind ) ;
}
sub course_ch {
my ( $ self , @ bind ) = @ _ ;
return _write ( path ( "public/home/admin/event/change/qCup.q" ) - > slurp , @ bind ) ;
}
sub place_ch {
my ( $ self , @ bind ) = @ _ ;
return _write ( path ( "public/home/admin/event/change/qPup.q" ) - > slurp , @ bind ) ;
}
#==============================================================================
2018-07-13 19:06:08 -05:00
2018-07-20 05:16:47 -05:00
#ayudas =====================================
sub tst {
2018-07-19 03:45:46 -05:00
2018-07-18 16:04:47 -05:00
my $ c = shift ;
2018-07-20 05:16:47 -05:00
my $ d = $ c - > param ( 'n' ) ;
log ( "------log-------" ) ;
log ( "$d" ) ;
log ( "------log-------" ) ;
return 0 ;
2018-07-19 03:45:46 -05:00
}
2018-07-13 19:06:08 -05:00
sub _read {
2018-07-18 04:28:26 -05:00
my ( $ q , @ bind ) = @ _ ;
2018-07-20 05:16:47 -05:00
my @ empty ;
2018-08-15 02:47:30 -05:00
my $ dbh = DBI - > connect ( "DBI:mysql:" . Dojo::Conf:: VUELODB . ":" . Dojo::Conf:: VUELODB_H , Dojo::Conf:: VUELODB_UR , Dojo::Conf:: VUELODB_URP , { mysql_enable_utf8 = > 1 } ) ;
2018-07-13 19:06:08 -05:00
return \ @ empty unless ( $ dbh ) ;
2018-08-16 03:18:46 +00:00
my $ h = $ dbh - > selectall_arrayref ( $ q , { Slice = > { } } , @ bind ) // "error" ;
2018-07-13 19:06:08 -05:00
$ dbh - > disconnect ( ) ;
2018-07-20 05:16:47 -05:00
#((col1=>d1,col2=>d1),(col1=>d2,col2=>d2))
2018-07-13 19:06:08 -05:00
return $ h ;
}
2018-07-20 05:16:47 -05:00
2018-07-18 04:28:26 -05:00
sub _write {
2018-07-20 05:16:47 -05:00
my ( $ q , @ bind ) = @ _ ;
2018-07-18 04:28:26 -05:00
my ( @ empty ) ;
2018-08-15 07:59:04 +00:00
my $ dbh = DBI - > connect ( "DBI:mysql:" . Dojo::Conf:: VUELODB . ":" . Dojo::Conf:: VUELODB_H , Dojo::Conf:: VUELODB_UW , Dojo::Conf:: VUELODB_UWP , { mysql_enable_utf8 = > 1 } ) ;
2018-07-18 04:28:26 -05:00
return 0 unless ( $ dbh ) ;
2018-08-16 03:18:46 +00:00
my $ h = $ dbh - > do ( $ q , { Slice = > { } } , @ bind ) // "error" ;
2018-07-18 04:28:26 -05:00
$ dbh - > disconnect ( ) ;
2018-07-20 05:16:47 -05:00
log ( "db write: $h" ) ;
2018-07-18 04:28:26 -05:00
return $ h ;
}
2018-07-13 19:06:08 -05:00
2018-08-15 05:07:04 +00:00
sub _writemsg {
my ( $ q , @ bind ) = @ _ ;
my ( @ empty ) ;
2018-08-15 07:59:04 +00:00
my $ dbh = DBI - > connect ( "DBI:mysql:" . Dojo::Conf:: MSGDB . ":" . Dojo::Conf:: MSGDB_H , Dojo::Conf:: MSGDB_UW , Dojo::Conf:: MSGDB_UWP , { mysql_enable_utf8 = > 1 } ) ;
2018-08-15 05:07:04 +00:00
return 0 unless ( $ dbh ) ;
2018-08-16 03:18:46 +00:00
my $ h = $ dbh - > do ( $ q , { Slice = > { } } , @ bind ) // "error" ;
2018-08-15 05:07:04 +00:00
$ dbh - > disconnect ( ) ;
log ( "db write: $h" ) ;
return $ h ;
}
2018-07-13 19:06:08 -05:00
sub load_md {
return "" unless
my $ text = path ( shift ) - > slurp ;
return markdown ( decode_utf8 ( $ text ) ) ;
}
sub load_txt {
return "" unless
my $ text = path ( shift ) - > slurp ;
return decode_utf8 ( $ text ) ;
}
2018-07-17 23:26:10 +00:00
1 ;