diff --git a/src/database.ts b/src/database.ts index c51b037..ad72342 100644 --- a/src/database.ts +++ b/src/database.ts @@ -1,4 +1,4 @@ -import { COURSE_STACK, TCourse } from "./types" +import { COURSE_STACK, TCourse, TEstudent } from "./types" export const courses: TCourse[] = [ { @@ -19,4 +19,16 @@ export const courses: TCourse[] = [ lessons: 5, stack: COURSE_STACK.BACK } -] \ No newline at end of file +] + +export const estudents: TEstudent[] = [ + { + id: "est001", + name: "Luiz Paulo", + age: 36 + }, + { + id: "est002", + name: "Thalita", + age: 29 + }] \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 3e9ff30..5231ab3 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,6 +1,9 @@ import express, { Request, Response } from 'express' import cors from 'cors' +import{courses, estudents} from './database' +import { COURSE_STACK, TCourse, TEstudent } from './types' + const app = express() app.use(express.json()) @@ -13,3 +16,81 @@ app.listen(3003, () => { app.get('/ping', (req: Request, res: Response) => { res.send('Pong!') }) + +app.get('/courses', (req: Request, res: Response)=>{ + res.status(200).send(courses) +}) + +app.get('/courses/search', (req:Request,res:Response)=>{ + const q = req.query.q as string + + const result = courses.filter((course)=>{ + return course.name.toLowerCase().includes(q.toLowerCase()) + }) + + res.status(200).send(result) +}) + +// Criação de curso - Terceiro endpoint +app.post('/courses', (req:Request, res: Response)=>{ + + // const iq = req.body.id as string + // const name = req.body.name as string + // const lessons = req.body.lessons as number + // const stack = req.body.stack as COURSE_STACK + + const {id,name,lessons,stack} = req.body as TCourse + + + + const newCourse = { + id: id, + name: name, + lessons: lessons, + stack: stack + } + + courses.push(newCourse) + + res.status(201).send('Curso registrado com sucesso') + +}) + +// Estudantes + +app.get('/estudents', (req: Request, res: Response)=>{ + res.status(200).send(estudents) +}) + +app.get('/estudents/search', (req:Request,res:Response)=>{ + const q = req.query.q as string + + const result = estudents.filter((estudent)=>{ + return estudent.name.toLowerCase().includes(q.toLowerCase()) + }) + + res.status(200).send(result) +}) + +app.post('/estudents', (req:Request, res: Response)=>{ + + // const iq = req.body.id as string + // const name = req.body.name as string + // const lessons = req.body.lessons as number + // const stack = req.body.stack as COURSE_STACK + + const {id,name,age} = req.body as TEstudent + + + + const newEstudent = { + id: id, + name: name, + age: age + } + + estudents.push(newEstudent) + + res.status(201).send('Estudante registrado com sucesso') + +}) diff --git a/src/types.ts b/src/types.ts index 1957a4b..1d629b2 100644 --- a/src/types.ts +++ b/src/types.ts @@ -3,9 +3,18 @@ export enum COURSE_STACK { BACK = "Back-end" } + + export type TCourse = { id: string, name: string, lessons: number, stack: COURSE_STACK } + +export type TEstudent = { + id: string, + name: string, + age: number, + +} \ No newline at end of file