From b78b25b89b62493439ed516b808c41f0b9e16888 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Fou=C3=A9r=C3=A9?= Date: Fri, 20 Feb 2026 16:01:34 +0100 Subject: [PATCH] small fixes --- convertedClient/main.html | 16 +- convertedClient/script/main-js.js | 6 - convertedClient/script/timeline.js | 29 -- convertedMicroServices/README.md | 395 ------------------ convertedMicroServices/WASM_EXPLAINED.md | 259 ------------ .../PostStorageHandler/PostStorageHandler.cpp | 9 - 6 files changed, 1 insertion(+), 713 deletions(-) delete mode 100644 convertedMicroServices/README.md delete mode 100644 convertedMicroServices/WASM_EXPLAINED.md diff --git a/convertedClient/main.html b/convertedClient/main.html index 061a27e..b5877a8 100644 --- a/convertedClient/main.html +++ b/convertedClient/main.html @@ -102,21 +102,7 @@

Create post

- - -
-
- - -
-
- -
-
+
diff --git a/convertedClient/script/main-js.js b/convertedClient/script/main-js.js index 34a8ba1..c115efb 100644 --- a/convertedClient/script/main-js.js +++ b/convertedClient/script/main-js.js @@ -14,12 +14,6 @@ function followHandler(event) { di.socialGraphHandler.FollowWithUsername(username, follweeeName); } -const button = document.getElementById("synchro"); - -button.addEventListener("click", (event) => { - di.postStorageHandler.ShowPostsPresence(); -}); - async function fillLoggedUser() { const annuaireService = di.annuaireService; const users = annuaireService.getListOfUsers(); diff --git a/convertedClient/script/timeline.js b/convertedClient/script/timeline.js index 96d3e76..4deba0f 100644 --- a/convertedClient/script/timeline.js +++ b/convertedClient/script/timeline.js @@ -107,13 +107,6 @@ function initTimeline() { showTimeline("main"); - const toggle = document.getElementById("only-friends-toggle"); - if (toggle) { - toggle.addEventListener("change", () => { - showTimeline("main"); - }); - } - $("#confirmDeletePostBtn").on("click", () => { const postId = $("#deletePostModal").data("post-id"); if (postId) { @@ -134,28 +127,6 @@ function initTimeline() { //setTimeout(() => { showTimeline("main"); }, 500); } }); - const sortBtn = document.getElementById("sort-toggle-btn"); - if (sortBtn) { - sortBtn.addEventListener("click", () => { - const currentSort = sortBtn.getAttribute("data-sort"); - const newSort = currentSort === "desc" ? "asc" : "desc"; - sortBtn.setAttribute("data-sort", newSort); - - // Update UI - const icon = sortBtn.querySelector("i"); - const label = document.getElementById("sort-label"); - - if (newSort === "asc") { - icon.className = "fas fa-arrow-up"; - label.innerText = "Oldest first"; - } else { - icon.className = "fas fa-arrow-down"; - label.innerText = "Newest first"; - } - - showTimeline("main"); - }); - } const logoutBtn = document.getElementById("logout-btn"); if (logoutBtn) { diff --git a/convertedMicroServices/README.md b/convertedMicroServices/README.md deleted file mode 100644 index 2b061af..0000000 --- a/convertedMicroServices/README.md +++ /dev/null @@ -1,395 +0,0 @@ -# convertedMicroServices - Guide de Compilation et de Lancement - -## Table des matières -- [Prérequis](#prérequis) -- [Configuration de l'environnement](#configuration-de-lenvironnement) -- [Compilation du projet](#compilation-du-projet) -- [Lancement du microservice](#lancement-du-microservice) -- [Utilisation](#utilisation) -- [Architecture](#architecture) -- [Dépannage](#dépannage) - -## Prérequis - -### Système d'exploitation -- macOS (architecture aarch64-darwin) -- Linux (architecture x86_64-linux) - -### Logiciels requis -- **Nix** avec les fonctionnalités expérimentales activées - - `nix-command` - - `flakes` - -## Configuration de l'environnement - -Le projet utilise **Nix Flakes** pour gérer les dépendances de manière reproductible. Le fichier `flake.nix` (situé dans le répertoire parent `socialNetwork/`) définit toutes les dépendances nécessaires : - -- **Emscripten** : Compilateur C++ vers WebAssembly -- **CMake** : Système de build -- **Node.js** : Runtime JavaScript pour exécuter le module WebAssembly - -### Activation de l'environnement Nix - -Pour activer l'environnement de développement avec toutes les dépendances : - -```bash -cd /path/to/DeathStarBench/socialNetwork/convertedMicroServices -nix --extra-experimental-features 'nix-command flakes' develop -``` - -Cette commande recherchera automatiquement le `flake.nix` dans le répertoire parent et activera l'environnement. - -## Compilation du projet - -### Étape 1 : Nettoyage (optionnel mais recommandé) - -Avant de compiler, il est recommandé de nettoyer les anciens fichiers de build : - -```bash -cd /path/to/DeathStarBench/socialNetwork/convertedMicroServices -rm -rf CMakeCache.txt CMakeFiles/ Makefile cmake_install.cmake *.cjs *.wasm -``` - -### Étape 2 : Configuration avec CMake et Emscripten - -Le projet doit être configuré avec Emscripten pour compiler en WebAssembly : - -```bash -nix --extra-experimental-features 'nix-command flakes' develop -c emcmake cmake . -``` - -**Explication :** -- `emcmake` : Wrapper qui configure CMake pour utiliser Emscripten -- `cmake .` : Configure le projet dans le répertoire courant - -**Sortie attendue :** -``` --- Configuring done --- Generating done --- Build files have been written to: /path/to/convertedMicroServices -``` - -### Étape 3 : Compilation - -Une fois la configuration terminée, compilez le projet : - -```bash -nix --extra-experimental-features 'nix-command flakes' develop -c emmake make -``` - -**Explication :** -- `emmake` : Wrapper qui configure Make pour utiliser Emscripten -- `make` : Lance la compilation - -**Fichiers générés :** -- `convertedMicroServices.js` (~119 KB) : Wrapper JavaScript CommonJS pour charger le module WebAssembly -- `convertedMicroServices.wasm` (~39 KB) : Module WebAssembly compilé contenant le code C++ - -**Note importante :** Le fichier est généré avec l'extension `.cjs` (CommonJS) au lieu de `.js` pour éviter les conflits avec les modules ES6 dans l'environnement Node.js. - -## Lancement du microservice - -### Méthode 1 : Exécution simple avec Node.js - -Pour lancer le microservice avec Node.js : - -```bash -nix --extra-experimental-features 'nix-command flakes' develop -c node convertedMicroServices.js -``` - -Le microservice se charge et reste en attente. Il est conçu pour être utilisé comme une bibliothèque (voir Méthode 2 et 3). - -### Méthode 2 : Utilisation dans un script Node.js - -Créez un fichier `test.js` : - -```javascript -// test.js -const Module = require('./convertedMicroServices.js'); - -Module.onRuntimeInitialized = () => { - console.log('Module WebAssembly chargé avec succès !'); - - // Créer une instance du service - const testService = new Module.TestService(); - - // Appeler la méthode TestFunction - const result = testService.TestFunction(); - console.log('Résultat de TestFunction():', result); - - // Nettoyer - testService.delete(); - - process.exit(0); -}; -``` - -Puis exécutez : - -```bash -nix --extra-experimental-features 'nix-command flakes' develop -c node test.js -``` - -**Sortie attendue :** -``` -Module WebAssembly chargé avec succès ! -Résultat de TestFunction(): Bonjour -``` - -### Méthode 3 : Test rapide en une ligne - -Pour tester rapidement le microservice sans créer de fichier : - -```bash -nix --extra-experimental-features 'nix-command flakes' develop -c node -e "const m = require('./convertedMicroServices.js'); m.onRuntimeInitialized = () => { const s = new m.TestService(); console.log('Résultat:', s.TestFunction()); s.delete(); process.exit(0); };" -``` - -**Sortie attendue :** -``` -Résultat: Bonjour -``` - -### Méthode 4 : Utilisation dans un navigateur web - -Créez un fichier HTML (`index.html`) : - -```html - - - - - - convertedMicroServices - Demo - - - -

convertedMicroServices - Démonstration

-

Cliquez sur le bouton pour tester le microservice WebAssembly

- -
- - - - - -``` - -Lancez un serveur HTTP local : - -```bash -nix --extra-experimental-features 'nix-command flakes' develop -c python3 -m http.server 8080 -``` - -Puis ouvrez votre navigateur à l'adresse : `http://localhost:8080` - -## Utilisation - -### API du microservice - -Le microservice expose la classe `TestService` avec les méthodes suivantes : - -#### `TestService()` -Constructeur de la classe. - -```javascript -const service = new Module.TestService(); -``` - -#### `TestFunction()` -Retourne une chaîne de caractères "Bonjour". - -```javascript -const result = service.TestFunction(); -console.log(result); // Output: "Bonjour" -``` - -#### `delete()` -Libère la mémoire allouée pour l'instance (important en WebAssembly). - -```javascript -service.delete(); -``` - -## Architecture - -### Structure du projet - -``` -convertedMicroServices/ -├── CMakeLists.txt # Configuration CMake -├── README.md # Ce fichier -├── TestService/ -│ ├── TestService.cpp # Implémentation du service -│ └── TestService.hpp # En-tête du service -└── UniqueIdHandler/ # (non utilisé actuellement) -``` - -### Flux de compilation - -``` -TestService.cpp (C++) - ↓ - [Emscripten (emcc)] - ↓ - convertedMicroServices.wasm + convertedMicroServices.js - ↓ - [Node.js ou Navigateur Web] - ↓ - Exécution du microservice -``` - -### Technologies utilisées - -- **C++17** : Langage de programmation -- **Emscripten** : Compilateur C++ → WebAssembly -- **WebAssembly (WASM)** : Format binaire portable -- **Embind** : Bibliothèque Emscripten pour les bindings C++ ↔ JavaScript -- **CommonJS** : Format de module pour Node.js - -## Dépannage - -### Erreur : "experimental Nix feature 'nix-command' is disabled" - -**Solution :** Ajoutez toujours les flags suivants : -```bash -nix --extra-experimental-features 'nix-command flakes' develop -``` - -Ou configurez Nix de manière permanente dans `~/.config/nix/nix.conf` : -``` -experimental-features = nix-command flakes -``` - -### Erreur : "require is not defined in ES module scope" - -**Cause :** Un fichier `package.json` dans un répertoire parent contient `"type": "module"`, ce qui force Node.js à traiter tous les fichiers `.js` comme des modules ES6. - -**Solution :** Le projet génère maintenant des fichiers `.cjs` (CommonJS) au lieu de `.js`. Si vous avez des anciens fichiers `.js`, renommez-les : -```bash -mv convertedMicroServices.js convertedMicroServices.js -``` - -### Erreur : "Could NOT find Boost" - -**Cause :** L'environnement Nix n'est pas activé ou le `CMakeLists.txt` contient des dépendances Boost inutiles. - -**Solution :** Le `CMakeLists.txt` a été simplifié pour ne plus nécessiter Boost. Assurez-vous d'utiliser la dernière version. - -### Erreur : "emscripten/bind.h: No such file or directory" - -**Cause :** Le projet n'est pas configuré avec Emscripten. - -**Solution :** Utilisez `emcmake cmake .` au lieu de `cmake .` seul. - -### Le microservice se lance mais ne fait rien - -**Cause :** Le code actuel n'a pas de fonction `main()` pour une exécution autonome. - -**Solution :** Le microservice est conçu pour être utilisé comme bibliothèque. Utilisez-le dans un script JavaScript comme montré dans la section [Méthode 2](#méthode-2--utilisation-dans-un-script-nodejs) ou testez avec la [Méthode 3](#méthode-3--test-rapide-en-une-ligne). - -## Commandes rapides - -### Workflow complet (nettoyage + compilation + test) - -```bash -# Se placer dans le bon répertoire -cd /path/to/DeathStarBench/socialNetwork/convertedMicroServices - -# Nettoyage -rm -rf CMakeCache.txt CMakeFiles/ Makefile cmake_install.cmake *.cjs *.wasm - -# Configuration avec Emscripten -nix --extra-experimental-features 'nix-command flakes' develop -c emcmake cmake . - -# Compilation -nix --extra-experimental-features 'nix-command flakes' develop -c emmake make - -# Test rapide -nix --extra-experimental-features 'nix-command flakes' develop -c node -e "const m = require('./convertedMicroServices.js'); m.onRuntimeInitialized = () => { const s = new m.TestService(); console.log('Résultat:', s.TestFunction()); s.delete(); process.exit(0); };" -``` - -**Sortie attendue du test :** -``` -Résultat: Bonjour -``` - -### Alias utiles (à ajouter dans votre `.zshrc` ou `.bashrc`) - -```bash -alias nix-dev='nix --extra-experimental-features "nix-command flakes" develop' -alias build-wasm='rm -rf CMakeCache.txt CMakeFiles/ *.cjs *.wasm && nix-dev -c emcmake cmake . && nix-dev -c emmake make' -alias test-wasm='nix-dev -c node -e "const m = require(\"./convertedMicroServices.js\"); m.onRuntimeInitialized = () => { const s = new m.TestService(); console.log(\"Résultat:\", s.TestFunction()); s.delete(); process.exit(0); };"' -``` - -Utilisation : -```bash -nix-dev # Active l'environnement -build-wasm # Compile le projet -test-wasm # Teste le microservice -``` - -## Résumé rapide - -**Pour compiler et tester en 4 commandes :** - -```bash -cd /path/to/DeathStarBench/socialNetwork/convertedMicroServices -nix --extra-experimental-features 'nix-command flakes' develop -c emcmake cmake . -nix --extra-experimental-features 'nix-command flakes' develop -c emmake make -nix --extra-experimental-features 'nix-command flakes' develop -c node -e "const m = require('./convertedMicroServices.js'); m.onRuntimeInitialized = () => { const s = new m.TestService(); console.log('Résultat:', s.TestFunction()); s.delete(); process.exit(0); };" -``` - -## Liens utiles - -* Bind.h : https://emscripten.org/docs/api_reference/bind.h.html -* Embind: https://emscripten.org/docs/porting/connecting_cpp_and_javascript/embind.html - - -## Auteur et Licence - -Projet : DeathStarBench - Social Network Microservices -Date : Octobre 2025 - ---- - -**Note :** Ce projet fait partie du benchmark DeathStarBench et est destiné à des fins d'apprentissage et de recherche sur les architectures microservices. diff --git a/convertedMicroServices/WASM_EXPLAINED.md b/convertedMicroServices/WASM_EXPLAINED.md deleted file mode 100644 index 13aca6b..0000000 --- a/convertedMicroServices/WASM_EXPLAINED.md +++ /dev/null @@ -1,259 +0,0 @@ -# Comment fonctionne le WASM dans convertedMicroServices ? - -## 🤔 Votre question : Le WASM est-il intégré au .cjs ? - -**Réponse courte :** **Non**, le fichier `.wasm` n'est **pas intégré** dans le fichier `.cjs`. Ce sont deux fichiers **séparés** qui travaillent ensemble. - -## 📦 Les deux fichiers générés - -Quand vous compilez avec Emscripten, vous obtenez **2 fichiers distincts** : - -``` -convertedMicroServices.js (~119 KB) ← Wrapper JavaScript -convertedMicroServices.wasm (~39 KB) ← Code binaire WebAssembly -``` - -### 1. **convertedMicroServices.wasm** -- Contient votre **code C++ compilé** en format binaire WebAssembly -- C'est le "vrai" code de votre classe `TestService` et de la méthode `TestFunction()` -- Format binaire, non lisible par un humain -- Petit et très rapide à exécuter - -### 2. **convertedMicroServices.js** -- Fichier JavaScript (CommonJS) qui sert de **wrapper/loader** -- Son rôle : charger le fichier `.wasm` et créer une interface JavaScript -- Contient tout le "glue code" généré par Emscripten -- Gère la mémoire, les appels entre JS et WASM, etc. - -## 🔗 Comment ça fonctionne ensemble ? - -### Étape par étape quand vous exécutez le code : - -```javascript -const Module = require('./convertedMicroServices.js'); -``` - -**Ce qui se passe en coulisses :** - -#### Étape 1 : Chargement du fichier .cjs -``` -Node.js charge convertedMicroServices.js - ↓ -Le fichier .cjs s'exécute -``` - -#### Étape 2 : Recherche du fichier .wasm -Le fichier `.cjs` contient cette fonction : - -```javascript -function findWasmBinary() { - return locateFile('convertedMicroServices.wasm'); -} -``` - -Cette fonction cherche le fichier `.wasm` dans le **même répertoire** que le fichier `.cjs`. - -#### Étape 3 : Chargement du fichier .wasm -```javascript -// Dans le fichier .cjs (simplifié) -var wasmBinaryFile = findWasmBinary(); // → 'convertedMicroServices.wasm' - -// Lecture du fichier binaire -var wasmBinary = fs.readFileSync(wasmBinaryFile); - -// Instantiation du module WebAssembly -var wasmInstance = await WebAssembly.instantiate(wasmBinary); -``` - -#### Étape 4 : Création des bindings -Le fichier `.cjs` utilise **Embind** (bibliothèque Emscripten) pour créer des "ponts" entre JavaScript et WebAssembly : - -```javascript -// Code généré automatiquement par Emscripten -class_("TestService") - .constructor<>() - .function("TestFunction", &TestService::TestFunction); -``` - -Devient accessible en JavaScript comme : - -```javascript -const service = new Module.TestService(); // Appelle le constructeur C++ -const result = service.TestFunction(); // Appelle la méthode C++ -``` - -#### Étape 5 : Callback onRuntimeInitialized -```javascript -Module.onRuntimeInitialized = () => { - // À ce stade, le .wasm est chargé et prêt ! - console.log('Prêt à utiliser'); -}; -``` - -## 🎯 Schéma complet du flux - -``` -┌─────────────────────────────────────────────────────────┐ -│ Votre code JavaScript │ -│ const m = require('./convertedMicroServices.js'); │ -└─────────────────────┬───────────────────────────────────┘ - │ - ▼ -┌─────────────────────────────────────────────────────────┐ -│ convertedMicroServices.js (Wrapper JavaScript) │ -│ ┌───────────────────────────────────────────────┐ │ -│ │ 1. Détecte l'environnement (Node.js/Browser) │ │ -│ │ 2. Localise le fichier .wasm │ │ -│ │ 3. Charge le binaire .wasm │ │ -│ │ 4. Instancie WebAssembly │ │ -│ │ 5. Crée les bindings JS ↔ C++ │ │ -│ │ 6. Expose l'objet Module │ │ -│ └───────────────┬───────────────────────────────┘ │ -└──────────────────┼─────────────────────────────────────┘ - │ - ▼ fs.readFileSync() -┌─────────────────────────────────────────────────────────┐ -│ convertedMicroServices.wasm (Code binaire) │ -│ ┌───────────────────────────────────────────────┐ │ -│ │ Code machine WebAssembly │ │ -│ │ - TestService::TestService() (constructeur) │ │ -│ │ - TestService::TestFunction() (méthode) │ │ -│ │ - return "Bonjour" │ │ -│ └───────────────────────────────────────────────┘ │ -└─────────────────────────────────────────────────────────┘ - │ - ▼ -┌─────────────────────────────────────────────────────────┐ -│ Résultat retourné à JavaScript │ -│ "Bonjour" │ -└─────────────────────────────────────────────────────────┘ -``` - -## 📂 Structure des fichiers nécessaires - -**IMPORTANT** : Vous devez **toujours** avoir les **deux fichiers** dans le même répertoire : - -``` -convertedMicroServices/ -├── convertedMicroServices.js ← Obligatoire -├── convertedMicroServices.wasm ← Obligatoire (chargé par le .cjs) -└── test.js ← Votre code qui utilise le module -``` - -Si vous déplacez le fichier `.cjs` sans le `.wasm`, vous aurez une erreur : - -``` -Error: Cannot find module 'convertedMicroServices.wasm' -``` - -## 🔍 Vérification pratique - -Pour voir exactement ce qui se passe, créez un fichier `debug.js` : - -```javascript -const Module = require('./convertedMicroServices.js'); - -console.log('1. Fichier .cjs chargé'); -console.log('2. Module =', typeof Module); - -Module.onRuntimeInitialized = () => { - console.log('3. Fichier .wasm chargé et initialisé !'); - console.log('4. Module.TestService =', typeof Module.TestService); - - const service = new Module.TestService(); - console.log('5. Instance créée (constructeur C++ appelé)'); - - const result = service.TestFunction(); - console.log('6. Méthode C++ appelée, résultat:', result); - - service.delete(); - console.log('7. Mémoire libérée (destructeur C++ appelé)'); - - process.exit(0); -}; - -console.log('0. En attente du chargement du .wasm...'); -``` - -Exécutez : -```bash -nix --extra-experimental-features 'nix-command flakes' develop -c node debug.js -``` - -Résultat attendu : -``` -0. En attente du chargement du .wasm... -1. Fichier .cjs chargé -2. Module = object -3. Fichier .wasm chargé et initialisé ! -4. Module.TestService = function -5. Instance créée (constructeur C++ appelé) -6. Méthode C++ appelée, résultat: Bonjour -7. Mémoire libérée (destructeur C++ appelé) -``` - -## 🌐 Différence avec d'autres approches - -### Option A : WASM séparé (votre cas actuel) ✅ -``` -convertedMicroServices.js (119 KB - loader JavaScript) -convertedMicroServices.wasm (39 KB - code binaire) -Total: 158 KB, 2 fichiers -``` - -**Avantages :** -- Fichiers plus petits -- Le .wasm peut être mis en cache séparément -- Mieux pour le navigateur (streaming compilation) - -### Option B : WASM intégré (embedding) ❌ -Emscripten peut aussi générer un **seul fichier** avec le WASM encodé en Base64 dedans : - -```bash -emcc ... -s SINGLE_FILE=1 # Option non utilisée ici -``` - -Résultat : -``` -convertedMicroServices.js (~200 KB - contient tout) -Total: 200 KB, 1 fichier -``` - -**Inconvénients :** -- Fichier plus gros (encodage Base64 = +33%) -- Pas de cache séparé -- Chargement plus lent - -## 💡 Pourquoi cette architecture ? - -Cette séparation en 2 fichiers est **optimale** car : - -1. **Performance** : Le navigateur peut compiler le `.wasm` pendant qu'il télécharge (streaming) -2. **Cache** : Si vous modifiez le JavaScript mais pas le C++, seul le `.cjs` change -3. **Taille** : Format binaire `.wasm` plus compact que Base64 -4. **Standard** : Architecture recommandée par le W3C et Emscripten - -## 🎓 Récapitulatif - -| Fichier | Rôle | Contenu | Nécessaire ? | -|---------|------|---------|--------------| -| `.cjs` | Loader/Wrapper | Code JavaScript qui charge le WASM | ✅ Oui | -| `.wasm` | Code binaire | Votre code C++ compilé | ✅ Oui | -| `.cpp` | Source | Code source C++ | ❌ Non (déjà compilé) | - -**En résumé :** -- Le `.cjs` et le `.wasm` sont **deux fichiers séparés** -- Le `.cjs` **charge dynamiquement** le `.wasm` au runtime -- Les **deux fichiers sont nécessaires** pour que ça fonctionne -- Le `.cjs` est le "chef d'orchestre" qui gère tout - ---- - -**Note** : Si vous voulez voir le code binaire du `.wasm`, vous pouvez utiliser : -```bash -wasm-objdump -x convertedMicroServices.wasm # Affiche la structure -wasm2wat convertedMicroServices.wasm # Convertit en format texte -``` - -Mais c'est très bas niveau ! Le fichier `.cjs` fait tout le travail pour vous. 😊 - diff --git a/convertedMicroServices/src/PostStorageHandler/PostStorageHandler.cpp b/convertedMicroServices/src/PostStorageHandler/PostStorageHandler.cpp index dec65cd..d5e6709 100644 --- a/convertedMicroServices/src/PostStorageHandler/PostStorageHandler.cpp +++ b/convertedMicroServices/src/PostStorageHandler/PostStorageHandler.cpp @@ -162,12 +162,6 @@ std::string PostStorageHandler::GetAllPostsJsonFormat() { } -void PostStorageHandler::ShowPostsPresence() { - auto postsFromIndexedDb = get_posts_from_indexed_db(); - std::cout << "ShowPostsPresence called" << std::endl; -} - - void PostStorageHandler::EditPostText(int64_t post_id, std::string newText) { for (std::size_t i = 0; i < posts.size(); i++) { if (this->posts[i].post_id == post_id) { @@ -181,8 +175,6 @@ void PostStorageHandler::EditPostText(int64_t post_id, std::string newText) { void PostStorageHandler::DeletePost(int64_t post_id) { for (std::size_t i = 0; i < posts.size(); i++) { if (this->posts[i].post_id == post_id) { - std::cout << "delete_post_in_indexed_db" << " " - << this->posts[i].post_id << std::endl; delete_post_in_indexed_db(this->posts[i].post_id); this->posts.erase(this->posts.begin() + i); @@ -219,7 +211,6 @@ EMSCRIPTEN_BINDINGS(post_storage_Module) { .constructor<>() .function("StorePost", &PostStorageHandler::StorePost) .function("DeletePost", &PostStorageHandler::DeletePost) - .function("ShowPostsPresence", &PostStorageHandler::ShowPostsPresence) .function("GetAllPosts", &PostStorageHandler::GetAllPosts) .function("GetAllPostsJsonFormat", &PostStorageHandler::GetAllPostsJsonFormat) .function("EditPostText", &PostStorageHandler::EditPostText);