added unwrapped json for gallery-image/list and news/list, integerated news-list api into news api

This commit is contained in:
2024-11-05 01:01:07 +09:00
parent d4ec57aa0d
commit 1ab17242f7
7 changed files with 95 additions and 73 deletions

View File

@@ -15,6 +15,7 @@ newsAPI.get('/', async (request, response) => {
const target = Number(request.query.target);
if (isNaN(target)) {
console.error("Query is not number");
response.status(500).send("Query is not number");
return;
}
@@ -33,7 +34,7 @@ newsAPI.get('/', async (request, response) => {
newsAPI.post('/', async (request, response) => {
const database = new sqlite3.Database(databasePath);
const currentDate = new Date();
const currentUnixTime = currentDate.valueOf();
const entryType = request.body.entryType;
@@ -41,14 +42,15 @@ newsAPI.post('/', async (request, response) => {
const article = request.body.article;
const linkPath = entryType == 0 ? `/news/${request.body.linkPath}` : "";
const coverImagePath = request.body.coverImagePath;
const sqlQuery = `INSERT INTO news (date, entryType, cardContent, article, linkPath, coverImagePath) VALUES (${currentUnixTime}, ${entryType}, "${cardContent}", "${article}", "${linkPath}", "${coverImagePath}");`;
try {
await asyncDatabaseWrite(database, sqlQuery, () => {
console.log("News added successfully.");
});
} catch (err) {
console.error(err);
response.status(500).send(err);
}
database.close();
@@ -66,6 +68,7 @@ newsAPI.put('/', async (request, response) => {
const coverImagePath = request.body.coverImagePath;
if (isNaN(target)) {
console.error('Target is not number');
response.status(500).send('Target is not number');
return;
}
@@ -77,6 +80,7 @@ newsAPI.put('/', async (request, response) => {
console.log("News updated successfully.");
});
} catch (err) {
console.error(err);
response.status(500).send(err);
}
@@ -90,6 +94,7 @@ newsAPI.delete('/', async (request, response) => {
const target = Number(request.query.target);
if (isNaN(target)) {
console.error('No Entry Found!');
response.status(404).send('No Entry Found!');
return;
}
@@ -101,6 +106,7 @@ newsAPI.delete('/', async (request, response) => {
console.log("News deleted successfully.");
});
} catch (err) {
console.error(err);
response.status(500).send(err);
}
@@ -109,4 +115,50 @@ newsAPI.delete('/', async (request, response) => {
response.status(200).send();
});
export default newsAPI;
newsAPI.get('/list', async (request, response) => {
const database = new sqlite3.Database(databasePath);
const sqlQuery = `SELECT id, date, entryType, cardContent FROM news ORDER BY date DESC;`;
try {
const result = await asyncDatabaseRead(database, sqlQuery, (rows) => {
let ret = "";
for (const entry of rows) {
ret = ret + "<tr>\n";
for (const data in entry) {
if (data == "entryType") {
ret = ret + `\t<td>${entry[data] == 0 ? "Article" : "Tweet"}</td>\n`;
continue;
}
if (data == "date") {
ret = ret + `\t<td>${new Date(entry[data]).toLocaleString()}</td>\n`;
continue;
}
ret = ret + `\t<td>${entry[data]}</td>\n`;
}
ret = ret + `\t<td>\n\t\t<button class='delete-button' hx-delete='/api/news?target=${entry["date"]}'>Delete</button>\n\t\t<a href='/update-news.html?target=${entry["date"]}'><button class='edit-button' hx-confirm='unset'>Edit</button></a>\n\t</td>\n</tr>\n`;
}
return ret
});
database.close();
response.send(result);
} catch (err) {
console.error(err);
database.close();
}
});
newsAPI.get('/list-unwrapped', async (request, response) => {
const database = new sqlite3.Database(databasePath);
const sqlQuery = `SELECT id, date, entryType, cardContent FROM news ORDER BY date DESC;`;
try {
const result = await asyncDatabaseRead(database, sqlQuery, (rows) => { return rows; });
database.close();
response.send(result);
} catch (err) {
console.error(err);
database.close();
}
});
export default newsAPI;