diff options
Diffstat (limited to 'src/routers/Image.ts')
| -rw-r--r-- | src/routers/Image.ts | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/src/routers/Image.ts b/src/routers/Image.ts deleted file mode 100644 index dfd6a16..0000000 --- a/src/routers/Image.ts +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright 2022 NotDankEnough (ilotterytea) -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import { PrismaClient, User, Image } from "@prisma/client"; -import express from "express"; -import mime from "mime"; -import multer from "../clients/Multer"; - -function ImageRouter(dirPath: string, cfg: {[key: string]: any}, prisma: PrismaClient): express.Router { - const router: express.Router = express.Router(); - - router.get("/", async (req, res) => { - const user: User | null = await prisma.user.findFirst({ - where: { - alias_id: (req.cookies.id) ? parseInt(req.cookies.id) : null, - key: (req.cookies.key) ? req.cookies.key : "" - } - }); - - return res.render("pages/home", { - user: user, - cid: cfg.Auth.ClientID, - uri: cfg.Auth.RedirectURI - }); - }); - - router.post("/upload", multer.single("file"), async (req, res) => { - const auth: string[] | undefined = (req.headers["authorization"]) ? new Buffer(req.headers["authorization"], "base64").toString("utf-8").split(':') : undefined; - - var user: User | null = await prisma.user.findFirst({ - where: { - alias_id: (auth) ? parseInt(auth[1]) : (req.cookies.id) ? parseInt(req.cookies["id"]) : null, - key: (auth) ? auth[2] : (req.cookies.key) ? req.cookies["key"] : "" - } - }); - - const image: Image = await prisma.image.create({ - data: { - storage_id: req.file!.filename!, - ext: mime.getExtension(req.file!.mimetype)!, - userId: (user) ? user.id : null - } - }); - - return res.send(`https://i.hmmtodayiwill.ru/${image.id}`).status(200); - }); - - - router.get("/:imageId", async (req, res) => { - const auth: string[] | undefined = (req.headers["authorization"]) ? new Buffer(req.headers["authorization"], "base64").toString("utf-8").split(':') : undefined; - - var user: User | null = await prisma.user.findFirst({ - where: { - alias_id: (auth) ? parseInt(auth[0]) : (req.cookies.id) ? parseInt(req.cookies["id"]) : null, - key: (auth) ? auth[1] : (req.cookies.key) ? req.cookies["key"] : "" - } - }); - - const image: Image | null = await prisma.image.findFirst({ - where: { - id: req.params.imageId - } - }); - - if (!image) { - return res.json({ - status: 404, - reason: "Image ID " + req.params.imageId + " not found in database!" - }).status(404); - } - - if (image.is_hidden) { - if (user) { - if (image.userId !== user.id) { - return res.json({ - status: 401, - reason: "Image ID " + req.params.imageId + " have a hide flag." - }).status(401); - } else { - return res.sendFile(`${__dirname}/static/images/${image.storage_id}`); - } - } else { - return res.json({ - status: 401, - reason: "Image ID " + req.params.imageId + " have a hide flag." - }).status(401); - } - } - - return res.sendFile(`${dirPath}/static/images/${image.storage_id}`); - }); - - return router; -} - -export default ImageRouter;
\ No newline at end of file |
