code ./packages/api/src/controllers/people.ts
import { NextFunction } from 'express';
import { AppResponse, Person } from '@neo4j-crud/shared';
import * as graph from '@neo4j-crud/graph';
export const peopleController = {
getAll: async (req, res: AppResponse<Person[]>, next: NextFunction) => {
try {
const search = req.query.search as string;
const people = await graph.people(req.neo4jSession).getAll(search);
res.send(people);
} catch (err) {
next(err);
}
},
getById: async (req, res: AppResponse<Person>, next: NextFunction) => {
const id = parseInt(req.params.id);
try {
const person = await graph.people(req.neo4jSession).getById(id);
if (!person) {
res.status(404).send({ error: 'Not Found' });
}
res.send(person);
} catch (err) {
next(err);
}
},
create: async (req, res: AppResponse<Person>, next: NextFunction) => {
try {
const person = await graph.people(req.neo4jSession).create(req.body);
res.send(person);
} catch (err) {
next(err);
}
},
update: async (req, res: AppResponse<Person>, next: NextFunction) => {
const id = parseInt(req.params.id);
try {
const person = await graph.people(req.neo4jSession).update(id, req.body);
res.send(person);
} catch (err) {
next(err);
}
},
remove: async (req, res: AppResponse<Person>, next: NextFunction) => {
const id = parseInt(req.params.id);
try {
const person = await graph.people(req.neo4jSession).remove(id);
res.send(person);
} catch (err) {
next(err);
}
},
};
code ./packages/api/src/controllers/index.ts
...
export * from './people';
code ./packages/api/src/routes/people.ts
import { Router } from 'express';
import { peopleController } from '../controllers';
const router = Router();
router.get('/', peopleController.getAll);
router.get('/:id', peopleController.getById);
router.post('/', peopleController.create);
router.put('/:id', peopleController.update);
router.delete('/:id', peopleController.remove);
export default router;
code ./packages/api/src/routes/index.ts
...
import peopleRouter from './people';
...
routers.use('/people', peopleRouter);
export default routers;
open http://localhost:3333/people
[
{
"movies": [
...
],
"born": 1967,
"name": "Aaron Sorkin",
"id": 212
},
...
]
git add .
git commit -m "People API"