some new endpoints and static serving for media
This commit is contained in:
@@ -5,6 +5,7 @@ import jwt from 'jsonwebtoken';
|
||||
import { AppDataSource } from '../data-source';
|
||||
import { User } from "../entity/User";
|
||||
import { Post } from "../entity/Post";
|
||||
import { MoreThan } from "typeorm";
|
||||
|
||||
class UserController {
|
||||
async register(req: Request, res: Response): Promise<void> {
|
||||
@@ -35,11 +36,38 @@ class UserController {
|
||||
async getPosts(req: Request, res: Response): Promise<void> {
|
||||
const { userId } = req.params;
|
||||
|
||||
const posts = await AppDataSource.manager.findBy(Post, {authorId: Number.parseInt(userId)});
|
||||
console.log(posts);
|
||||
|
||||
const posts = await AppDataSource.manager.findBy(Post, { authorId: Number.parseInt(userId) });
|
||||
|
||||
res.status(200).send(posts);
|
||||
}
|
||||
|
||||
async getAll(req: Request, res: Response): Promise<void> {
|
||||
const users = await AppDataSource.manager.find(User,
|
||||
{
|
||||
where:
|
||||
{ id: MoreThan(0) },
|
||||
select:
|
||||
{ id: true, username: true, password_hash: false }
|
||||
}
|
||||
);
|
||||
|
||||
res.status(200).send(users);
|
||||
}
|
||||
|
||||
async getById(req: Request, res: Response): Promise<void> {
|
||||
const userId = Number.parseInt(req.params.userId);
|
||||
|
||||
const user = await AppDataSource.manager.findOne(User,
|
||||
{
|
||||
where:
|
||||
{ id: userId },
|
||||
select:
|
||||
{ id: false, username: true, password_hash: false }
|
||||
}
|
||||
);
|
||||
|
||||
res.status(200).send(user);
|
||||
}
|
||||
}
|
||||
|
||||
export default new UserController();
|
||||
@@ -5,6 +5,7 @@ import fs from 'fs';
|
||||
import cookieParser from 'cookie-parser';
|
||||
import PostRouter from "./routers/post";
|
||||
import session from "express-session";
|
||||
import path from "path";
|
||||
|
||||
const app = express();
|
||||
|
||||
@@ -16,6 +17,7 @@ app.use(session({
|
||||
resave: false,
|
||||
saveUninitialized: false,
|
||||
}));
|
||||
app.use('/files', express.static(path.join(process.env.UPLOAD_DESTINATION)));
|
||||
|
||||
if (!fs.existsSync(process.env.UPLOAD_DESTINATION)) fs.mkdirSync(process.env.UPLOAD_DESTINATION);
|
||||
|
||||
|
||||
@@ -6,12 +6,20 @@ import { Post } from "../entity/Post";
|
||||
const userShouldExist = async (req: Request, res: Response, next: NextFunction): Promise<void> => {
|
||||
const { username } = req.body;
|
||||
const { userId } = req.params;
|
||||
|
||||
if (!(await AppDataSource.manager.findOneBy(User, {
|
||||
username
|
||||
})) || !(await AppDataSource.manager.findOneBy(User, {
|
||||
id: Number.parseInt(userId)
|
||||
}))) {
|
||||
let user;
|
||||
if (username) {
|
||||
user = await AppDataSource.manager.findOneBy(User, {
|
||||
username
|
||||
});
|
||||
} else if (Number.parseInt(userId)) {
|
||||
user = await AppDataSource.manager.findOneBy(User, {
|
||||
id: Number.parseInt(userId)
|
||||
});
|
||||
} else {
|
||||
res.status(404).send("User does not exist.");
|
||||
return;
|
||||
}
|
||||
if (!user) {
|
||||
res.status(404).send("User does not exist.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -8,5 +8,7 @@ const UserRouter = Router();
|
||||
UserRouter.post('/register', existance.userShouldNotExist, UserController.register);
|
||||
UserRouter.post('/login', existance.userShouldExist, UserController.login);
|
||||
UserRouter.get('/posts/:userId', existance.userShouldExist, UserController.getPosts);
|
||||
UserRouter.get('/all', UserController.getAll);
|
||||
UserRouter.get('/by-id/:userId', existance.userShouldExist, UserController.getById);
|
||||
|
||||
export default UserRouter;
|
||||
Reference in New Issue
Block a user