feat: functional /mods endpoint (getAllMods)
This commit is contained in:
parent
0ee5eedcfd
commit
eb4be67c89
6
.gitignore
vendored
6
.gitignore
vendored
|
@ -133,4 +133,8 @@ dist
|
|||
.yarn/unplugged
|
||||
.yarn/build-state.yml
|
||||
.yarn/install-state.gz
|
||||
.pnp.*
|
||||
.pnp.*
|
||||
|
||||
|
||||
# Temporary
|
||||
tests/
|
|
@ -35,6 +35,7 @@ console.debug("Port: ", port);
|
|||
|
||||
// Database connection
|
||||
db = getDatabase(config.database);
|
||||
db.connect();
|
||||
|
||||
// --- Routing ---
|
||||
|
||||
|
|
0
src/controllers/modpacks.js
Normal file
0
src/controllers/modpacks.js
Normal file
14
src/controllers/mods.js
Normal file
14
src/controllers/mods.js
Normal file
|
@ -0,0 +1,14 @@
|
|||
const mod_service = require("../services/modService")
|
||||
|
||||
async function getAllMods(req, res) {
|
||||
try {
|
||||
console.debug("Calling controller");
|
||||
const query_result = await mod_service.getAllMods();
|
||||
console.debug("Controller OK");
|
||||
return res.json(query_result);
|
||||
} catch (error) {
|
||||
return res.status(500).json({ error: error.message });
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {getAllMods};
|
|
@ -1,13 +1,15 @@
|
|||
// TODO promisify
|
||||
const sqlite = require("better-sqlite3");
|
||||
|
||||
class SQLiteDatabase {
|
||||
constructor(config) {
|
||||
const sqlite = require("better-sqlite3");
|
||||
this.config = config;
|
||||
this.db = null;
|
||||
}
|
||||
|
||||
async connect() {
|
||||
try {
|
||||
const db = new sqlite("./data/sqlite.db")
|
||||
this.db = new sqlite("./data/sqlite.db")
|
||||
// db.pragma("journal_mode = WAL")
|
||||
console.log("Connected to SQLite");
|
||||
} catch (err) {
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
// const db = require("...");
|
||||
|
||||
async function getAllMods() {
|
||||
async function getAllMods() {
|
||||
console.debug("Calling model");
|
||||
return db.query("SELECT * FROM mods");
|
||||
}
|
||||
|
||||
async function getModsByName(name) {
|
||||
return db.query("SELECT * FROM mods WHERE name = ?", [name]);
|
||||
async function getModByName(name) {
|
||||
return db.query("SELECT display_name FROM mods WHERE name = ?", [name]);
|
||||
}
|
||||
|
||||
// --- WIP ---
|
||||
|
@ -16,10 +17,17 @@ async function createMod(mod_data) {
|
|||
return db.query("INSERT INTO mods (name, description) VALUES (?, ?)", [name, description]);
|
||||
}
|
||||
|
||||
async function updateMod(mod_data) {
|
||||
console.log("WARNING: using a WIP function : updateMod (models/mods.js)")
|
||||
throw new Error("Not implemented");
|
||||
// const { name, description } = mod_data;
|
||||
// return db.query("INSERT INTO mods (name, description) VALUES (?, ?)", [name, description]);
|
||||
}
|
||||
|
||||
async function deleteMod(name) {
|
||||
console.log("WARNING: using a WIP function : deleteMod (models/mods.js)")
|
||||
return db.query("DELETE FROM mods WHERE name = ?", [name]);
|
||||
}
|
||||
|
||||
|
||||
module.exports = { getAllMods, getModsByName }
|
||||
module.exports = { getAllMods, getModByName }
|
0
src/models/modpack.js
Normal file
0
src/models/modpack.js
Normal file
|
@ -1,11 +1,20 @@
|
|||
const express = require("express");
|
||||
const controller = require("../controllers/mods");
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
// List mods
|
||||
router.get("/list", async (req,res) => {
|
||||
router.get("/", async (req,res) => {
|
||||
console.debug("Accessing mods list");
|
||||
res.send("No list yet");
|
||||
res.send(controller.getAllMods());
|
||||
// res.send("No list yet");
|
||||
});
|
||||
|
||||
router.get("/:name", async (req,res) => {
|
||||
const name = req.params.name;
|
||||
console.debug("Accessing mod " + name)
|
||||
res.send("Not implemented");
|
||||
// res.send(name + " is not there yet");
|
||||
})
|
||||
|
||||
module.exports = router;
|
|
@ -0,0 +1,8 @@
|
|||
const model = require("../models/mod");
|
||||
|
||||
async function getAllMods() {
|
||||
console.debug("Calling service");
|
||||
return model.getAllMods();
|
||||
}
|
||||
|
||||
module.exports = { getAllMods };
|
Loading…
Reference in a new issue