Implemented basic entities, routes, seed scripts
This commit is contained in:
41
src/controllers/issues.ts
Normal file
41
src/controllers/issues.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import express from 'express';
|
||||
|
||||
import { Issue } from 'entities';
|
||||
import { catchErrors } from 'errors';
|
||||
import { updateEntity, deleteEntity, createEntity, findEntityOrThrow } from 'utils/typeorm';
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
router.get(
|
||||
'/issues/:issueId',
|
||||
catchErrors(async (req, res) => {
|
||||
const issue = await findEntityOrThrow(Issue, req.params.issueId);
|
||||
res.respond({ issue });
|
||||
}),
|
||||
);
|
||||
|
||||
router.post(
|
||||
'/issues',
|
||||
catchErrors(async (req, res) => {
|
||||
const issue = await createEntity(Issue, req.body);
|
||||
res.respond({ issue });
|
||||
}),
|
||||
);
|
||||
|
||||
router.put(
|
||||
'/issues/:issueId',
|
||||
catchErrors(async (req, res) => {
|
||||
const issue = await updateEntity(Issue, req.params.issueId, req.body);
|
||||
res.respond({ issue });
|
||||
}),
|
||||
);
|
||||
|
||||
router.delete(
|
||||
'/issues/:issueId',
|
||||
catchErrors(async (req, res) => {
|
||||
const issue = await deleteEntity(Issue, req.params.issueId);
|
||||
res.respond({ issue });
|
||||
}),
|
||||
);
|
||||
|
||||
export default router;
|
||||
51
src/controllers/projects.ts
Normal file
51
src/controllers/projects.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import express from 'express';
|
||||
|
||||
import { Project } from 'entities';
|
||||
import { catchErrors } from 'errors';
|
||||
import { findEntityOrThrow, updateEntity, deleteEntity, createEntity } from 'utils/typeorm';
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
router.get(
|
||||
'/projects',
|
||||
catchErrors(async (_req, res) => {
|
||||
const projects = await Project.find();
|
||||
res.respond({ projects });
|
||||
}),
|
||||
);
|
||||
|
||||
router.get(
|
||||
'/projects/:projectId',
|
||||
catchErrors(async (req, res) => {
|
||||
const project = await findEntityOrThrow(Project, req.params.projectId, {
|
||||
relations: ['users', 'issues', 'issues.comments'],
|
||||
});
|
||||
res.respond({ project });
|
||||
}),
|
||||
);
|
||||
|
||||
router.post(
|
||||
'/projects',
|
||||
catchErrors(async (req, res) => {
|
||||
const project = await createEntity(Project, req.body);
|
||||
res.respond({ project });
|
||||
}),
|
||||
);
|
||||
|
||||
router.put(
|
||||
'/projects/:projectId',
|
||||
catchErrors(async (req, res) => {
|
||||
const project = await updateEntity(Project, req.params.projectId, req.body);
|
||||
res.respond({ project });
|
||||
}),
|
||||
);
|
||||
|
||||
router.delete(
|
||||
'/projects/:projectId',
|
||||
catchErrors(async (req, res) => {
|
||||
const project = await deleteEntity(Project, req.params.projectId);
|
||||
res.respond({ project });
|
||||
}),
|
||||
);
|
||||
|
||||
export default router;
|
||||
22
src/controllers/users.ts
Normal file
22
src/controllers/users.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import express from 'express';
|
||||
|
||||
import { User } from 'entities';
|
||||
import { catchErrors } from 'errors';
|
||||
import { createEntity } from 'utils/typeorm';
|
||||
import { signToken } from 'utils/authToken';
|
||||
import seedGuestUserEntities from 'database/seeds/guestUser';
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
router.post(
|
||||
'/users/guest',
|
||||
catchErrors(async (req, res) => {
|
||||
const user = await createEntity(User, req.body);
|
||||
await seedGuestUserEntities(user);
|
||||
res.respond({
|
||||
authToken: signToken({ sub: user.id }),
|
||||
});
|
||||
}),
|
||||
);
|
||||
|
||||
export default router;
|
||||
Reference in New Issue
Block a user