express-nodejs-app/src/controller/person.controller.ts
Sambo Chea dd445a22c0
All checks were successful
continuous-integration/drone/push Build is passing
Task: Fixed and updated for export all functions for decorators
2021-09-15 20:17:30 +07:00

63 lines
1.4 KiB
TypeScript

import { Request, Response } from "express"
import { Controller, Delete, Get, Post } from "../decorators"
const persons: Array<any> = [
{
id: 1,
name: "Sambo",
},
]
@Controller("/person")
export default class PersonController {
@Get()
public getPersons(req: Request, res: Response) {
res.json(persons)
}
@Post()
public createPerson(req: Request, res: Response) {
const person = req.body
if (person == null) {
return res.status(400).json({
status: 400,
message: "Person is required",
})
}
persons.push(person)
res.json({
message: "Person created successfully",
body: person,
})
}
@Delete("/:id")
public deletePerson(req: Request, res: Response) {
const id = req.params.id
if (id == null) {
return res.status(400).json({
status: 400,
message: "Id is required",
})
}
const person = persons.find((person) => person.id === Number(id))
if (person == null) {
return res.status(404).json({
status: 404,
message: "Person not found",
})
}
persons.splice(persons.indexOf(person), 1)
res.json({
message: "Person deleted successfully",
body: person,
})
}
}