Implemented issue comments

This commit is contained in:
ireic
2019-12-18 20:44:05 +01:00
parent 386694d28f
commit 32170e90d2
34 changed files with 902 additions and 439 deletions

View File

@@ -0,0 +1,33 @@
import express from 'express';
import { Comment } from 'entities';
import { catchErrors } from 'errors';
import { updateEntity, deleteEntity, createEntity } from 'utils/typeorm';
const router = express.Router();
router.post(
'/comments',
catchErrors(async (req, res) => {
const comment = await createEntity(Comment, req.body);
res.respond({ comment });
}),
);
router.put(
'/comments/:commentId',
catchErrors(async (req, res) => {
const comment = await updateEntity(Comment, req.params.commentId, req.body);
res.respond({ comment });
}),
);
router.delete(
'/comments/:commentId',
catchErrors(async (req, res) => {
const comment = await deleteEntity(Comment, req.params.commentId);
res.respond({ comment });
}),
);
export default router;

View File

@@ -10,7 +10,7 @@ router.get(
'/issues/:issueId',
catchErrors(async (req, res) => {
const issue = await findEntityOrThrow(Issue, req.params.issueId, {
relations: ['users', 'comments'],
relations: ['users', 'comments', 'comments.user'],
});
res.respond({ issue });
}),

View File

@@ -6,7 +6,6 @@ import {
CreateDateColumn,
UpdateDateColumn,
ManyToOne,
RelationId,
} from 'typeorm';
import is from 'utils/validation';
@@ -36,7 +35,7 @@ class Comment extends BaseEntity {
)
user: User;
@RelationId((comment: Comment) => comment.user)
@Column('integer')
userId: number;
@ManyToOne(
@@ -45,6 +44,9 @@ class Comment extends BaseEntity {
{ onDelete: 'CASCADE' },
)
issue: Issue;
@Column('integer')
issueId: number;
}
export default Comment;

View File

@@ -7,8 +7,9 @@ import cors from 'cors';
import createDatabaseConnection from 'database/connection';
import { authenticateUser } from 'middleware/authentication';
import authenticationRoutes from 'controllers/authentication';
import projectsRoutes from 'controllers/projects';
import commentsRoutes from 'controllers/comments';
import issuesRoutes from 'controllers/issues';
import projectsRoutes from 'controllers/projects';
import usersRoutes from 'controllers/users';
import { RouteNotFoundError } from 'errors';
import { errorHandler } from 'errors/errorHandler';
@@ -40,8 +41,9 @@ const initializeExpress = (): void => {
app.use('/', authenticateUser);
app.use('/', projectsRoutes);
app.use('/', commentsRoutes);
app.use('/', issuesRoutes);
app.use('/', projectsRoutes);
app.use('/', usersRoutes);
app.use((req, _res, next) => next(new RouteNotFoundError(req.originalUrl)));