Skip to content

Commit

Permalink
Migration jest en vitest + upgrade vue (#4820)
Browse files Browse the repository at this point in the history
* Met à jour l'aide au dépôt de garantie de la région CVL. (#4773)

* Maj l'aide BAFA de la Caf de Meurthe et Moselle (#4783)

* montre l'aide au permis du pas de calais.

* Màj l'aidee bafa de la Caf de Meurthe et Moselle.

* Chore(deps): Bump next from 14.2.10 to 14.2.15 in /contribuer (#4772)

* Chore(deps): Bump next from 14.2.10 to 14.2.15 in /contribuer

Bumps [next](https://github.com/vercel/next.js) from 14.2.10 to 14.2.15.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](vercel/next.js@v14.2.10...v14.2.15)

---
updated-dependencies:
- dependency-name: next
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* feat: changement sur l'action pour récupérer le sentry url avec dependabot

* feat: rollback pull request target

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jeremy PASTOURET <pastouret.jeremy@gmail.com>

* Chore(deps): Bump openfisca-france in /openfisca (#4770)

Bumps [openfisca-france](https://github.com/openfisca/openfisca-france) from 169.7.1 to 169.13.0.
- [Release notes](https://github.com/openfisca/openfisca-france/releases)
- [Changelog](https://github.com/openfisca/openfisca-france/blob/master/CHANGELOG.md)
- [Commits](openfisca/openfisca-france@169.7.1...169.13.0)

---
updated-dependencies:
- dependency-name: openfisca-france
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: fusion du authToken (partagé entre le front et le back) & configure le projet sentry front sur le build de vite.js (#4771)

* fix: par defaut valeur à 0 pour eviter une erreur dans open-fisca (#4776)

* Ajoute le revenu minimum étudiant de la ville de Gravelines (#4785)

* ajoute la ville de graveline.

* ajoute le revenu minimum étudiant de la ville de gravelines.

* Update ville_gravelines_aide_aux_etudiants.yml

* Mise à jour du paquet `mesaidesvelo` avec le nouveau paquet `@betagouv/aides-velo` (#4705)

* pkg: remove 'aides-velo' and add '@betagouv/aides-velo'

* refactor(aides-velo)!: use the '@betagouv/aides-velo' package

* fix(lib)!: IndividuMethods.age now returns undefined if date_naissance is undefined

* refactor(data/benefits)!: refactor aides-velo-generator with @betagouv/aides-velo

* fix(data): add missing institutions needed by @betagouv/aides-velo

* fix: nitpicks

* ci: change dependabot to watch on @betagouv/aides-velo instead of aides-velo

* fix(data): remove dependency to @lib/benefits/compute-aides-velo.js

* fix(lib): remove custom paths imports

* fix(lib): add missing individu-properties for interetsVelo

* Revert "fix(lib)!: IndividuMethods.age now returns undefined if date_naissance is undefined"

This reverts commit fd6cc3b.

* fix: corrige le test aides-vélo avec l'âge undefined

* refactor: compute-aides-velo

* chore: resize logos institutions & fix extensions

* fix: image logo de la ville Taillain Médoc en format png

* chore: fixe une limite de la description des aides à 600 pour autoriser les descriptions plus longues du package publicodes-aides-velo

* refactor: typage et structure de aides-velo-generator

* fix: typage dateDeValeur du mock de test d'une Situation

* chore: update betagouv/aides-velo, package-lock.json & package.json

* fix: ajoute nouvelles institutions manquantes + logos

* fix: limite description fixée à 450

* fix: màj taille max de la description des aides
En attente du merge betagouv/publicodes-aides-velo#20

* feat: cache la checkbox de l'aide vélo adapté aux PMR

* refactor: ordre dépendances

* feat: ajoute les informations du type de vélo dans le label de l'aide (via les infos en description)

* refactor: filtre du label des aides vélo

* refactor: supprime l'occurence "Ville de" dans les titres des aides vélo

* chore: met à jour le numéro de version du paquet aides vélo

* fix: ajoute les institutions et les logos manquants

---------

Co-authored-by: Emile Rolley <emile.rolley@tuta.io>

* Ajout groupe de boutons de démarrage de simulation depuis la page "Toutes les aides" (#4743)

* feat: ajout boutons démarrage simulation (page liste des aides)

* refactor: renommage variable plus précis

* feat: alignement responsive - boutons de démarrage de simulation (liste des aides)

* feat: ajoute la class tertiary du DSFR au back-button

* refactor: liste-aides

* Ajout d'une question sur les aides pour les études à l'étranger dans la FAQ (#4788)

* feat: ajout d'une question sur les aides pour les études à l'étranger dans la FAQ

* Update src/views/faq.vue

Co-authored-by: Jérémy PASTOURET <pastouret.jeremy@gmail.com>

---------

Co-authored-by: Jérémy PASTOURET <pastouret.jeremy@gmail.com>

* Chore(deps): Bump next from 14.2.15 to 14.2.21 in /contribuer (#4791)

Bumps [next](https://github.com/vercel/next.js) from 14.2.15 to 14.2.21.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](vercel/next.js@v14.2.15...v14.2.21)

---
updated-dependencies:
- dependency-name: next
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Ajout de la mutuelle communale du rhône (#4789)

* bump(open-fisca) - mise à jour de version

* feat: ajout de la mutuelle communale d'auvergne

* Amélioration du système de vérification géographique (#4780)

* feat: amélioration du système de vérification géographique et correction d'erreurs

* refacto: simplifier le code de vérification géographique

* Mise à jour de titre (doublon) de deux dispositifs de Bordeaux (#4766)

* feat: maj du libellé d'un dispositif en doublon

* fix: mise à jour du label de l'aide

* Ajout aide bafa Villefranche-sur-saone (#4793)

* ajout de l'aide au bafa de villefranche

* fix: ajout des points à la fin des conditions

* Update data/benefits/javascript/ville_villefranche_sur_saone_bafa_bafd.yml

Co-authored-by: Simon Hamery <shamery@free.fr>

* Update data/benefits/javascript/ville_villefranche_sur_saone_bafa_bafd.yml

Co-authored-by: Simon Hamery <shamery@free.fr>

* chore: resize logo villefranche

---------

Co-authored-by: Simon Hamery <shamery@free.fr>

* maj mutuelle région ara. (#4794)

* fix: mise à jour de l'EPCI exclu (métropole de Lille) pour les FSL du département Nord (#4795)

@yasmine-glitch Merci les précisions !

* Met à jour 4 aides de la région Pays de la Loire. (#4781)

* Met à jour 4 aides de la région Pays de la Loire.

* mises à jour.

* mises à jour.

* Update region_pays_de_la_loire-bourses-pour-les-élèves-et-étudiant-e-s-en-formation-sanitaire-et-sociale.yml

* Met à jour 2 aides (#4796)

* met à jour la carte illico solidaire pour limiter les faux positifs

* Met à jour lien de l'aide bafa de la caf de la haute-garonne.

* Chore(deps): Bump openfisca-france in /openfisca (#4799)

Bumps [openfisca-france](https://github.com/openfisca/openfisca-france) from 169.13.0 to 169.14.6.
- [Release notes](https://github.com/openfisca/openfisca-france/releases)
- [Changelog](https://github.com/openfisca/openfisca-france/blob/master/CHANGELOG.md)
- [Commits](openfisca/openfisca-france@169.13.0...169.14.6)

---
updated-dependencies:
- dependency-name: openfisca-france
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* màj vae hauts de france (#4801)

* Cache le RME de Gravelines + Màj l'aide Bafa de Caf Meurthe-et-Moselle (#4798)

* cache le revenu minimum étudiant de Gravelines.

* Met à jour l'aide Bafa de la Caf de Meurthe et Moselle.

* Cache trois aides de la région Pays de la Loire. (#4802)

* met à jour la description de la bourse de college pour davantage de clarté. (#4803)

* Cache deux aides et Met à jour une aide. (#4804)

* cache la bourse aux apprentis du val d'oise. A revérifier fin février.

* Met à jour l'aide au BAFA-BAFD de la Caf d'Ille-et-Vilaine.

* cache l'aide à l'autonomie des jeunes de la caf de Saône-et-Loire.

* feat: suppression suivi (#4810)

* Mise à jour de dépendances mineures (#4739)

* chore: mise à jour de dépendances mineurs

* fix: readapation du code en réutilisation la documentation officiel d'OpenID

* feat: premier niveau de connexion

* fix: redirection au login MCP (page accompagnement)

* ajout du rate limit

---------

Co-authored-by: Shamzic <shamery@free.fr>

* fix: empêche la fermeture de la modale de chargement des résultats lors d'un clic extérieur (#4800)

Source: https://storybook.systeme-de-design.gouv.fr/?path=/docs/modal--docs

* Rework page d'accueil [WIP] (#4679)

* feat: rework page d'accueil

* refactor: amélioration de la section "Comment ça marche?"

* fix: test 2e2 home-page

* feat: divise la page Home en sections

* feat: ajoute une section faq

* refactor: home / hero-section

* refactor: home page

* refactor: déplace et refacto du bouton d'accès à la liste des aides

* refactor: hero-section

* feat: ajoute les liens des partenaires

* fix: accessibilité - axe

* fix: lint

* style: améliore le dégradé du titre de la hero-section

* style: supprime les bullet points des balises <li>

* feat: ajoute la recherche par mot clef dans la liste des aides via un query param + màj liste des aides (section benefit showcase)

* refactor: et => et/ou

* feat: cache certaines sections de la page d'accueil dans l'iframe

* refactor: label bouton d'accès à la liste des aides

* refactor: label et contenu dans la section "service public"

* refactor: suppr. sous-descriptif section "comment ça marche ?"

* feat: ajoute du lazy loading sur les images de la section "partenaires"
https://developer.mozilla.org/fr/docs/Web/HTML/Element/img#attr-loading

* refactor: optimisation images section partenaires - utilisation extension webP + fallback en jpg

* refactor: découpage logo jeunes.gouv.fr

* test suppression section partenaires

* test sans le gif de présentation

* test sans le gif de présentation et sans la section partenaires

* chore: réactive les sections partenaires et showcase

* feat: ajoute lien vers page confidentialité + ajout back-button (confidentialite.vue)

* refactor: mise à jour liens (features-section.vue)

* refactor: mise à jour liens (features-section.vue)

* refactor: contenu (features-section.vue)

* refactor: contenu (features-section.vue)

* refactor: Ajoute les liens vers la CSS et l'aide Départ 18-25 (showcase page d'accueil)

* refactor: ordre des liens (showcase page d'accueil)

* refactor: accessibilité liens (showcase page d'accueil)

* refactor: réintroduit le terme "service public" (features-section.vue)

* refactor: retire le point d'accompagnement dans le section "Comment ça marche?"

* refactor: met à jour la section des partenaires

* refactor: met à jour des logos section des partenaires

* refactor: renommage méthode (rebase avec main)

* refactor: formations -> formation

* refactor: réordonner les logos des partenaires

* refactor: amélioration images JPEG (partenaires)

* chore: désactive les partenaires liés à des communes

* refactor: désactive partenaire rdv service-public et ajoute un commentaire

* Améliore la disposition des logos - section partenaires de la page d'accueil (#4815)

* refactor: améliore la disposition des logos (section partenaires de la page d'accueil)

* refactor: taille des logos des partenaires réduite au format smartphone

* Mise à jour des dépendances de Mongo (#4740)

* chore: maj des dépendances mongo

* fix: breacking changes de la maj de mongo

* fix: erreur d'instanciation avec mongo

* feat: passage en mode async/await pour la nouvelle version de mongoose

* ajout d'un mock autour des survey

* feat: mise à jour de la pertinance des tests

* mise à jour du test

* Met à jour les aides AVF et AVE de la Caf de la Gironde. (#4808)

* Met à jour les aides BAFA de a Caf de Touraine (Indre-et-Loire) (#4807)

* feat: migration jest => vitest

* feat: rajoute les tests historiquement exclus

* chore: update package-lock.json

* test:  ajuste la vérification de taille de la description - aide au covoiturage (temporaire)

* tryfix: cd - unit tests

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Yasmine Berrada <yasmineberrada91@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jeremy PASTOURET <pastouret.jeremy@gmail.com>
Co-authored-by: Emile Rolley <emile.rolley@tuta.io>
  • Loading branch information
5 people authored Feb 5, 2025
1 parent 62175c1 commit 2eecbe5
Show file tree
Hide file tree
Showing 206 changed files with 13,248 additions and 12,640 deletions.
1 change: 0 additions & 1 deletion .eslintrc.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ module.exports = {
env: {
node: true,
es2021: true,
jest: true,
},
extends: [
"eslint:recommended",
Expand Down
2 changes: 1 addition & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ updates:
labels:
- dependencies
allow:
- dependency-name: "aides-velo"
- dependency-name: "@betagouv/aides-velo"
- package-ecosystem: "pip"
directory: "./openfisca"
schedule:
Expand Down
57 changes: 56 additions & 1 deletion .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,39 @@ env:
EQUINOXE_SSH_USER: debian
ECLIPSE_SSH_HOST: monitor.eclipse.mes-aides.incubateur.net
ECLIPSE_SSH_USER: debian
OPENFISCA_BIND_HOST: 127.0.0.1:2000
PYTHON_VERSION: 3.11.4

jobs:
install_openfisca:
name: Install OpenFisca
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Cache Virtual Environment
uses: actions/cache@v4
id: python-dependencies
with:
path: .venv
key: ${{ runner.os }}-cache-python-dependencies-${{ env.PYTHON_VERSION }}-${{ hashFiles('**/openfisca/requirements.txt') }}
- uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Setup VirtualEnv
run: |
python -m venv .venv
- name: Install dependencies
shell: bash
run: |
source .venv/bin/activate
pip3 install -r openfisca/requirements.txt 2> ci-err.log
test -n ci-err.log && grep incompatible ci-err.log && cat ci-err.log && exit 1
rm ci-err.log
deactivate
unit_testing:
name: Unit testing
needs: [install_openfisca]
runs-on: ubuntu-20.04
steps:
- name: Checkout
Expand All @@ -30,10 +59,36 @@ jobs:
with:
path: node_modules
key: ${{ runner.os }}-cache-node-modules-${{ hashFiles('**/package-lock.json') }}
- name: Cache Virtual Environment
uses: actions/cache@v4
id: python-dependencies
with:
path: .venv
key: ${{ runner.os }}-cache-python-dependencies-${{ env.PYTHON_VERSION }}-${{ hashFiles('**/openfisca/requirements.txt') }}
- uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
if: steps.restore-dependencies.outputs.cache-hit != 'true'
run: npm ci --prefer-offline --no-audit
- name: Jest
- name: Run OpenFisca
shell: bash
run: |
source .venv/bin/activate
nohup gunicorn api --chdir openfisca/ --config openfisca/config.py --preload --log-level debug --log-file=- &
deactivate
- name: Wait for OpenFisca to be ready
shell: bash
run: |
for i in {1..30}; do
if wget --retry-connrefused --waitretry=2 --spider http://localhost:2000/parameter/prestations_sociales; then
echo "OpenFisca is ready"
break
fi
echo "Waiting for OpenFisca to be ready..."
sleep 2
done
- name: Vitest
run: npm run test
deploy_equinoxe_production:
if: github.ref == 'refs/heads/main'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ jobs:
echo "Waiting for OpenFisca to be ready..."
sleep 2
done
- name: Jest
- name: Vitest
run: npm run test
build:
name: Build
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ npm run serve

There are several levels of tests:

- Unit tests are executed by [Jest](https://jestjs.io/fr/) and run with `npm test`.
- Unit tests are executed by [Vitest](https://vitest.dev/) and run with `npm test`.
- End-to-end test are executed with [Cypress](https://www.cypress.io/) with `npm run cypress`

You can safely use `npm test && npm run cypress` to drive your developments.
Expand Down
30 changes: 13 additions & 17 deletions backend/controllers/followups.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,24 @@ import { sendSimulationResultsEmail } from "../lib/messaging/email/email-service
import { sendSimulationResultsSms } from "../lib/messaging/sms/sms-service.js"
import { ErrorType, ErrorStatus, ErrorName } from "../../lib/enums/error.js"

export function followup(
export async function followup(
req: Request,
res: Response,
next: NextFunction,
id: string
) {
Followups.findById(id)
.populate("simulation")
.exec(function (err: any, followup: Followup | null) {
if (err) {
return next(err)
}
// no matching followup or wrong or missing access token
if (
!followup?.accessToken ||
followup.accessToken !== req?.query?.token
) {
return res.redirect("/")
}
req.followup = followup
simulationController.simulation(req, res, next, followup.simulation)
})
try {
const followup = await Followups.findById(id).populate("simulation").exec()

if (!followup?.accessToken || followup.accessToken !== req?.query?.token) {
return res.redirect("/")
}

req.followup = followup
simulationController.simulation(req, res, next, followup.simulation)
} catch (err) {
return next(err)
}
}

async function createSimulationRecapUrl(req: Request, res: Response) {
Expand Down
62 changes: 33 additions & 29 deletions backend/controllers/moncomptepro.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import jwt from "jsonwebtoken"
import config from "../config/index.js"
import { Issuer } from "openid-client"
import * as client from "openid-client"
import Sentry from "@sentry/node"

const JWT_EXPIRATION_DELAY = 15552000 // 6 * 30 * 24 * 60 * 60 = 6 months
const MCP_TOKEN = "mcp_token"
const MCP_CODE_VERIFER = "mcp_vrfer"

const accompagnement = config.accompagnement

Expand All @@ -20,31 +21,25 @@ const {
const { sessionSecret } = config
const baseUrl = config.baseURL

const getMcpClient = async () => {
const mcpIssuer = await Issuer.discover(provider)

return new mcpIssuer.Client({
client_id,
client_secret,
redirect_uris: [redirect_uri],
response_types: ["code"],
})
const getMcpClient = async (): Promise<client.Configuration> => {
return await client.discovery(new URL(provider), client_id, client_secret)
}

const login = async (req, res) => {
const client = await getMcpClient()
const redirectUrl = client.authorizationUrl({
const mcpIssuer = await getMcpClient()
const parameters: Record<string, string> = {
redirect_uri,
scope,
})
res.redirect(redirectUrl)
}
const redirectUrl: URL = client.buildAuthorizationUrl(mcpIssuer, parameters)
return res.redirect(redirectUrl.href)
}

const retrieveMcpAccessToken = async (req) => {
try {
const client = await getMcpClient()
const params = client.callbackParams(req)
const tokenSet = await client.callback(redirect_uri, params)
return tokenSet.access_token
const mcpIssuer = await getMcpClient()
const currentUrl = new URL(config.baseURL + req.originalUrl)
return await client.authorizationCodeGrant(mcpIssuer, currentUrl, {})
} catch (error) {
console.error("Error in retrieveMcpAccessToken: ", error)
throw error
Expand All @@ -58,12 +53,16 @@ const access = async (req, res, next) => {
const mcpCode = req.query.code

if (mcpCode) {
const mcpAccessToken = await retrieveMcpAccessToken(req)
const client = await getMcpClient()
if (!mcpAccessToken) {
const tokens = await retrieveMcpAccessToken(req)
const mcpIssuer = await getMcpClient()
if (!tokens) {
throw new Error("No mcpAccessToken")
}
const userInfo = await client.userinfo(mcpAccessToken)

const { access_token } = tokens
const claims = tokens.claims()!
const { sub } = claims
const userInfo = await client.fetchUserInfo(mcpIssuer, access_token, sub)
if (!userInfo.email) {
throw new Error("No userInfo email")
}
Expand All @@ -75,7 +74,7 @@ const access = async (req, res, next) => {
})
res.cookie(MCP_TOKEN, mcpToken)
} else {
res.clearCookie(MCP_TOKEN)
clearCookie(res)
return res.redirect(accompagnement.unauthorizedPath)
}
}
Expand All @@ -87,15 +86,15 @@ const access = async (req, res, next) => {
if (isAuthorized) {
return next()
} else {
res.clearCookie(MCP_TOKEN)
clearCookie(res)
return res.redirect(accompagnement.unauthorizedPath)
}
}

return login(req, res)
} catch (error) {
Sentry.captureException(error)
res.clearCookie(MCP_TOKEN)
clearCookie(res)
return res.redirect(accompagnement.errorPath)
}
}
Expand All @@ -108,13 +107,18 @@ const loginCallbackRedirect = (req, res) => {
}
}

const clearCookie = (res) => {
res.clearCookie(MCP_TOKEN)
res.clearCookie(MCP_CODE_VERIFER)
}

const logout = async (req, res, next) => {
try {
res.clearCookie(MCP_TOKEN)
const client = await getMcpClient()
const redirectUrl = client.endSessionUrl({
clearCookie(res)
const mcpIssuer = await getMcpClient()
const redirectUrl = client.buildEndSessionUrl(mcpIssuer, {
post_logout_redirect_uri: `${baseUrl}${accompagnement.path}`,
})
}).href
res.redirect(redirectUrl)
} catch (e) {
next(e)
Expand Down
51 changes: 30 additions & 21 deletions backend/controllers/simulation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,33 +19,40 @@ function setSimulationOnRequest(req: Request, simulation: Simulation) {
req.situation = generateSituation(req.simulation)
}

function simulation(
async function simulation(
req: Request,
res,
next,
simulationOrSimulationId: Simulation | Simulation["_id"] | string
) {
if (
simulationOrSimulationId &&
typeof simulationOrSimulationId === "object" &&
simulationOrSimulationId._id
"_id" in simulationOrSimulationId
) {
const simulation = simulationOrSimulationId as Simulation
setSimulationOnRequest(req, simulation)
return next()
}

const simulationId = simulationOrSimulationId as Simulation["_id"]
Simulations.findById(simulationId, (err, simulation) => {
if (!simulation) return res.sendStatus(404)
if (err) return next(err)
try {
const simulationId = simulationOrSimulationId as Simulation["_id"]
const simulation = await Simulations.findById(simulationId)

if (!simulation) {
return res.sendStatus(404)
}

setSimulationOnRequest(req, simulation)
next()
})
} catch (err) {
next(err)
}
}

function attachAccessCookie(req: Request, res, next?) {
const cookiesParameters = {
maxAge: 7 * 24 * 3600 * 1000,
maxAge: 604800000, // Duration: 7 days in milliseconds
sameSite: config.baseURL.startsWith("https") ? "none" : "lax",
secure: config.baseURL.startsWith("https"),
}
Expand All @@ -56,7 +63,7 @@ function attachAccessCookie(req: Request, res, next?) {
)
res.cookie(
"lastestSimulation",
req.simulation?._id.toString(),
req.simulation?._id?.toString(),
cookiesParameters
)
next && next()
Expand Down Expand Up @@ -98,23 +105,25 @@ function clearCookies(req: Request, res) {
}
}

function create(req: Request, res, next) {
if (req.body._id)
async function create(req: Request, res, next) {
if (req.body._id) {
return res.status(403).send({
error:
"You cant provide _id when saving a situation. _id will be generated automatically.",
"You can't provide _id when saving a situation. _id will be generated automatically.",
})
}

return Simulations.create(
omit(req.body, "createdAt", "status", "token"),
(err, persistedSimulation) => {
if (err) return next(err)
try {
const persistedSimulation = await Simulations.create(
omit(req.body, "createdAt", "status", "token")
)

clearCookies(req, res)
req.simulation = persistedSimulation
next && next()
}
)
clearCookies(req, res)
req.simulation = persistedSimulation
next && next()
} catch (err) {
next(err)
}
}

function openfiscaResponse(req: Request, res, next) {
Expand Down
Loading

0 comments on commit 2eecbe5

Please sign in to comment.