Exemple #1
0
 static function ejecutar($func, $endpoint, $request)
 {
     //Si el usuario o grupo no está configurado para Limb, se sale de estos comandos
     if (method_exists('ComandosLimb', $func)) {
         $command = new ComandosLimb();
         $chatDAO = new ChatDAO();
         $chat = $chatDAO->select($request->get_chat_id());
         //Si el chat tiene asociado un solo grupo, se establece ese
         if (sizeof($chat->arrGrupo) == 1) {
             return $command->{$func}($endpoint, $request, $chat->arrGrupo[0]);
         } elseif (sizeof($chat->arrGrupo) > 1) {
             $currentCMDDAO = new CurrentCMDDAO();
             $result = $currentCMDDAO->select($request->get_chat_id());
             if ($result != null) {
                 if ($result['grupo'] != null) {
                     //Obtener datos grupo
                     $grupoDAO = new GrupoDAO();
                     $grupoVO = $grupoDAO->select($result['grupo']);
                     $currentCMDDAO->delete($request->get_chat_id());
                     return $command->{$func}($endpoint, $request, $grupoVO);
                 }
                 //Si hay comando en curso, se borra y se inserta este
                 $currentCMDDAO->delete($request->get_chat_id());
             }
             $cmd = new CurrentCMDVO();
             $cmd->chat_id = $request->get_chat_id();
             $cmd->cmd = $func;
             $resultInsertCMD = $currentCMDDAO->insert($cmd);
             //se pregunta por el grupo
             return Utils::pregunta_grupo($endpoint, $request);
         } else {
             //El chat no está dado de alta
             return null;
         }
     }
     return null;
 }
Exemple #2
0
 private function crearApuesta($endpoint, $request, $currentCMD)
 {
     $grupo = $currentCMD['grupo'];
     $grupoDAO = new GrupoDAO();
     $grupoVO = $grupoDAO->select($currentCMD['grupo']);
     $urlApi = $grupoVO->url_api;
     $jsonTokenUser = Utils::callApi($request, 'tokenusuario/' . $request->get_chat_id() . '?token=' . TOKEN_API_BOT, $urlApi);
     $tokenUsuario = json_decode($jsonTokenUser, true);
     //Si hay token de usuario del chat, se invoca el comando con el token
     if ($tokenUsuario[0]['token']) {
         $this->log->debug("Hay token.");
         $idUsuario = $tokenUsuario[0]['id'];
         $apostarCMDDAO = new ApostarCMDDAO();
         $cmd = $apostarCMDDAO->select($request->get_chat_id());
         $data = array("token" => $tokenUsuario[0]['token'], "idpartido" => $cmd['partido'], "idapostante" => $idUsuario, "importe" => $cmd['importe'], "desc" => $cmd['descrip']);
         $data_string = json_encode($data);
         //Esto se podría meter en el utils
         $curl = curl_init();
         curl_setopt($curl, CURLOPT_URL, $urlApi . '/apuestas/partido');
         curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
         curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
         curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
         curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length: ' . strlen($data_string)));
         $result = curl_exec($curl);
         $apuesta = json_decode($result);
         if (isset($apuesta->error)) {
             return $apuesta->error->text;
         }
         return null;
     } else {
         $this->log->debug("No hay token");
         $emoji_alert = Utils::convert_emoji(0x26a0);
         $text = $emoji_alert . '*Error:*' . PHP_EOL . 'Se ha producido un error';
         return Response::create_text_response($endpoint, $request->get_chat_id(), $text);
     }
 }