From 84cf472dc1bba274d1dfb76438d92c0bc8b62174 Mon Sep 17 00:00:00 2001
From: Dara Silvera <dara.silvera@fing.edu.uy>
Date: Tue, 4 Oct 2022 22:45:23 -0300
Subject: [PATCH] Se agrega proxy para evitar cors en modo desarrollo

Cada vez que se cambia los servicios se tiene que modificar el archivo proxy.conf.json con la nueva ruta de los servicios, para poder utilizar angular en modo desarrollo
---
 Frontend Angular 4/angular.json               |  3 +-
 Frontend Angular 4/proxy.conf.json            | 15 ++++++
 .../app/shared/services/haskell.service.ts    | 48 ++++++-------------
 3 files changed, 31 insertions(+), 35 deletions(-)
 create mode 100644 Frontend Angular 4/proxy.conf.json

diff --git a/Frontend Angular 4/angular.json b/Frontend Angular 4/angular.json
index 44c4fc7..105f759 100644
--- a/Frontend Angular 4/angular.json	
+++ b/Frontend Angular 4/angular.json	
@@ -57,7 +57,8 @@
         "serve": {
           "builder": "@angular-devkit/build-angular:dev-server",
           "options": {
-            "browserTarget": "cli-stable:build"
+            "browserTarget": "cli-stable:build",
+            "proxyConfig": "proxy.conf.json"
           },
           "configurations": {
             "production": {
diff --git a/Frontend Angular 4/proxy.conf.json b/Frontend Angular 4/proxy.conf.json
new file mode 100644
index 0000000..50eaf9b
--- /dev/null
+++ b/Frontend Angular 4/proxy.conf.json	
@@ -0,0 +1,15 @@
+{
+  "/servicios/": {
+    "target": "http://localhost:8080/matefun",
+    "secure": false,
+    "changeOrigin": true,
+    "logLevel": "debug"
+  },
+  "/servicios/*": {
+    "target": "http://localhost:8080/matefun",
+    "secure": false,
+    "changeOrigin": true,
+    "logLevel": "debug",
+    "ws": true
+  }
+}
diff --git a/Frontend Angular 4/src/app/shared/services/haskell.service.ts b/Frontend Angular 4/src/app/shared/services/haskell.service.ts
index c33c13b..1cd7ff9 100755
--- a/Frontend Angular 4/src/app/shared/services/haskell.service.ts	
+++ b/Frontend Angular 4/src/app/shared/services/haskell.service.ts	
@@ -28,11 +28,15 @@ export class HaskellService {
     this.translateService = translate;
   }
 
-  getArchivos(cedula: string): Observable<Archivo[]> {
-    let headers = new HttpHeaders({
+  private getHeaders() {
+    return new HttpHeaders({
       "Content-Type": "application/json",
       Authorization: "Bearer " + this.authService.getToken(),
     });
+  }
+
+  getArchivos(cedula: string): Observable<Archivo[]> {
+    let headers = this.getHeaders();
     let params: HttpParams = new HttpParams();
     params.set("cedula", cedula);
     let httpOptions = { headers: headers, params: params };
@@ -43,10 +47,7 @@ export class HaskellService {
   }
 
   getArchivosCompartidosAlumno(cedula: string): Observable<Archivo[]> {
-    let headers = new HttpHeaders({
-      "Content-Type": "application/json",
-      Authorization: "Bearer " + this.authService.getToken(),
-    });
+    let headers = this.getHeaders();
     let params: HttpParams = new HttpParams();
     params.set("cedula", cedula);
     params.set("compartidos", "true");
@@ -58,10 +59,7 @@ export class HaskellService {
   }
 
   crearArchivo(archivo: Archivo): Observable<Archivo> {
-    let headers = new HttpHeaders({
-      "Content-Type": "application/json",
-      Authorization: "Bearer " + this.authService.getToken(),
-    });
+    let headers = this.getHeaders();
 
     let httpOptions = { headers: headers };
 
@@ -71,10 +69,7 @@ export class HaskellService {
   }
 
   editarArchivo(archivoId, archivo: Archivo): Observable<Archivo> {
-    let headers = new HttpHeaders({
-      "Content-Type": "application/json",
-      Authorization: "Bearer " + this.authService.getToken(),
-    });
+    let headers = this.getHeaders();
     let httpOptions = { headers: headers };
 
     return this.http
@@ -87,10 +82,7 @@ export class HaskellService {
   }
 
   eliminarArchivo(archivoId): Observable<Response> {
-    let headers = new HttpHeaders({
-      "Content-Type": "application/json",
-      Authorization: "Bearer " + this.authService.getToken(),
-    });
+    let headers = this.getHeaders();
     let httpOptions = { headers: headers };
 
     return this.http
@@ -99,10 +91,7 @@ export class HaskellService {
   }
 
   getCopiaArchivoCompartidoGrupo(cedula, archivoId): Observable<Archivo> {
-    let headers = new HttpHeaders({
-      "Content-Type": "application/json",
-      Authorization: "Bearer " + this.authService.getToken(),
-    });
+    let headers = this.getHeaders();
     let params: HttpParams = new HttpParams();
     params.set("cedula", cedula);
     let httpOptions = { headers: headers, params: params };
@@ -116,10 +105,7 @@ export class HaskellService {
   }
 
   compartirArchivoGrupo(grupo, archivoId): Observable<Archivo> {
-    let headers = new HttpHeaders({
-      "Content-Type": "application/json",
-      Authorization: "Bearer " + this.authService.getToken(),
-    });
+    let headers = this.getHeaders();
     let httpOptions = { headers: headers };
     var archId = {
       id: archivoId,
@@ -143,10 +129,7 @@ export class HaskellService {
   }
 
   calificarArchivo(archivoId, estado, evaluacion): Observable<Evaluacion> {
-    let headers = new HttpHeaders({
-      "Content-Type": "application/json",
-      Authorization: "Bearer " + this.authService.getToken(),
-    });
+    let headers = this.getHeaders();
     let httpOptions = { headers: headers };
     return this.http
       .post<Evaluacion>(
@@ -163,10 +146,7 @@ export class HaskellService {
   }
 
   getGrupos(cedula: string): Observable<Grupo[]> {
-    let headers = new HttpHeaders({
-      "Content-Type": "application/json",
-      Authorization: "Bearer " + this.authService.getToken(),
-    });
+    let headers = this.getHeaders();
     let params: HttpParams = new HttpParams();
     params.set("cedula", cedula);
     let httpOptions = { headers: headers, params: params };
-- 
GitLab