Skip to content

botludum/Ludum-Materiais

Repository files navigation


pipeline statuscoverage report

Clique aqui para conversar comigo no Telegram!
Se não conseguir me encontre pelo meu username é @OLudumBot
Ah! Eu também possuo uma versão de homologação é @ludumdev_bot

Ludum - O assistente virtual sobre o PyGame

Sobre o repositório

Encarregado de armazenar o Microsserviço de Materiais do Ludum. Este microsserviço se comunica com o Ludum e o Webclient e trata de todos os aspectos relacionados aos materiais do Ludum.

Sobre o projeto

O Ludum é um chatbot que propõe-se a auxiliar em diversos aspectos as pessoas que desejam desenvolver jogos utilizando a biblioteca PyGame.

Como desenvolver

Neste microsserviço foi utilizado NodeJS com express e MongoDB (Mongoose). Tudo que é necessário para o desenvolvimento está dentro do docker, então, para desenvolver, deve-se seguir os seguintes passos:

  1. Modifique a linha 24 do arquivo index.js localizado na pasta raíz do projeto de:
mongoose.connect(process.env.MONGODB_URI);

para:

mongoose.connect('mongodb://localhost/ludum-duvida');
  1. Após, abra um terminal na pasta raíz do projeto e execute o comando:
docker build -t guilhermesiqueira/ludum-materiais .
  1. Em seguida:
docker-compose up

Pronto, o seu ambiente de desenvolvimento está pronto!

Quero saber mais!

Para mais informações e maiores esclarecimentos, visite o nosso repositório principal, clicando aqui

Documentação da API

Base URL

A URL para qualquer requisição possui a url base api: https://ludum-materiais.herokuapp.com/api/{resource}

Endpoints

Os endpoints são:

/links

São os endpoints relacionados aos links pesquisados.

GET /links

Retorna todas os links pesquisados.

  • Exemplo de JSON retornado:
{
    "status":"success",
    "message":"Links recuperados com sucesso!",
    "data": [
        {
            "_id":"5cec9b7a52788600243b3738",
            "title":"Página oficial da Pygame",
            "type":"Site",
            "link":"https://www.pygame.org/news",
            "status":null,
            "create_date":"2019-05-28T02:22:50.483Z",
            "__v":0
        }, 
        {
            "_id":"5ced56a12fae920024d95831",
            "title":"Criando um Snake do zero com Pygame em 5 minutos (ou mais)",
            "type":"Vídeo",
            "link":"https://www.youtube.com/watch?v=H4TXHI9BRCQ",
            "status":null,
            "create_date":"2019-05-28T15:41:21.916Z",
            "__v":0
        }
    ]
}
  • Retorno: HTTP Status 200 e json retornado e armazenado no banco.

GET /links/:{id}

Retorna apenas um link.

Parametro Tipo Descricao Obrigatorio?
id string id do link sim
  • Exemplo de JSON retornado:
{
    "message":"Carregando detalhes da dúvida",
    "data": {
        "_id":"5cec9b7a52788600243b3738",
        "title":"Página oficial da Pygame",
        "type":"Site",
        "link":"https://www.pygame.org/news",
        "status":null,
        "create_date":"2019-05-28T02:22:50.483Z","__v":0
    }
}
  • Retorno: HTTP Status 200 e json retornado e armazenado no banco.

GET /links/aprovados/:{status}

Retorna todos os links aprovados ou não.

Parametro Tipo Descricao Obrigatorio?
status string('S' ou 'N') 'S' para links aprovados e 'N' para links recusados sim
  • Exemplo de JSON retornado:
{
    "status":"success",
    "message":"Links pendentes recuperados com sucesso!",
    "data": [
        {
            "_id":"5d0bc36f0e6e1d0024d4767d",
            "title":"Página oficial da Pygame",
            "type":"Site",
            "link":"https://www.pygame.org/news",
            "status":"S",
            "create_date":"2019-06-23T04:13:21.513Z"
        },
        {
            "_id":"5d0bc36f0e6e1d0024d4767e",
            "title":"Criando um Snake do zero com Pygame em 5 minutos (ou mais)",
            "type":"Vídeo",
            "link":"https://www.youtube.com/watch?v=H4TXHI9BRCQ",
            "status":"S",
            "create_date":"2019-06-23T04:13:21.513Z"
        }
    ]
}
  • Retorno: HTTP Status 200 e json retornado e armazenado no banco.

GET /links/pendentes

Retorna todos os links pendentes de aprovação.

  • Exemplo de JSON retornado:
{
    "status":"success",
    "message":"Links pendentes recuperados com sucesso!",
    "data": [
        {
            "_id":"5d0bc36f0e6e1d0024d4767d",
            "title":"Página oficial da Pygame",
            "type":"Site",
            "link":"https://www.pygame.org/news",
            "status":null,
            "create_date":"2019-06-23T04:13:21.513Z"
        },
        {
            "_id":"5d0bc36f0e6e1d0024d4767e",
            "title":"Criando um Snake do zero com Pygame em 5 minutos (ou mais)",
            "type":"Vídeo",
            "link":"https://www.youtube.com/watch?v=H4TXHI9BRCQ",
            "status":null,
            "create_date":"2019-06-23T04:13:21.513Z"
        }
    ]
}
  • Retorno: HTTP Status 200 e json retornado e armazenado no banco.

POST /links/cadastrar

Cadastra um novo link

Body Tipo Descricao Obrigatorio?
title string Título do link sim
type string Tipo do link sim
link string Link sim
  • Exemplo de JSON retornado:
{
    "message": "Material adicionado!",
    "data": {
        "_id": "5d0f03691110220024601688",
        "title": "Criando um Snake do zero com Pygame em 5 minutos (ou mais)",
        "type": "Vídeo",
        "link": "https://www.youtube.com/watch?v=H4TXHI9BRCZ",
        "status": null,
        "create_date": "2019-06-23T04:43:21.504Z",
        "__v": 0
    }
}
  • Retorno: HTTP Status 200 e json retornado e armazenado no banco.

PUT /links/:{id}/:{aprovacao}

Aprova um determinado link

Parametro Tipo Descricao Obrigatorio?
id string id do link sim
aprovação string ('S' ou 'N') 'S' para aprovar um link e 'N' para recusar sim
  • Exemplo de JSON retornado:
{
    "message": "Link modificado!",
    "data": {
        "_id": "5d0f03691110220024601688",
        "title": "Criando um Snake do zero com Pygame em 5 minutos (ou mais)",
        "type": "Vídeo",
        "link": "https://www.youtube.com/watch?v=H4TXHI9BRCZ",
        "status": "S",
        "create_date": "2019-06-23T04:43:21.504Z",
        "__v": 0
    }
}
  • Retorno: HTTP Status 200 e json retornado e armazenado no banco.

PUT /linkEditar/:id

Edita um link cadastrado

Parametro Tipo Descricao Obrigatorio?
id string id do link sim
Body Tipo Descricao Obrigatorio?
title string Título do link sim
type string Tipo do link sim
link string Link sim
  • Exemplo de JSON retornado:
{
    "message": "Link modificado!",
    "data": {
        "_id": "5d0f03691110220024601688",
        "title": "Criando um Snake do zero com Pygame em 10 minutos (ou mais)",
        "type": "Vídeo",
        "link": "https://www.youtube.com/watch?v=H4TXHI9BRCZ",
        "status": null,
        "create_date": "2019-06-23T04:43:21.504Z",
        "__v": 0
    }
}
  • Retorno: HTTP Status 200 e json retornado e armazenado no banco.

/tutoriais

São os endpoints relacionados aos tutoriais pesquisados.

GET /tutoriais

Retorna todas os tutoriais pesquisados.

  • Exemplo de JSON retornado:
{
    "status": "success",
    "message": "Tutoriais recuperados com sucesso!",
    "data": [
        {
            "_id": "5cef1fa2bd3303002420035c",
            "title": "Nome do tutorial",
            "description": "Passo 1... Passo 2...",
            "status": null,
            "create_date": "2019-05-30T00:11:14.546Z",
            "__v": 0
        },
        {
            "_id": "5cef2b56ea278c002446b0af",
            "title": "Nome do tutorial 2",
            "description": "Passo 1... Passo 2...",
            "status": null,
            "create_date": "2019-05-30T01:01:10.489Z",
            "__v": 0
        }
    ]
}
  • Retorno: HTTP Status 200 e json retornado e armazenado no banco.

GET /tutoriais/aprovados/:{status}

Retorna todos os tutoriais aprovados ou não.

Parametro Tipo Descricao Obrigatorio?
status string('S' ou 'N') 'S' para tutoriais aprovados e 'N' para tutoriais recusados sim
  • Exemplo de JSON retornado:
{
    "status": "success",
    "message": "Tutoriais pendentes recuperados com sucesso!",
    "data": [
    ]
}
  • Retorno: HTTP Status 200 e json retornado e armazenado no banco.

GET /tutoriais/pendentes

Retorna todos os tutoriais pendentes de aprovação.

  • Exemplo de JSON retornado:
{
    "status": "success",
    "message": "Tutoriais pendentes recuperados com sucesso!",
    "data": [
        {
            "_id": "5cef1fa2bd3303002420035c",
            "title": "Nome do tutorial",
            "description": "Passo 1 Passo 2",
            "status": null,
            "create_date": "2019-05-30T00:11:14.546Z",
            "__v": 0
        },
        {
            "_id": "5cef2b56ea278c002446b0af",
            "title": "Nome do tutorial 2",
            "description": "Passo 1 Passo 2",
            "status": null,
            "create_date": "2019-05-30T01:01:10.489Z",
            "__v": 0
        }
    ]
 }
  • Retorno: HTTP Status 200 e json retornado e armazenado no banco.

GET /tutorial/:{id}

Retorna apenas um tutorial.

Parametro Tipo Descricao Obrigatorio?
id string id do tutorial sim
  • Exemplo de JSON retornado:
{
    "message": "Carregando detalhes da dúvida",
    "data": {
        "_id": "5cef1fa2bd3303002420035c",
        "title": "Nome do tutorial",
        "description": "Passo 1... Passo 2...",
        "status": null,
        "create_date": "2019-05-30T00:11:14.546Z",
        "__v": 0
    }
}
  • Retorno: HTTP Status 200 e json retornado e armazenado no banco.

POST /tutoriais/cadastrar

Cadastra um novo tutorial

Body Tipo Descricao Obrigatorio?
title string Título do tutorial sim
description string Descrição do tutorial sim
  • Exemplo de JSON retornado:
{
    "message": "Tutorial adicionado!",
    "data": {
        "_id": "5d0f0cd9111022002460168a",
        "title": "Criando um Snake do zero com Pygame em 10 minutos (ou mais)",
        "description": "Descrevendo tutorial",
        "status": null,
        "create_date": "2019-06-23T05:23:37.571Z",
        "__v": 0
    }
}
  • Retorno: HTTP Status 200 e json retornado e armazenado no banco.

PUT /tutoriais/:{id}/:{aprovacao}

Aprova um determinado tutorial

Parametro Tipo Descricao Obrigatorio?
id string id do tutorial sim
aprovação string ('S' ou 'N') 'S' para aprovar um tutorial e 'N' para recusar sim
  • Exemplo de JSON retornado:
{
    "message": "Tutorial modificado!",
    "data": {
        "_id": "5d0f0cd9111022002460168a",
        "title": "Criando um Snake do zero com Pygame em 10 minutos (ou mais)",
        "description": "Descrevendo tutorial",
        "status": "S",
        "create_date": "2019-06-23T05:23:37.571Z",
        "__v": 0
    }
}
  • Retorno: HTTP Status 200 e json retornado e armazenado no banco.

PUT /tutorialEditar/:id

Edita um link cadastrado

Parametro Tipo Descricao Obrigatorio?
id string id do tutorial sim
Body Tipo Descricao Obrigatorio?
title string Título do tutorial sim
description string Descrição do tutorial sim
  • Exemplo de JSON retornado:
{
    "message": "Tutorial modificado!",
    "data": {
        "_id": "5d0f0cd9111022002460168a",
        "title": "Criando um Snake do zero com Pygame em 51 minutos (ou mais)",
        "description": "Descrevendo tutorial",
        "status": null,
        "create_date": "2019-06-23T05:23:37.571Z",
        "__v": 0
    }
}
  • Retorno: HTTP Status 200 e json retornado e armazenado no banco.

About

Microsserviço responsável pelos materiais

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published