From c375071c528fefe6009171c00bf10c1ce6755a5e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20PAILHAREY?= <rpailharey@grandlyon.com>
Date: Tue, 30 Nov 2021 15:07:29 +0000
Subject: [PATCH] Feat/add assets route

---
 .gitignore                       |  2 +-
 docker-compose.local.yml         | 16 +++++-----------
 docker-compose.yml               |  2 +-
 nginx/site.conf                  |  7 ++-----
 scripts/import-convert-assets.sh | 29 +++++++++++++++++++++++++++++
 5 files changed, 38 insertions(+), 18 deletions(-)
 create mode 100755 scripts/import-convert-assets.sh

diff --git a/.gitignore b/.gitignore
index 70d1ca62..06f1ac1a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,7 +10,7 @@
 /coverage
 # production
 /build
-
+/image-lib
 # misc
 .DS_Store
 /.env
diff --git a/docker-compose.local.yml b/docker-compose.local.yml
index bb3f992e..14115d60 100644
--- a/docker-compose.local.yml
+++ b/docker-compose.local.yml
@@ -2,26 +2,20 @@ version: '3.7'
 services:
   nginx:
     image: nginx:1.16
-    depends_on:
-      - front
-      - backend
     volumes:
       - ./nginx/nginx.conf:/etc/nginx/nginx.conf
       - ./nginx/site.conf:/etc/nginx/conf.d/default.conf
       - ./cert.pem:/etc/nginx/cert.pem
       - ./key.pem:/etc/nginx/key.pem
-      - ./../${IMAGE_FOLDER}:/usr/share/nginx/html/lib/${IMAGE_FOLDER}
     ports:
       - 443:443
     depends_on:
       - backend
-    environment:
-      - IMAGE_FOLDER=${IMAGE_FOLDER}
     # For linux users
     # extra_hosts:
-    #   - "host.docker.internal:host-gateway"
+    #   - 'host.docker.internal:host-gateway'
 
-  database:
+  database-agent:
     image: mysql:5
     ports:
       - 3306:3306
@@ -37,7 +31,7 @@ services:
   backend:
     image: registry.forge.grandlyon.com/web-et-numerique/llle_project/backoffice-server:dev
     depends_on:
-      database:
+      database-agent:
         condition: service_healthy
     restart: unless-stopped
     volumes:
@@ -45,7 +39,7 @@ services:
       - ./configs:/app/configs
       - ./letsencrypt_cache:/app/letsencrypt_cache
       - ./data:/app/data
-      - ./../${IMAGE_FOLDER}:/app/${IMAGE_FOLDER}
+      - ./${IMAGE_FOLDER}:/app/${IMAGE_FOLDER}
     ports:
       - ${HTTPS_PORT}:${HTTPS_PORT}
       - 8090:8090
@@ -63,6 +57,6 @@ services:
       - DATABASE_USER=${DATABASE_USER}
       - DATABASE_NAME=${DATABASE_NAME}
       - DATABASE_PASSWORD=${DATABASE_PASSWORD}
-      - DATABASE_HOST=database
+      - DATABASE_HOST=database-agent
       - MOCK_OAUTH2=${MOCK_OAUTH2}
       - IMAGE_FOLDER=${IMAGE_FOLDER}
diff --git a/docker-compose.yml b/docker-compose.yml
index 86d3e525..0ef136a4 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -43,7 +43,7 @@ services:
       - ./configs:/app/configs
       - ./letsencrypt_cache:/app/letsencrypt_cache
       - ./data:/app/data
-      - ./image-lib/${IMAGE_FOLDER}:/app/${IMAGE_FOLDER}
+      - ./${IMAGE_FOLDER}:/app/${IMAGE_FOLDER}
     ports:
       - ${HTTPS_PORT}:${HTTPS_PORT}
       - 8190:8090
diff --git a/nginx/site.conf b/nginx/site.conf
index 2ab117ce..8304b5b0 100644
--- a/nginx/site.conf
+++ b/nginx/site.conf
@@ -24,10 +24,7 @@ server {
         location /swagger {
             proxy_pass https://backend:1443/swagger;
         }
-        location ~ ^/assets/(.+\.(?:gif|jpe?g|svg))$  {
-          alias /usr/share/nginx/html/lib/$1;
-          gzip_static on;
-          expires max;
-          add_header Cache-Control public;
+        location /assets {
+            proxy_pass https://backend:1443/assets;
         }
 }
\ No newline at end of file
diff --git a/scripts/import-convert-assets.sh b/scripts/import-convert-assets.sh
new file mode 100755
index 00000000..73615174
--- /dev/null
+++ b/scripts/import-convert-assets.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+# Get env variables
+. ../.env
+
+REGISTRY_ID=409
+EMAIL_ASSETS_PATH="src/assets/icons/email"
+ECOGESTURE_ASSETS_PATH="src/assets/icons/visu/ecogesture"
+pwd=$(pwd)
+
+# Fetch and convert email assets
+curl "https://forge.grandlyon.com/api/v4/projects/${REGISTRY_ID}/repository/archive?path=${EMAIL_ASSETS_PATH}" --output email.tar.gz
+tar -xf email.tar.gz
+cd *-email/$EMAIL_ASSETS_PATH && for file in *.svg; do inkscape -h 200 --export-type="png" $file; done && rm *.svg
+
+cd $pwd
+# Fetch and convert ecogesture assets
+curl "https://forge.grandlyon.com/api/v4/projects/${REGISTRY_ID}/repository/archive?path=${ECOGESTURE_ASSETS_PATH}" --output ecogesture.tar.gz
+tar -xf ecogesture.tar.gz
+cd *-ecogesture/$ECOGESTURE_ASSETS_PATH && for file in *.svg; do inkscape -h 200 --export-type="png" $file; done && rm *.svg
+
+# Cleanup
+cd $pwd
+rm -rf ../${IMAGE_FOLDER}/*
+
+# Copy assets in IMAGE_FOLDER
+mv *-email/$EMAIL_ASSETS_PATH/* ../${IMAGE_FOLDER}
+mv *-ecogesture/$ECOGESTURE_ASSETS_PATH ../${IMAGE_FOLDER}/ecogesture
+rm -rf email.tar.gz ecogesture.tar.gz *-email *-ecogesture
-- 
GitLab