changements dans les dockerfiles + ajout de quelques trucs pour svelte en PoC
This commit is contained in:
7
Makefile
7
Makefile
@@ -17,14 +17,11 @@ prod:
|
|||||||
|
|
||||||
start:
|
start:
|
||||||
docker compose -f ${DOCKERCOMPOSEPATH} start
|
docker compose -f ${DOCKERCOMPOSEPATH} start
|
||||||
docker logs --follow nestjs_api_back_dev
|
docker logs --follow srcs-backend_dev-1
|
||||||
|
|
||||||
start_dev:
|
start_dev:
|
||||||
docker compose -f ${DOCKERCOMPOSEPATH} start dev
|
docker compose -f ${DOCKERCOMPOSEPATH} start dev
|
||||||
docker logs --follow nestjs_api_back_dev
|
docker logs --follow srcs-backend_dev-1
|
||||||
|
|
||||||
start_debug:
|
|
||||||
docker compose -f ${DOCKERCOMPOSEPATH} start debug
|
|
||||||
|
|
||||||
start_prod:
|
start_prod:
|
||||||
docker compose -f ${DOCKERCOMPOSEPATH} start prod
|
docker compose -f ${DOCKERCOMPOSEPATH} start prod
|
||||||
|
|||||||
@@ -1,154 +1,77 @@
|
|||||||
services:
|
services:
|
||||||
backend_dev:
|
backend_dev:
|
||||||
container_name: nestjs_api_back_dev
|
build:
|
||||||
image: nestjs_api_back_dev
|
context: ./requirements/nestjs
|
||||||
build:
|
target: development
|
||||||
context: ./requirements/nestjs
|
dockerfile: Dockerfile
|
||||||
target: development
|
volumes:
|
||||||
dockerfile: Dockerfile
|
- ./requirements/nestjs/api_back/src:/usr/app/src
|
||||||
command: npm run start:dev
|
- ./requirements/nestjs/api_back/test:/usr/app/test/
|
||||||
networks:
|
env_file:
|
||||||
- transcendance_network
|
- .env
|
||||||
volumes:
|
environment:
|
||||||
- ./requirements/nestjs/api_back:/usr/src/app
|
NODE_ENV: "${NODE_ENV}"
|
||||||
- /usr/src/app/node_modules
|
restart: unless-stopped
|
||||||
env_file:
|
depends_on:
|
||||||
- .env
|
- postgresql
|
||||||
environment:
|
- redis
|
||||||
NODE_ENV: "${NODE_ENV}"
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- postgresql
|
|
||||||
- redis
|
|
||||||
|
|
||||||
# backend_prod:
|
frontend_dev:
|
||||||
# container_name: nestjs_api_back_prod
|
build:
|
||||||
# image: nestjs_api_back_prod
|
context: ./requirements/svelte
|
||||||
# build:
|
target: development
|
||||||
# context: ./requirements/nestjs
|
dockerfile: Dockerfile
|
||||||
# target: production
|
volumes:
|
||||||
# dockerfile: Dockerfile
|
- ./requirements/svelte/api_front/src:/usr/app/src/
|
||||||
# command: npm run start:prod
|
- ./requirements/svelte/api_front/public:/usr/app/public/
|
||||||
# ports:
|
env_file:
|
||||||
# - 3000:3000
|
- .env
|
||||||
# networks:
|
environment:
|
||||||
# - transcendance_network
|
NODE_ENV: "${NODE_ENV}"
|
||||||
# volumes:
|
restart: unless-stopped
|
||||||
# - data_nest_back:/usr/src/app
|
depends_on:
|
||||||
# - /usr/src/app/node_modules
|
- postgresql
|
||||||
# restart: unless-stopped
|
- redis
|
||||||
# env_file:
|
- backend_dev
|
||||||
# - .env
|
|
||||||
# environment:
|
|
||||||
# NODE_ENV: "${NODE_ENV}"
|
|
||||||
# depends_on:
|
|
||||||
# - postgresql
|
|
||||||
# - redis
|
|
||||||
|
|
||||||
frontend_dev:
|
# t'embete pas a gerer ton propre container nginx
|
||||||
container_name: nestjs_api_front_dev
|
nginx:
|
||||||
image: nestjs_api_front_dev
|
image: nginx:alpine
|
||||||
build:
|
restart: unless-stopped
|
||||||
context: ./requirements/svelte
|
volumes:
|
||||||
target: development
|
- ./requirements/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf:ro
|
||||||
dockerfile: Dockerfile
|
command: [nginx-debug, "-g", "daemon off;"]
|
||||||
command: npm run dev
|
ports:
|
||||||
networks:
|
- "8080:8080"
|
||||||
- transcendance_network
|
depends_on:
|
||||||
volumes:
|
- backend_dev
|
||||||
- ./requirements/svelte/api_front:/usr/src/app
|
- frontend_dev
|
||||||
- /usr/src/app/node_modules
|
- postgresql
|
||||||
env_file:
|
- redis
|
||||||
- .env
|
|
||||||
environment:
|
|
||||||
NODE_ENV: "${NODE_ENV}"
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- postgresql
|
|
||||||
- redis
|
|
||||||
- backend_dev
|
|
||||||
|
|
||||||
nginx:
|
postgresql:
|
||||||
container_name: nginx
|
container_name: nestjs_postgresql
|
||||||
build:
|
image: postgres
|
||||||
context: ./requirements/nginx
|
volumes:
|
||||||
dockerfile: Dockerfile
|
- data_nest_postgresql:/var/lib/postgresql/data
|
||||||
ports:
|
restart: unless-stopped
|
||||||
- 8080:8080
|
environment:
|
||||||
networks:
|
POSTGRES_USER: "${POSTGRES_USER}"
|
||||||
- transcendance_network
|
POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}"
|
||||||
restart: unless-stopped
|
POSTGRES_DB: "${POSTGRES_DB}"
|
||||||
depends_on:
|
POSTGRES_HOST: "${POSTGRES_HOST}"
|
||||||
- backend_dev
|
POSTGRES_PORT: "${POSTGRES_PORT}"
|
||||||
- frontend_dev
|
|
||||||
- postgresql
|
|
||||||
- redis
|
|
||||||
|
|
||||||
postgresql:
|
# Je connais pas redis, mais si t'en a besoin que a l'interieur de tes containers, je pense pas que t'as besoin d'un expose.
|
||||||
container_name: nestjs_postgresql
|
redis:
|
||||||
image: postgres
|
container_name: nestjs_redis
|
||||||
# ports:
|
image: redis:alpine
|
||||||
# - 5432:5432
|
expose:
|
||||||
networks:
|
- "6379"
|
||||||
- transcendance_network
|
restart: unless-stopped
|
||||||
volumes:
|
environment:
|
||||||
- data_nest_postgresql:/var/lib/postgresql/data
|
REDIS_HOST: "${REDIS_HOST}"
|
||||||
restart: unless-stopped
|
REDIS_PORT: "${REDIS_PORT}"
|
||||||
environment:
|
|
||||||
POSTGRES_USER: "${POSTGRES_USER}"
|
|
||||||
POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}"
|
|
||||||
POSTGRES_DB: "${POSTGRES_DB}"
|
|
||||||
POSTGRES_HOST: "${POSTGRES_HOST}"
|
|
||||||
POSTGRES_PORT: "${POSTGRES_PORT}"
|
|
||||||
|
|
||||||
redis:
|
|
||||||
container_name: nestjs_redis
|
|
||||||
image: redis:alpine
|
|
||||||
expose:
|
|
||||||
- "6379"
|
|
||||||
networks:
|
|
||||||
- transcendance_network
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
REDIS_HOST: "${REDIS_HOST}"
|
|
||||||
REDIS_PORT: "${REDIS_PORT}"
|
|
||||||
|
|
||||||
|
|
||||||
networks:
|
|
||||||
transcendance_network:
|
|
||||||
driver: bridge
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
data_nest_back:
|
data_nest_postgresql:
|
||||||
data_nest_postgresql:
|
|
||||||
data_nest_redis:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# debug:
|
|
||||||
# container_name: nestjs_api_debug
|
|
||||||
# image: nestjs_api_debug
|
|
||||||
# build:
|
|
||||||
# context: ./requirements/nestjs
|
|
||||||
# target: development
|
|
||||||
# dockerfile: Dockerfile
|
|
||||||
# command: run start:dev --debug 0.0.0.0:9229
|
|
||||||
# ports:
|
|
||||||
# - 3000:3000
|
|
||||||
# - 9229:9229
|
|
||||||
# networks:
|
|
||||||
# - transcendance_network
|
|
||||||
# volumes:
|
|
||||||
# - ./requirements/nestjs/api_back:/usr/src/app
|
|
||||||
# - /usr/src/app/node_modules
|
|
||||||
# env_file:
|
|
||||||
# - .env
|
|
||||||
# environment:
|
|
||||||
# NODE_ENV: "${NODE_ENV}"
|
|
||||||
# DEBUG: "*" # enable all debug logs
|
|
||||||
# restart: unless-stopped
|
|
||||||
# depends_on:
|
|
||||||
# - postgresql
|
|
||||||
|
|||||||
11
srcs/requirements/nestjs/.dockerignore
Normal file
11
srcs/requirements/nestjs/.dockerignore
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# Ignore everything
|
||||||
|
*
|
||||||
|
|
||||||
|
# Allow files and folders with a pattern starting with !
|
||||||
|
|
||||||
|
!api_back/*.js
|
||||||
|
!api_back/*.ts
|
||||||
|
!api_back/*.json
|
||||||
|
!api_back/*.html
|
||||||
|
!api_back/*.lock
|
||||||
|
!api_back/.env
|
||||||
@@ -1,42 +1,10 @@
|
|||||||
FROM node:alpine AS development
|
FROM node:alpine AS development
|
||||||
|
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/app
|
||||||
|
|
||||||
COPY --chown=node:node ./api_back/package*.json ./
|
COPY api_back/* .
|
||||||
|
COPY api_back/.env .env
|
||||||
|
|
||||||
RUN npm i
|
RUN npm ci
|
||||||
|
|
||||||
COPY --chown=node:node ./api_back/ ./
|
CMD [ "npm", "run", "start:dev" ]
|
||||||
|
|
||||||
USER node
|
|
||||||
|
|
||||||
# FROM node:19-alpine AS build
|
|
||||||
|
|
||||||
# WORKDIR /usr/src/app
|
|
||||||
|
|
||||||
# COPY --chown=node:node ./api_back/package*.json ./
|
|
||||||
|
|
||||||
# COPY --chown=node:node --from=development /usr/src/app/node_modules ./node_modules
|
|
||||||
|
|
||||||
# COPY --chown=node:node ./api_back/ ./
|
|
||||||
|
|
||||||
# RUN npm run build
|
|
||||||
|
|
||||||
# ENV NODE_ENV production
|
|
||||||
|
|
||||||
# RUN npm ci --only=production && npm cache clean --force
|
|
||||||
|
|
||||||
# USER node
|
|
||||||
|
|
||||||
# FROM node:19-alpine AS production
|
|
||||||
|
|
||||||
# WORKDIR /usr/src/app
|
|
||||||
|
|
||||||
# COPY --chown=node:node --from=build /usr/src/app/node_modules ./node_modules
|
|
||||||
# COPY --chown=node:node --from=build /usr/src/app/dist ./dist
|
|
||||||
|
|
||||||
# USER node
|
|
||||||
|
|
||||||
ENV HOST=0.0.0.0
|
|
||||||
|
|
||||||
CMD [ "node", "run", "start:dev" ]
|
|
||||||
|
|||||||
@@ -36,17 +36,6 @@ export class AuthenticationController {
|
|||||||
return response.status(200).redirect('http://transcendance:8080');
|
return response.status(200).redirect('http://transcendance:8080');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* GET /api/v2/auth/status
|
|
||||||
* Route pour vérifier si l'utilisateur est connecté
|
|
||||||
* ou non.
|
|
||||||
*/
|
|
||||||
@Get('status')
|
|
||||||
@UseGuards(AuthenticateGuard)
|
|
||||||
status() {
|
|
||||||
return 'status';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GET /api/v2/auth/logout
|
* GET /api/v2/auth/logout
|
||||||
* Route pour déconnecter l'utilisateur
|
* Route pour déconnecter l'utilisateur
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ export class FriendshipController {
|
|||||||
return this.friendshipService.findOneFriend(relationshipId, user.id);
|
return this.friendshipService.findOneFriend(relationshipId, user.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
// POST http://127.0.0.1:3000/api/v2/network/
|
// POST http://127.0.0.1:3000/api/v2/network/myfriends
|
||||||
@Post('myfriends')
|
@Post('myfriends')
|
||||||
@HttpCode(HttpStatus.CREATED)
|
@HttpCode(HttpStatus.CREATED)
|
||||||
@UseGuards(AuthenticateGuard)
|
@UseGuards(AuthenticateGuard)
|
||||||
|
|||||||
@@ -30,6 +30,9 @@ export class User {
|
|||||||
@Column('json', { nullable: true })
|
@Column('json', { nullable: true })
|
||||||
status: [string];
|
status: [string];
|
||||||
|
|
||||||
|
// @Column()
|
||||||
|
// isFirstConnection: boolean;
|
||||||
|
|
||||||
@Column({ default: false, nullable: true })
|
@Column({ default: false, nullable: true })
|
||||||
isEnabledTwoFactorAuth: boolean;
|
isEnabledTwoFactorAuth: boolean;
|
||||||
|
|
||||||
|
|||||||
@@ -31,18 +31,18 @@ export class UsersController {
|
|||||||
* car un utilisateur est crée à la première connexion avec l'Oauth de 42.
|
* car un utilisateur est crée à la première connexion avec l'Oauth de 42.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@UseGuards(AuthenticateGuard)
|
// @UseGuards(AuthenticateGuard)
|
||||||
@Get()
|
// @Get()
|
||||||
findOne(@Req() req) {
|
// findOne(@Req() req) {
|
||||||
return this.usersService.findOne(req.user.id);
|
// return this.usersService.findOne(req.user.id);
|
||||||
}
|
// }
|
||||||
|
|
||||||
@UseGuards(AuthenticateGuard)
|
// @UseGuards(AuthenticateGuard)
|
||||||
@Post()
|
// @Post()
|
||||||
@HttpCode(HttpStatus.CREATED)
|
// @HttpCode(HttpStatus.CREATED)
|
||||||
create(@Body() createUsersDto : CreateUsersDto ) {
|
// create(@Body() createUsersDto : CreateUsersDto ) {
|
||||||
return this.usersService.create(createUsersDto);
|
// return this.usersService.create(createUsersDto);
|
||||||
}
|
// }
|
||||||
|
|
||||||
@UseGuards(AuthenticateGuard)
|
@UseGuards(AuthenticateGuard)
|
||||||
@Patch()
|
@Patch()
|
||||||
|
|||||||
10
srcs/requirements/svelte/.dockerignore
Normal file
10
srcs/requirements/svelte/.dockerignore
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# Ignore everything
|
||||||
|
*
|
||||||
|
|
||||||
|
# Allow files and folders with a pattern starting with !
|
||||||
|
|
||||||
|
!api_front/*.js
|
||||||
|
!api_front/*.ts
|
||||||
|
!api_front/*.json
|
||||||
|
!api_front/*.html
|
||||||
|
!api_front/*.lock
|
||||||
@@ -1,42 +1,9 @@
|
|||||||
FROM node:alpine AS development
|
FROM node:alpine AS development
|
||||||
|
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/app
|
||||||
|
|
||||||
COPY --chown=node:node ./api_front/package*.json ./
|
COPY ./api_front/* .
|
||||||
|
|
||||||
RUN npm i
|
RUN npm ci
|
||||||
|
|
||||||
COPY --chown=node:node ./api_front/ ./
|
CMD [ "npm", "run", "dev" ]
|
||||||
|
|
||||||
USER node
|
|
||||||
|
|
||||||
# FROM node:19-alpine AS build
|
|
||||||
|
|
||||||
# WORKDIR /usr/src/app
|
|
||||||
|
|
||||||
# COPY --chown=node:node ./api_front/package*.json ./
|
|
||||||
|
|
||||||
# COPY --chown=node:node --from=development /usr/src/app/node_modules ./node_modules
|
|
||||||
|
|
||||||
# COPY --chown=node:node ./api_front/ ./
|
|
||||||
|
|
||||||
# RUN npm run build
|
|
||||||
|
|
||||||
# ENV NODE_ENV production
|
|
||||||
|
|
||||||
# RUN npm ci --only=production && npm cache clean --force
|
|
||||||
|
|
||||||
# USER node
|
|
||||||
|
|
||||||
# FROM node:19-alpine AS production
|
|
||||||
|
|
||||||
# WORKDIR /usr/src/app
|
|
||||||
|
|
||||||
# COPY --chown=node:node --from=build /usr/src/app/node_modules ./node_modules
|
|
||||||
# COPY --chown=node:node --from=build /usr/src/app/dist ./dist
|
|
||||||
|
|
||||||
# USER node
|
|
||||||
|
|
||||||
ENV HOST=0.0.0.0
|
|
||||||
|
|
||||||
CMD [ "node", "run", "dev"]
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "rollup -c",
|
"build": "rollup -c",
|
||||||
"dev": "rollup -c -w",
|
"dev": "rollup -c -w",
|
||||||
"start": "sirv public --no-clear",
|
"start": "sirv public --no-clear --host",
|
||||||
"check": "svelte-check --tsconfig ./tsconfig.json"
|
"check": "svelte-check --tsconfig ./tsconfig.json"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@@ -2,10 +2,12 @@
|
|||||||
import Login from "./pages/auth/login.svelte";
|
import Login from "./pages/auth/login.svelte";
|
||||||
import Home from "./pages/home/home.svelte";
|
import Home from "./pages/home/home.svelte";
|
||||||
import Router, {link} from 'svelte-spa-router';
|
import Router, {link} from 'svelte-spa-router';
|
||||||
|
import Profil from "./pages/profil/profil.svelte";
|
||||||
|
|
||||||
const routes = {
|
const routes = {
|
||||||
"/": Home,
|
"/": Home,
|
||||||
"/login": Login,
|
"/login": Login,
|
||||||
|
"/profil": Profil,
|
||||||
};
|
};
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
@@ -19,10 +21,12 @@
|
|||||||
<li>
|
<li>
|
||||||
<a href="/" type="button" class="btn btn-primary">Home</a>
|
<a href="/" type="button" class="btn btn-primary">Home</a>
|
||||||
</li>
|
</li>
|
||||||
|
<!-- <li>
|
||||||
|
<a href="/profil" use:link type="button" class="btn btn-primary">Profil</a>
|
||||||
|
</li> -->
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="text-end">
|
<div class="text-end">
|
||||||
|
|
||||||
<a href="/login" use:link type="button" class="btn btn-warning">Connexion</a>
|
<a href="/login" use:link type="button" class="btn btn-warning">Connexion</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,18 +1,23 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
|
import { onMount } from 'svelte';
|
||||||
import {push} from 'svelte-spa-router';
|
import {push} from 'svelte-spa-router';
|
||||||
|
|
||||||
let user = {logedIn: false};
|
let user = {logedIn: false};
|
||||||
|
|
||||||
|
onMount(async () => {
|
||||||
|
console.log('PROFIL SVELTE');
|
||||||
|
const {data} = await axios.get('http://transcendance:8080/api/v2/user');
|
||||||
|
if (data)
|
||||||
|
user.logedIn = true;
|
||||||
|
});
|
||||||
|
|
||||||
$: submit = async() => {
|
$: submit = async() => {
|
||||||
window.location.href = 'http://transcendance:8080/api/v2/auth';
|
window.location.href = 'http://transcendance:8080/api/v2/auth';
|
||||||
if (document.cookie) {
|
|
||||||
user.logedIn = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$: logout = async() => {
|
$: logout = async() => {
|
||||||
fetch('http://transcendance:8080/api/v2/auth/logout');
|
await fetch('http://transcendance:8080/api/v2/auth/logout',);
|
||||||
user.logedIn = false;
|
user.logedIn = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,69 +1,55 @@
|
|||||||
<script>
|
<script>
|
||||||
let href =
|
import Router, { link } from "svelte-spa-router";
|
||||||
|
import Login from "../auth/login.svelte";
|
||||||
|
import Profil from "../profil/profil.svelte";
|
||||||
|
const routes = {
|
||||||
|
"/login": Login,
|
||||||
|
"/profil": Profil,
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<main class="d-flex flex-nowrap">
|
<main class="d-flex flex-nowrap">
|
||||||
<h1 class="visually-hidden">Sidebars examples</h1>
|
<h1 class="visually-hidden">Sidebars examples</h1>
|
||||||
|
|
||||||
<div class="d-flex flex-column flex-shrink-0 p-3 text-bg-dark" style="width: 280px;">
|
<div
|
||||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-white text-decoration-none">
|
class="d-flex flex-column flex-shrink-0 p-3 text-bg-dark"
|
||||||
<svg class="bi pe-none me-2" width="40" height="32"><use xlink:href="#bootstrap"/></svg>
|
style="width: 280px;"
|
||||||
<span class="fs-4">Sidebar</span>
|
>
|
||||||
</a>
|
<a href="/" use:link class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-white text-decoration-none">
|
||||||
<hr>
|
<span class="fs-4">Sidebar</span>
|
||||||
<ul class="nav nav-pills flex-column mb-auto">
|
</a>
|
||||||
<li class="nav-item">
|
<hr />
|
||||||
<a href="/pouepouet" class="nav-link active" aria-current="page">
|
<ul class="nav nav-pills flex-column mb-auto">
|
||||||
<svg class="bi pe-none me-2" width="16" height="16"><use xlink:href="#home"/></svg>
|
<li class="nav-item">
|
||||||
Profil
|
<a
|
||||||
</a>
|
href="/profil"
|
||||||
</li>
|
use:link
|
||||||
<li>
|
class="nav-link active"
|
||||||
<a href="#" class="nav-link text-white" on:click={color}>
|
aria-current="page"
|
||||||
<svg class="bi pe-none me-2" width="16" height="16"><use xlink:href="#speedometer2"/></svg>
|
>
|
||||||
Dashboard
|
Profil
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
</ul>
|
||||||
<a href="#" class="nav-link text-white">
|
<hr />
|
||||||
<svg class="bi pe-none me-2" width="16" height="16"><use xlink:href="#table"/></svg>
|
</div>
|
||||||
Orders
|
</main>
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#" class="nav-link text-white">
|
|
||||||
<svg class="bi pe-none me-2" width="16" height="16"><use xlink:href="#grid"/></svg>
|
|
||||||
Products
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#" class="nav-link text-white">
|
|
||||||
<svg class="bi pe-none me-2" width="16" height="16"><use xlink:href="#people-circle"/></svg>
|
|
||||||
Customers
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
<Router {routes} />
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
body {
|
body {
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
min-height: -webkit-fill-available;
|
min-height: -webkit-fill-available;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
main {
|
|
||||||
height: 100vh;
|
|
||||||
height: -webkit-fill-available;
|
|
||||||
max-height: 100vh;
|
|
||||||
overflow-x: auto;
|
|
||||||
overflow-y: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-toggle { outline: 0; }
|
|
||||||
|
|
||||||
|
main {
|
||||||
|
height: 100vh;
|
||||||
|
height: -webkit-fill-available;
|
||||||
|
max-height: 100vh;
|
||||||
|
overflow-x: auto;
|
||||||
|
overflow-y: hidden;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -1,14 +1,44 @@
|
|||||||
<script>
|
<script>
|
||||||
|
import axios from "axios";
|
||||||
import { onMount } from "svelte";
|
import { onMount } from "svelte";
|
||||||
|
|
||||||
|
let user = {};
|
||||||
|
|
||||||
onMount (async() => {
|
onMount (async() => {
|
||||||
const response = await fetch('http://transcendance:8080/api/v2/user');
|
console.log("PROFIL SVELTE");
|
||||||
const data = await response.json();
|
const {data} = await axios.get('http://transcendance:8080/api/v2/user');
|
||||||
|
console.log(data.username);
|
||||||
console.log(data);
|
console.log(data);
|
||||||
|
user = data;
|
||||||
});
|
});
|
||||||
|
|
||||||
const profile = {
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<main class="form-signin w-100 m-auto">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<h1>Profil</h1>
|
||||||
|
<ul>
|
||||||
|
<li>username : {user.username}</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
body {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding-top: 40px;
|
||||||
|
padding-bottom: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-signin {
|
||||||
|
max-width: 330px;
|
||||||
|
padding: 15px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user