This repository has been archived on 2025-10-20. You can view files and clone it, but cannot push or open issues or pull requests.
Files
esp-projekt/api/main.ts

51 lines
1.6 KiB
TypeScript

// Responsible: Esad Mustafoski
/// <reference lib="deno.ns" />
// main API file. Handles all the routing/api stuff
// Due to the Language servers, the import statements are
// shown as errors, @ts-ignore is used to ignore them.
// This is a Deno file, but the Vue LSP is still
// attempting to find errors, which causes
// confusing False error
// +++ IMPORTS ------------------------------------------------------ //
import { Application, Router } from "https://deno.land/x/oak/mod.ts";
import { oakCors } from "https://deno.land/x/cors/mod.ts";
import * as db_utils from "../database/utils.ts";
// +++ VARIABLES ---------------------------------------------------- //
const router = new Router();
const app = new Application();
// +++ ROUTER ------------------------------------------------------- //
// Creates the routes for the API server.
// Example: localhost:8000/api will show "testAPIPoint"
// in the HTML
router
.get("/", (ctx) => {
ctx.response.body = "ESP API Site";
})
.get("/api", (ctx) => {
ctx.response.body = "testAPIPoint";
})
.get("/api/users", (ctx) => {
const getUsers = db_utils.getAllUsersFromDB();
ctx.response.body = getUsers; //getAllUsers();
})
.get("/api/posts", async (ctx) => {
const getPosts = await db_utils.getPostsFromDB();
const countedPosts = await db_utils.countPosts();
ctx.response.body = { getPosts, countedPosts };
});
app.use(oakCors());
app.use(router.routes());
app.use(router.allowedMethods());
// @ts-ignore: start app
export { app };
await app.listen({ port: 8000 });