From 04977f279817b8ed79b4962e298030714e2276d4 Mon Sep 17 00:00:00 2001
From: Bruno Daniel Di Bello Baladan <bruno.di.bello@fing.edu.uy>
Date: Wed, 18 Jul 2018 16:35:30 -0300
Subject: [PATCH] Funcionando con moodlecloud

---
 .DS_Store                                     | Bin 0 -> 8196 bytes
 Frontend Angular 4/src/app/shared/config.ts   |   3 +-
 .../WebContent/WEB-INF/matefun.properties     |   4 +--
 Servidor JEE/pom.xml                          |   6 +++-
 .../proygrado/dto/MoodleCoursesInfoDTO.java   |   6 ++--
 .../main/java/edu/proygrado/ejb/LoginEJB.java |  29 +++++++++++++++---
 .../main/resources/META-INF/persistence.xml   |   2 +-
 7 files changed, 38 insertions(+), 12 deletions(-)
 create mode 100644 .DS_Store

diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..a3b8768a509111311fac0bd15a3536122df9e3cd
GIT binary patch
literal 8196
zcmeI1O>Epm6oB8$Up;9`CLw9uO$!zwBq>WtnqL|Mo8SJ>(vnS@G%Y0FwVPNtc369N
z+lG{YIMO2EMB#!!{7M`U91wyd0wDoHl}Zm>5OCnal>-9ac)U@`kCan`RFC9&<9Y9S
zW}ZKL_IUvS2eL*RfC>N#9YXT$RIO8lUL0#mQP@*T63HLH2NN7HK!g4@)=@_kfhYn|
z1fmE;5r`u2e~19>*`g>L?E6w1)lmeZ2;7np5bp<#4j~hvT$VC;bx;+g03=JOJ1Eqq
zJRtDVLYWBVvXp@<T~lTc7`kGZVxV*<y(Y{_CPKL^rE~|B?ttOQ7-lFKj81-9U=Em&
zGOD8pL=jjU0g<~`!w6)+rOf@t{M~_B$bt<z=``p_<-LWJ?WV~7>(qj6d46l_H7qJF
zDJ|QkDCJ7|j`GKob8bHA>weZ7&@-pS*$LgBONH$**R@yLdg`QQ=BIhhpzHX$<(Qek
z*)mKrIWu87hMOO7vyR~f*GWo+qA-O`b9HgCy}dK8wRdzZ#kIxm?$)^0(cZPR#FV<m
zw!XtN^XD%tKD~7DRk>aa-x*N3YW-I>yLj8n4a&tA%@-E`V`1@(ZC8h@Mh;GMp7qR8
z)7E_}XAbGU=}q%WkD_om?K&qiW{y@ok#_CuyhEC*v~H)fWNh}^cG9|FdXv6+&KIpI
z&&~LQf#IY@zM^lMR}25+3%=z#-bpj#k!0+HirUzn4bAuM@9s@p-Emtbuc~HjilXKC
z)>+HUjOQ)GpF5>{Y11(*XLcfIc~;6c#~gj$tim{Bf!EGDRh`VHtf#V;f1WoeO3+)s
zTV-bqn&C0m5LYw!CyKP!cB|@Xp&87WR2!kg-Hj?6^JunQ4-H%PGB)-k-A?X>L+!ht
zspGbuGHq@!IZk^AQzvqAN&Jzpv!|M=lWBK;o|fW;eGm4j>Jwtvqq^rGUoah-(pTZw
z{WPUhLf3B?VnRwoqFLVWhD57uaIwqmf;c=x#7{w*h|j|da0xEM6?hXqgpc71_!7Q>
zZ{a)m9<IaB@C*D3zri2y7yJ$XARxn9+=+FlVIwwSGq&J<?8XQ10QTY#9>Jq{3?Ib_
zoJJi}m_{43n8Q3S<BRwbzKpNn>-aXlgYV*d_z`|4=T%ey^pHF+)c85IHuZE8pyAV5
zG`b$3vEiDLrY!;VdWEF&_L|x|8k*y6UA>8wySnOD{s*-i=?ajN%mgeISP3A$O6=~6
z)w4YXv{xfPPV|}Q6ahQmCatyDT?&E2mEe>$#+n$R%~5I_WA`cwFOs@_u~tSj^J1xM
zXPpXh%S)xUhaF%<HZPIdKK8Ie0P`}bt!IObaaf1M4LN)R-iJ?#!5`on{6zfyPVD_j
z+?62@xQk&u?!kMAy%yYyaqPq{>>>UHeZx3{hww2R#W5Tw24{%DG#YpoU0lEndc@*I
zd<LJz=kR&FgqK4mUt2}t!2*9$;#-@gFqh0Yw(HE2y&$>*lJq?|139qho3I<~BS&Bu
zh7B)mr)W2j*N^Hgia@a(R~7mH@W$W&w`g|Juu%k}2;7VaV98K&Xn;m4{0vz=sK~W7
zI%en)Mc6G%8Msgtq~j!mbe!bMABNP{$W-_wLb)s@^-#I#9|FX$g=qhe_WyvsTetcb
D<?-sp

literal 0
HcmV?d00001

diff --git a/Frontend Angular 4/src/app/shared/config.ts b/Frontend Angular 4/src/app/shared/config.ts
index 269b0832..5faa2cf2 100644
--- a/Frontend Angular 4/src/app/shared/config.ts	
+++ b/Frontend Angular 4/src/app/shared/config.ts	
@@ -5,5 +5,6 @@
 //export const GHCI_URL = 'ws://localhost:9090/endpoint';
 
 //Configuracion dinamica pensando en servidor con ip dinamica
-export const SERVER = window.location.protocol + '//' + window.location.host;//'http://localhost:9090';
+//export const SERVER = window.location.protocol + '//' + window.location.host;//'http://localhost:9090';
+export const SERVER = 'http://localhost:8080';
 export const GHCI_URL = window.location.protocol == 'http:'?  'ws://'+window.location.host+'/endpoint': 'wss://'+window.location.host+'/endpoint';
diff --git a/Servidor JEE/WebContent/WEB-INF/matefun.properties b/Servidor JEE/WebContent/WEB-INF/matefun.properties
index 038644a9..730c4254 100644
--- a/Servidor JEE/WebContent/WEB-INF/matefun.properties	
+++ b/Servidor JEE/WebContent/WEB-INF/matefun.properties	
@@ -1,7 +1,7 @@
 #Deben definirse moodle_endpoint y moodle_group para conectar con el API de moodle. 
 #De lo contrario solo se realizara login local.
-moodle_endpoint=https://tics.moodlecloud.com
-moodle_group=Piloto
+moodle_endpoint=https://matefun.moodlecloud.com
+moodle_group=introduction to moodle
 #El grupo se define como liceoId#grado#grupo#anio
 #Si no se sefine default_group entonces no se asigna grupo para docente o alumno.
 default_group=0#2#Año#2017
diff --git a/Servidor JEE/pom.xml b/Servidor JEE/pom.xml
index bd6f0ed4..b645fd93 100644
--- a/Servidor JEE/pom.xml	
+++ b/Servidor JEE/pom.xml	
@@ -46,7 +46,11 @@
 		    <artifactId>jackson-annotations</artifactId>
 		    <version>2.9.0</version>
 		</dependency>
-		
+		<dependency>
+		    <groupId>mysql</groupId>
+		    <artifactId>mysql-connector-java</artifactId>
+		    <version>5.1.42</version>
+		</dependency>
 	</dependencies>
 
 	<build>
diff --git a/Servidor JEE/src/main/java/edu/proygrado/dto/MoodleCoursesInfoDTO.java b/Servidor JEE/src/main/java/edu/proygrado/dto/MoodleCoursesInfoDTO.java
index dfe454b3..5e124f81 100644
--- a/Servidor JEE/src/main/java/edu/proygrado/dto/MoodleCoursesInfoDTO.java	
+++ b/Servidor JEE/src/main/java/edu/proygrado/dto/MoodleCoursesInfoDTO.java	
@@ -21,7 +21,7 @@ public class MoodleCoursesInfoDTO {
 	private Boolean confirmed;
 	private String lang;
 	private String theme;
-	private Long timezone;
+	private String timezone;
 	private Long mailformat;
 	private String description;
 	private Long descriptionformat;
@@ -118,10 +118,10 @@ public class MoodleCoursesInfoDTO {
 	public void setTheme(String theme) {
 		this.theme = theme;
 	}
-	public Long getTimezone() {
+	public String getTimezone() {
 		return timezone;
 	}
-	public void setTimezone(Long timezone) {
+	public void setTimezone(String timezone) {
 		this.timezone = timezone;
 	}
 	public Long getMailformat() {
diff --git a/Servidor JEE/src/main/java/edu/proygrado/ejb/LoginEJB.java b/Servidor JEE/src/main/java/edu/proygrado/ejb/LoginEJB.java
index ab747f39..d1f5ce11 100644
--- a/Servidor JEE/src/main/java/edu/proygrado/ejb/LoginEJB.java	
+++ b/Servidor JEE/src/main/java/edu/proygrado/ejb/LoginEJB.java	
@@ -15,13 +15,17 @@ import java.util.Date;
 import java.util.List;
 import java.util.Properties;
 
+import javax.annotation.Resource;
 import javax.ejb.EJB;
 import javax.ejb.Stateless;
+import javax.ejb.TransactionManagement;
+import javax.ejb.TransactionManagementType;
 import javax.inject.Inject;
 import javax.persistence.EntityManager;
 import javax.persistence.PersistenceContext;
 import javax.persistence.TypedQuery;
 import javax.servlet.ServletContext;
+import javax.transaction.UserTransaction;
 import javax.ws.rs.client.ClientBuilder;
 import javax.ws.rs.core.GenericType;
 
@@ -50,6 +54,7 @@ import edu.proygrado.modelo.Usuario;
  * @author gonzalo
  */
 @Stateless
+@TransactionManagement(value=TransactionManagementType.BEAN)
 public class LoginEJB {
 	
 	@Inject
@@ -63,6 +68,9 @@ public class LoginEJB {
 
 	@EJB
 	private InvitadoEJB invitadoEJB;
+	
+	@Resource
+	private UserTransaction userTransaction;
 
 	public boolean validarSesion(String token){
 		Sesion sesion = em.find(Sesion.class,token);
@@ -80,7 +88,14 @@ public class LoginEJB {
 			sesion.setToken(token);
 			sesion.setUsuario(usuario);
 			sesion.setTimestamp(new Date());
-			em.persist(sesion);
+			try {
+				userTransaction.begin();
+				em.persist(sesion);
+				userTransaction.commit();
+			}catch(Exception e) {
+				System.out.println("Error persistiendo sesion: "+e.getMessage());
+			}
+			
 		}else{
 			sesion.setTimestamp(new Date());
 		}
@@ -222,9 +237,15 @@ public class LoginEJB {
 			conf.setFontSizeEditor(12);
 			conf.setThemeEditor("dracula");
 			nuevoDesdeMoodle.setConfiguracion(conf);
-			em.persist(conf);
-			em.persist(root);
-			em.persist(nuevoDesdeMoodle);
+			try {
+				userTransaction.begin();
+				em.persist(conf);
+				em.persist(root);
+				em.persist(nuevoDesdeMoodle);
+				userTransaction.commit();
+			}catch(Exception e) {
+				System.out.println("Error guardando configuracion de usuario");
+			}
 			String tokenAuth = generateToken();
 			updateSession(tokenAuth, usuario);
 			invitadoEJB.setUsuario(tokenAuth, nuevoDesdeMoodle);
diff --git a/Servidor JEE/src/main/resources/META-INF/persistence.xml b/Servidor JEE/src/main/resources/META-INF/persistence.xml
index 79c49c23..3d5c78a4 100644
--- a/Servidor JEE/src/main/resources/META-INF/persistence.xml	
+++ b/Servidor JEE/src/main/resources/META-INF/persistence.xml	
@@ -25,7 +25,7 @@
 
 	<persistence-unit name="matefunDS" transaction-type="JTA">
 	<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
-	<jta-data-source>jdbc/azureDSjta</jta-data-source>
+	<jta-data-source>java:/matefun</jta-data-source>
 	<class>edu.proygrado.modelo.Alumno</class>
 	<class>edu.proygrado.modelo.Archivo</class>
 	<class>edu.proygrado.modelo.Configuracion</class>
-- 
GitLab