started working on routing
This commit is contained in:
parent
1327813462
commit
b2989becd3
4
.gitignore
vendored
4
.gitignore
vendored
@ -88,7 +88,3 @@ sw.*
|
||||
|
||||
# Vim swap files
|
||||
*.swp
|
||||
|
||||
# db file
|
||||
db.json
|
||||
pass
|
66
api/index.js
66
api/index.js
@ -1,22 +1,36 @@
|
||||
const express = require("express");
|
||||
const express = require("express")
|
||||
const {gimmeToken} = require("./util.js")
|
||||
const { MongoClient } = require("mongodb");
|
||||
const { MongoClient } = require("mongodb")
|
||||
require("dotenv").config()
|
||||
|
||||
const app = express();
|
||||
app.use(express.json());
|
||||
app.use(express.urlencoded({ extended: false }));
|
||||
|
||||
const client = new MongoClient(process.env.DATABASE);
|
||||
const PASS = process.env.PASS
|
||||
let TOKEN = gimmeToken();
|
||||
|
||||
// routes
|
||||
/*
|
||||
* error: 0 -> no error
|
||||
* error: 1 -> parameter error
|
||||
* error: 2 -> auth error
|
||||
* error: 3 -> not found error
|
||||
*/
|
||||
const resources = require("./routes/resources.js")
|
||||
const projects = require("./routes/projects.js")
|
||||
const blog = require("./routes/blog.js")
|
||||
const auth = require("./routes/auth.js")
|
||||
|
||||
const app = express()
|
||||
app.use(express.json())
|
||||
app.use(express.urlencoded({ extended: false }));
|
||||
app.use("/resources", resources)
|
||||
app.use("/projects", projects)
|
||||
app.use("/blog", blog)
|
||||
app.use("/auth", auth)
|
||||
|
||||
const db = new MongoClient(process.env.DATABASE);
|
||||
const PASS = process.env.PASS
|
||||
let TOKEN = gimmeToken();
|
||||
|
||||
app.use((req, res, next) => {
|
||||
req.db = db;
|
||||
next();
|
||||
})
|
||||
|
||||
// PATH: /api/login
|
||||
// METHOD: GET
|
||||
@ -26,7 +40,7 @@ app.get("/login", (req,res)=>{
|
||||
|
||||
if (pass === undefined)
|
||||
return res.json({error: 1})
|
||||
|
||||
|
||||
if (pass !== PASS)
|
||||
return res.json({error: 2})
|
||||
|
||||
@ -41,7 +55,7 @@ app.get("/logout", (req,res)=>{
|
||||
|
||||
if (token === undefined)
|
||||
return res.json({error: 1})
|
||||
|
||||
|
||||
if (token !== TOKEN)
|
||||
return res.json({error: 2})
|
||||
|
||||
@ -65,10 +79,10 @@ app.get("/add_project", async (req, res) => {
|
||||
url === undefined
|
||||
)
|
||||
return res.json({error: 1})
|
||||
|
||||
|
||||
if (token !== TOKEN)
|
||||
return res.json({error: 2})
|
||||
|
||||
|
||||
await client.connect()
|
||||
const db = await client.db("ngn13")
|
||||
const col = await db.collection("projects")
|
||||
@ -93,10 +107,10 @@ app.get("/add_resource", async (req, res) => {
|
||||
url === undefined
|
||||
)
|
||||
return res.json({error: 1})
|
||||
|
||||
|
||||
if (token !== TOKEN)
|
||||
return res.json({error: 2})
|
||||
|
||||
|
||||
await client.connect()
|
||||
const db = await client.db("ngn13")
|
||||
const col = await db.collection("resources")
|
||||
@ -129,6 +143,18 @@ app.get("/get_resources", async (req, res) => {
|
||||
res.json({error: 0, resources:array})
|
||||
});
|
||||
|
||||
// PATH: /api/get_resources
|
||||
// METHOD: GET
|
||||
// PARAMETERS: NONE
|
||||
app.get("/get_resources", async (req, res) => {
|
||||
await client.connect()
|
||||
const db = await client.db("ngn13")
|
||||
const col = await db.collection("resources")
|
||||
const array = await col.find().toArray()
|
||||
await client.close()
|
||||
res.json({error: 0, resources:array})
|
||||
});
|
||||
|
||||
// PATH: /api/add_post
|
||||
// METHOD: POST
|
||||
// PARAMETERS: token, title, author, content
|
||||
@ -145,16 +171,16 @@ app.post("/add_post", async (req, res) => {
|
||||
content === undefined
|
||||
)
|
||||
return res.json({error: 1})
|
||||
|
||||
|
||||
if (token !== TOKEN)
|
||||
return res.json({error: 2})
|
||||
|
||||
|
||||
await client.connect()
|
||||
const db = await client.db("ngn13")
|
||||
const col = await db.collection("posts")
|
||||
await col.insertOne({
|
||||
"title":title,
|
||||
"author":author,
|
||||
"title":title,
|
||||
"author":author,
|
||||
"date": new Date().toLocaleDateString(),
|
||||
"content":content
|
||||
})
|
||||
|
12
api/routes/resources.js
Normal file
12
api/routes/resources.js
Normal file
@ -0,0 +1,12 @@
|
||||
const express = require("express")
|
||||
const resources = express.Router()
|
||||
|
||||
resources.get("/get", async (req,res)=>{
|
||||
await req.db.connect()
|
||||
const col = await req.db.collection("ngn13")
|
||||
const results = col.find().limit(10).toArray()
|
||||
await req.db.close()
|
||||
res.json({ error: 0, resources: results })
|
||||
})
|
||||
|
||||
module.exports = resources
|
@ -30,8 +30,8 @@ main {
|
||||
padding: 40px;
|
||||
cursor: pointer;
|
||||
transition: .4s;
|
||||
height: 13%;
|
||||
width: 27%;
|
||||
height: 100px;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
main:hover{
|
||||
@ -56,7 +56,7 @@ h2{
|
||||
|
||||
@media only screen and (max-width: 1121px) {
|
||||
main{
|
||||
width: auto;
|
||||
width: 80%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
@ -15,6 +15,7 @@ div{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
padding: 15px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 30px;
|
||||
}
|
||||
@ -24,4 +25,4 @@ div{
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "my-website",
|
||||
"version": "2.2.0",
|
||||
"version": "2.3.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "nuxt",
|
||||
|
@ -24,20 +24,22 @@
|
||||
<Card>
|
||||
<h1>👉 Contact me</h1>
|
||||
<h2>You can contact me on the following platforms:</h2>
|
||||
|
||||
|
||||
<a href="https://discord.com/users/568131907368386565"><i class='bx bxl-discord-alt'></i> Discord</a>
|
||||
<br>
|
||||
<a href="https://github.com/ngn13"><i class='bx bxl-github'></i> Github</a>
|
||||
<br>
|
||||
<a href="https://mastodon.social/@ngn"><i class='bx bxl-mastodon'></i> Mastodon</a>
|
||||
<br>
|
||||
<a href="mailto:ngn13proton@proton.me"><i class='bx bxs-envelope'></i> Mail</a>
|
||||
<br>
|
||||
<h2>or private message me on </h2>
|
||||
<h2>or private message me on matrix:</h2>
|
||||
<a><i>[matrix]</i> @ngn:matrix.ngn13.fun</a>
|
||||
</Card>
|
||||
</div>
|
||||
<Logout v-if="logged"/>
|
||||
<div class="version">
|
||||
<p>v2.2</p>
|
||||
<p>v2.3</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
Loading…
x
Reference in New Issue
Block a user