micael-diniz / kenzie-courses

q4-sprint2-kenzie-courses-OdevMick created by GitHub Classroom

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

KenzieCourses

Api com features de cadastro de Usuários e Cursos, com a possibilidade de se cadastrar aos cursos disponíveis.

Rotas Users


Cadastro de usuários

POST /users

{
  "firstName": "Teste",
  "lastName": "Teste",
  "email": "teste@mail.com",
  "age": 25,
  "password": "1234"
}

Resposta para requisição que deu certo:

POST /users - STATUS 201

{
  "id": "29788820-4fa9-4d61-bb5c-5b8b5ac9f606",
  "firstName": "Teste",
  "lastName": "Teste",
  "email": "teste@mail.com",
  "isAdm": false,
  "createdAt": "2022-07-2T10:25:36.551Z",
  "updatedAt": "2022-05-2T10:25:36.551Z",
  "courses": []
}



Login de usuários

POST /login

{
  "email": "teste@mail.com",
  "password": "1234"
}

Resposta para requisição que deu certo:

POST /login - STATUS 200

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImU0NWFiMTBkLTJmZjUtNDRmYy1hMzM0LWQ3ZGZkMzk4OTJiYiIsImlhdCI6MTY1Mzc2MDMzNywiZXhwIjoxNjUzNzYzOTM3fQ.ECH1rK8WvGkzY2ghEP5TJW4ZD8cOjeGfyvgSwn9ZAfs"
}



Atualização de usuários

PATCH /users/:id

É necessário ter Bearer Token

{
  "firstName": "Teste",
  "lastName": "Teste1",
  "email": "teste@mail.com",
  "age": 25,
  "password": "1234"
}

Resposta para requisição que deu certo:

PATCH /users/:id - STATUS 200

{
  "id": "e45ab10d-2ff5-44fc-a334-d7dfd39892bb",
  "firstName": "Teste",
  "lastName": "Teste1",
  "email": "teste@mail.com",
  "isAdm": false,
  "createdAt": "2022-07-2T10:25:36.551Z",
  "updatedAt": "2022-07-2T10:30:21.742Z",
  "courses": []
}



Busca de um usuário

GET /users/:id - NO BODY

É necessário ter Bearer Token

Resposta para requisição que deu certo:

GET /users/:id - STATUS 200

{
  "id": "e45ab10d-2ff5-44fc-a334-d7dfd39892bb",
  "firstName": "Teste",
  "lastName": "Teste1",
  "email": "teste@mail.com",
  "isAdm": false,
  "createdAt": "2022-07-2T10:25:36.551Z",
  "updatedAt": "2022-07-2T10:30:21.742Z",
  "courses": []
}



Busca de todos os usuários

GET /users - NO BODY

É necessário ter Bearer Token

Resposta para requisição que deu certo:

GET /users - STATUS 200

[
  {
    "id": "e45ab10d-2ff5-44fc-a334-d7dfd39892bb",
    "firstName": "Teste",
    "lastName": "Teste1",
    "email": "teste@mail.com",
    "isAdm": false,
    "createdAt": "2022-07-2T10:25:36.551Z",
    "updatedAt": "2022-07-2T10:30:21.742Z",
  },
  {
    "id": "af6d45ff-55f7-4ebe-87fc-15a9a97293e8",
    "firstName": "Teste2",
    "lastName": "Teste2",
    "email": "teste2@mail.com",
    "isAdm": true,
    "createdAt": "2022-07-2T10:30:41.124Z",
    "updatedAt": "2022-07-2T10:30:41.124Z"
  },...
]



Rotas Courses


Cadastro de cursos

POST /courses

É necessário ter Bearer Token

{
  "courseName": "Física",
  "duration": "200h"
}

Resposta para requisição que deu certo:

POST /courses - STATUS 201

{
  "id": "f5b22474-a500-4a54-a04f-c25edf8e852c",
  "courseName": "Física",
  "duration": "200h"
}

Busca de todos os cursos

GET /courses - NO BODY

É necessário ter Bearer Token

Resposta para requisição que deu certo (usuário não ADMIN):

GET /courses - STATUS 200

[
  {
    "id": "f5b22474-a500-4a54-a04f-c25edf8e852c",
    "courseName": "Física",
    "duration": "200h"
  },
  {
    "id": "b36d5f01-a191-4796-b1c0-4713cc5e52be",
    "courseName": "Python-I",
    "duration": "3 meses"
  },...
]

Resposta para requisição que deu certo (usuário ADMIN):

GET /courses - STATUS 200

[
  {
    "id": "f5b22474-a500-4a54-a04f-c25edf8e852c",
    "courseName": "Física",
    "duration": "200h",
    "student": []
  },
  {
    "id": "b36d5f01-a191-4796-b1c0-4713cc5e52be",
    "courseName": "Python-I",
    "duration": "3 meses",
    "student": [
      {
        "id": "e45ab10d-2ff5-44fc-a334-d7dfd39892bb",
        "firstName": "Teste",
        "lastName": "Teste1",
        "email": "teste@mail.com"    
      }
    ]
  },...
]

Atualiza o curso

PATCH /courses/:id

{
  "duration": "2 meses"
}

É necessário ter Bearer Token

Resposta para requisição que deu certo

PATCH /courses/:id - STATUS 200

[
  {
    "id": "f5b22474-a500-4a54-a04f-c25edf8e852c",
    "courseName": "Física",
    "duration": "2 meses"
  }
]

About

q4-sprint2-kenzie-courses-OdevMick created by GitHub Classroom


Languages

Language:TypeScript 98.0%Language:Handlebars 1.2%Language:Shell 0.5%Language:Dockerfile 0.3%