Skip to content

Commit

Permalink
feat(transverse): configuration de TS pour la transformation Meilisea…
Browse files Browse the repository at this point in the history
…rch et mise à jour des types stage et logement (#199)
  • Loading branch information
juliebrunetto83 authored Sep 19, 2023
1 parent 7fd24da commit 6c6f4d5
Show file tree
Hide file tree
Showing 18 changed files with 664 additions and 733 deletions.
2 changes: 1 addition & 1 deletion config/admin.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export default ({ env }) => ({
export default ({ env }: any) => ({
auth: {
secret: env("ADMIN_JWT_SECRET"),
},
Expand Down
2 changes: 1 addition & 1 deletion config/database.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export default ({ env }) => ({
export default ({ env }: any) => ({
connection: {
client: "postgres",
connection: {
Expand Down
2 changes: 1 addition & 1 deletion config/logger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const logstashFormat = () => winston.format.logstash()

const prettyFormat = () => strapiLogFormats.prettyPrint() as winston.Logform.Format

export default function ({ env }) {
export default function ({ env }: any) {
// Available log levels :
// error: 0, warn: 1, info: 2, http: 3, verbose: 4, debug: 5, silly: 6
// See https://github.com/winstonjs/triple-beam/blob/master/config/npm.js
Expand Down
Original file line number Diff line number Diff line change
@@ -1,41 +1,29 @@
// @ts-ignore
import assert from "node:assert";
import {
getDeviseToDisplay,
getLocalisationToDisplay,
getSourceUpdatedAtToDisplay,
getSurfaceToDisplay,
transformerAnnonceDeLogement
transformerAnnonceDeLogement,
} from "./annonce-de-logement.transformation";
import { uneAnnonceDeLogementMeilisearch, uneAnnonceDeLogementStrapi } from './annonce-de-logement.fixture';

let surface: number;
let surfaceMax: number;
let devise: string;
let ville: string;
let codePostal: number;
let codePostal: string;

describe("AnnonceDeLogementTransformation", () => {
describe("Lorsque je transforme la surface à afficher", () => {
describe("et que la surfaceMax n'a pas de valeur définie", () => {
it("affiche la seule surface que nous ayons", () => {
// Given
surface = 30;
surfaceMax = null;

// When
const resultat = getSurfaceToDisplay(surface, surfaceMax);

// Then
assert.strictEqual(resultat, "30m²");
});

it("affiche la seule surface que nous ayons", () => {
// Given
surface = 30;
surfaceMax = undefined;

// When
const resultat = getSurfaceToDisplay(surface, surfaceMax);
const resultat = getSurfaceToDisplay(surface);

// Then
assert.strictEqual(resultat, "30m²");
Expand Down Expand Up @@ -69,71 +57,6 @@ describe("AnnonceDeLogementTransformation", () => {
assert.strictEqual(resultat, "de 30 à 35 m²");
});
});

describe("et que la surface n'a pas de valeur définie", () => {
it("affiche de undefined à surfaceMax", () => {
// Given
surface = undefined;
surfaceMax = 35;

// When
const resultat = getSurfaceToDisplay(surface, surfaceMax);

// Then
assert.strictEqual(resultat, "de undefined à 35 m²");
});

it("affiche de null à surfaceMax", () => {
// Given
surface = null;
surfaceMax = 35;

// When
const resultat = getSurfaceToDisplay(surface, surfaceMax);

// Then
assert.strictEqual(resultat, "de null à 35 m²");
});
});
});

describe("Lorsque je transforme la devise à afficher", () => {
describe("et que la valeur courante est non définie", () => {
it("retourne la devise par défaut", () => {
// Given
devise = null;

// When
const resultat = getDeviseToDisplay(devise);

// Then
assert.strictEqual(resultat, "€");
});

it("retourne la devise par défaut", () => {
// Given
devise = undefined;

// When
const resultat = getDeviseToDisplay(devise);

// Then
assert.strictEqual(resultat, "€");
});
});

describe("et que la valeur courante est euros", () => {
it("retourne la devise par défaut", () => {
// Given
devise = undefined;

// When
const resultat = getDeviseToDisplay(devise);

// Then
assert.strictEqual(resultat, "€");
});
});
});

describe("Lorsque je transforme la localisation à afficher", () => {
Expand All @@ -147,23 +70,11 @@ describe("AnnonceDeLogementTransformation", () => {
});
});

describe("et que la localisation n'existe pas", () => {
it("retourne une chaine vide", () => {
// When
const undefinedResultat = getLocalisationToDisplay(undefined);
const nullResultat = getLocalisationToDisplay(null);

// Then
assert.strictEqual(undefinedResultat, "");
assert.strictEqual(nullResultat, "");
});
});

describe("et que la ville et le code postal sont définis", () => {
it("retourne le code postal suivi de la ville", () => {
// Given
ville = "Paris";
codePostal = 75001;
codePostal = '75001';

// When
const resultat = getLocalisationToDisplay({ ville, codePostal });
Expand All @@ -176,11 +87,10 @@ describe("AnnonceDeLogementTransformation", () => {
describe("et que seul le code postal est renseigné", () => {
it("retourne seulement le code postal", () => {
// Given
ville = undefined;
codePostal = 75001;
codePostal = '75001';

// When
const resultat = getLocalisationToDisplay({ ville, codePostal });
const resultat = getLocalisationToDisplay({ codePostal });

// Then
assert.strictEqual(resultat, "75001");
Expand All @@ -191,10 +101,9 @@ describe("AnnonceDeLogementTransformation", () => {
it("retourne seulement la ville", () => {
// Given
ville = "Montpellier";
codePostal = undefined;

// When
const resultat = getLocalisationToDisplay({ ville, codePostal });
const resultat = getLocalisationToDisplay({ ville });

// Then
assert.strictEqual(resultat, "Montpellier");
Expand All @@ -215,17 +124,32 @@ describe("AnnonceDeLogementTransformation", () => {
assert.strictEqual(resultat, "2023-01-01");
});
});
});

describe("et que sa valeur est non-définie", () => {
it("retourne une chaîne vide", () => {
describe("Lorsque je transforme la devise à afficher", () => {
describe("et que la valeur courante n‘est pas 'euros'", () => {
it("retourne la devise par défaut", () => {
// Given
const dateMiseAJourDeLaSource = undefined;
devise = '$';

// When
const resultat = getSourceUpdatedAtToDisplay(dateMiseAJourDeLaSource);
const resultat = getDeviseToDisplay(devise);

// Then
assert.strictEqual(resultat, "");
assert.strictEqual(resultat, "$");
});
});

describe("et que la valeur courante est 'euros'", () => {
it("retourne la devise €", () => {
// Given
devise = 'euros';

// When
const resultat = getDeviseToDisplay(devise);

// Then
assert.strictEqual(resultat, "€");
});
});
});
Expand Down
Original file line number Diff line number Diff line change
@@ -1,66 +1,59 @@
import { Meilisearch, Strapi } from "./annonce-de-logement.type";

export function transformerAnnonceDeLogement({ entry }: { entry: Strapi.AnnonceDeLogement }): Meilisearch.AnnonceDeLogement {
const { surface, surfaceMax } = entry;
return {
id: entry.id,
slug: entry.slug,
titre: entry.titre,
dateDeDisponibilite: entry.dateDeDisponibilite,
dateDeMiseAJour: getSourceUpdatedAtToDisplay(entry.sourceUpdatedAt),
devise: getDeviseToDisplay(entry.devise),
prix: entry.prix,
prixHT: entry.prixHT,
surface,
surfaceMax: surfaceMax ? surfaceMax : 0,
surfaceAAfficher: getSurfaceToDisplay(surface, surfaceMax),
type: entry.type,
typeBien: entry.typeBien,
url: entry.url,
imagesUrl: entry.imagesUrl?.map(imageUrl => imageUrl.value) || [],
sourceUpdatedAt: entry.sourceUpdatedAt,
localisationAAfficher: getLocalisationToDisplay(entry.localisation),
localisation: entry.localisation && {
ville: entry.localisation?.ville || "",
codePostal: entry.localisation?.codePostal || "",
},
};
return {
id: entry.id,
slug: entry.slug,
titre: entry.titre,
dateDeDisponibilite: entry.dateDeDisponibilite,
dateDeMiseAJour: getSourceUpdatedAtToDisplay(entry.sourceUpdatedAt),
devise: getDeviseToDisplay(entry.devise),
prix: entry.prix,
prixHT: entry.prixHT,
surface: entry.surface,
surfaceMax: entry.surfaceMax ?? 0,
surfaceAAfficher: getSurfaceToDisplay(entry.surface, entry.surfaceMax),
type: entry.type,
typeBien: entry.typeBien,
url: entry.url,
imagesUrl: entry.imagesUrl?.map(imageUrl => imageUrl.value) || [],
sourceUpdatedAt: entry.sourceUpdatedAt,
localisationAAfficher: getLocalisationToDisplay(entry.localisation),
localisation: {
ville: entry.localisation.ville || "",
codePostal: entry.localisation.codePostal || "",
},
};
}

export function getSurfaceToDisplay(surface: number, surfaceMax: number): string {
if (surfaceMax) {
return `de ${surface} à ${surfaceMax} m²`;
}
return `${surface}m²`;
export function getSurfaceToDisplay(surface: number, surfaceMax?: number): string {
if (surfaceMax) {
return `de ${surface} à ${surfaceMax} m²`;
}
return `${surface}m²`;
}

export function getDeviseToDisplay(devise: string): string {
if (devise === "euros") {
return "€";
}
return "€";
if (devise === "euros") {
return "€";
}
return devise;
}

export function getLocalisationToDisplay(localisation): string {
if (!localisation) {
return "";
}
const { ville, codePostal } = localisation;
if (ville && codePostal) {
return codePostal + " - " + ville;
}
if (codePostal) {
return String(codePostal);
}
if (ville) {
return ville;
}
return "";
export function getLocalisationToDisplay(localisation: Strapi.AnnonceDeLogement.Localisation): string {
const { ville, codePostal } = localisation;
if (ville && codePostal) {
return codePostal + " - " + ville;
}
if (codePostal) {
return String(codePostal);
}
if (ville) {
return ville;
}
return "";
}

export function getSourceUpdatedAtToDisplay(datetime: string): string {
if (datetime) {
return datetime.split("T")[0];
}
return "";
return datetime.split("T")[0];
}
Loading

0 comments on commit 6c6f4d5

Please sign in to comment.