
    Ki"                        d dl mZmZmZ d dlmZ d dlmZ d dlZ	d dl
Z
 e
j                  e      Z eded      Zej                  dd	g
      ed               Zej                  ddg
      ed               Zej                  ddg
      ed               Zej                  dd	g
      ed               Zej                  dd	g
      ed               Zy)    )	Blueprintrequestjsonify)db)token_requiredNentrenamientosz/v1/entrenamientos)
url_prefix POST)methodsc                     t        j                         } g d}|D ])  }| j                  |      rt        dd| dd      dfc S  | d   }| d   }| d	   }| d
   }| d   }| j                  d      }| j                  d      }	| j                  d      }
t	        j
                         }|st        ddd      dfS 	 |j                         }|j                  dt         j                  ||
||||||	f	       |j                          t        ddd      df|j                          |j                          S # t        j                  j                  $ rn}|j                          t        j!                  d|        t        ddt#        |       d      dfcY d }~j                          |j                          S d }~ww xY w# j                          |j                          w xY w)N)	idEntrenafecha	distanciatiempo	velocidaderrorCampo  es obligatoriostatusmessage  r   r   r   r   r   
valoracioncomentariostipoEntrena%   Error de conexión a la base de datos  zINSERT INTO Xalarrazabal025_entrenamientos 
            (usuario_id, id_local, idActividad, fechaHora, tiempo, distancia, velocidad, valoracion, comentarios) 
            VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)successz$Entrenamiento guardado correctamente   Database error: z#Error al guardar el entrenamiento: )r   get_jsongetr   r   get_connectioncursorexecuteuser_idcommitclosemysql	connectorErrorrollbackloggerr   str)datarequired_fieldsfield
id_entrenar   r   r   r   r   r   tipo_entrena
connectionr%   es                 5/home/asierla/Garatu/api/app/entrenamientos/routes.pycrear_entrenamientor8      s    DPO  xx!#E7/:    k"JME[!I(^F[!I,'J((=)K88M*L""$J>
   	
""$; __j,vy
K1		
 	=
   	 ??   's+,<SVHE
   	
 	 	s2   :AD3 3F>AF9F>G 9F>>G "G#z/<int:id_entrena>PUTc                    t        j                         }|j                  d      }|j                  d      }| dk  rt        ddd      dfS t	        j
                         }|st        ddd      d	fS 	 |j                         }|j                  d
||| t         j                  f       |j                          |j                  dkD  r.t        ddd      |j                          |j                          S t        ddd      df|j                          |j                          S # t        j                  j                  $ rn}|j                          t         j#                  d|        t        ddt%        |       d      d	fcY d }~j                          |j                          S d }~ww xY w# j                          |j                          w xY w)Nr   
comentarior   r      ID de entrenamiento inválidor   r   r   r   zUPDATE Xalarrazabal025_entrenamientos 
            SET valoracion = %s, comentarios = %s 
            WHERE id_local = %s 
            AND usuario_id = %sr   z Datos actualizados correctamenteu5   No se encontró el entrenamiento o no tienes permisosi  r!   zError al actualizar: )r   r"   r#   r   r   r$   r%   r&   r'   r(   rowcountr)   r*   r+   r,   r-   r.   r   r/   )r3   r0   r   r;   r5   r%   r6   s          r7   actualizar_entrenamientor>   E   s    D,'J,'JQ6
   	
 ""$J>
   	
!""$# ZA	
 	??Q#= $ 	 !R   	 ??   's+,.s1vh7
   	
 	 	s8   3A D$ 4D$ $F/AF*F/F2 *F//F2 2"GDELETEc                    | dk  rt        ddd      dfS t        j                         }|st        ddd      dfS 	 |j                         }|j	                          	 |j                  d| f       |j                  d	t        j                  | f       |j                  dk(  rt        d
      |j                          t        ddd      |j                          |j                          S # t        $ rV}|j                          t        ddt        |       d      dfcY d }~|j                          |j                          S d }~ww xY w# t        j                  j                   $ r^}t"        j%                  d|        t        ddt        |       d      dfcY d }~j                          |j                          S d }~ww xY w# j                          |j                          w xY w)Nr   r   r<   r   r   r   r   z4DELETE FROM Xalarrazabal025_Ruta WHERE id_local = %szRDELETE FROM Xalarrazabal025_entrenamientos WHERE usuario_id = %s AND id_local = %su2   No se encontró el entrenamiento para este usuarior   z%Entrenamiento eliminado correctamentezError al eliminar: r!   zError de base de datos: )r   r   r$   r%   start_transactionr&   r   r'   r=   	Exceptionr(   r)   r-   r/   r*   r+   r,   r.   r   )r3   r5   r%   r6   s       r7   eliminar_entrenamientorC   }   s    Q6
   	
 ""$J>
   	
,""$ 	$$&	NNF NNd*-
 !# TUU#B & 	  	!!0Q9    		 ??   's+,1#a&:
   	
 	 	sZ    E A,C+ +	E
4+EE
 E E

E G*3GGG GG "G-z/no-localesc                     t        j                         } | j                  dg       }t        j                         }|st        ddd      dfS 	 |j                  d      }|rKdj                  d	gt        |      z        }d
| d}t         j                  g|z   }|j                  ||       n!|j                  dt         j                  f       |j                         }|D ]-  }|j                  d|d   f       |j                         }	|	|d<   / t        d|d      |j                          |j                          S # t        j                  j                  $ rR}
t         j#                  d|
        t        ddd      dfcY d }
~
j                          |j                          S d }
~
ww xY w# j                          |j                          w xY w)Nids_localesr   r   r   r   T)
dictionary,z%szpSELECT * FROM Xalarrazabal025_entrenamientos 
                       WHERE usuario_id = %s AND id_local NOT IN ()zBSELECT * FROM Xalarrazabal025_entrenamientos WHERE usuario_id = %szTSELECT id, id_local, latitud, longitud FROM Xalarrazabal025_Ruta WHERE id_local = %sid_localrutasr   )r   r0   r!   zError de base de datos)r   r"   r#   r   r$   r   r%   joinlenr'   r&   fetchallr)   r*   r+   r,   r.   r   )r0   rE   r5   r%   placeholdersqueryparamsr   entrenamientorJ   r6   s              r7   !obtener_entrenamientos_no_localesrR      s    D((="-K""$J>
   	
'""d"388TFS-=$=>LCCO.PQUEoo&4FNN5&)NNT"
  * , 	+MNNfz*, OO%E%*M'"	+ "
  	 ??   's+,/
   	
 	 	s1   CD> >F-'F(F-F0 (F--F0 0"Gz/rutac                  `   t        j                         } g d}|D ])  }| j                  |      rt        dd| dd      dfc S  t	        | d         }t        | d         }t        | d	         }t        j                         }|st        dd
d      dfS 	 |j                         }|j                  d|||f       |j                          t        ddd      df|j                          |j                          S # t        j                  j                  $ rn}|j                          t         j#                  d|        t        ddt%        |       d      dfcY d }~j                          |j                          S d }~ww xY w# j                          |j                          w xY w)N)r   latitudlongitudr   r   r   r   r   r   rT   rU   r   r   zlINSERT INTO Xalarrazabal025_Ruta 
            (id_local, latitud, longitud) 
            VALUES (%s, %s, %s)r   u!   Ubicación guardada correctamenter    r!   u    Error al guardar la ubicación: )r   r"   r#   r   intfloatr   r$   r%   r&   r(   r)   r*   r+   r,   r-   r.   r   r/   )	r0   r1   r2   r3   rT   rU   r5   r%   r6   s	            r7   agregar_rutarX      s    D:O  xx!#E7/:    T+&'JDO$GT*%&H""$J>
   	
""$# (+		
 	:
   	 ??   's+,9#a&B
   	
 	 	s2   AC= =FAFFF FF "F-)flaskr   r   r   databaser   authr   mysql.connectorr*   logging	getLogger__name__r.   entrenamientos_bprouter8   r>   rC   rR   rX        r7   <module>rd      s%   - -    			8	$.EYZ fX.6  /6p ,ug>4  ?4l ,xjA:  B:x 92  :2h 6(30  40rc   