Skip to content

Latest commit

 

History

History
238 lines (175 loc) · 3.87 KB

api_doc.md

File metadata and controls

238 lines (175 loc) · 3.87 KB

Documentação da API de Projetos

Abaixo, uma descrição dos endpoints disponíveis.

1. Listar Todas os Projetos

Endpoint

GET /api/v1/projects

Retorna a lista de todos os projetos cadastradas. (Status: 200):

[
  {
    "id": 1,
    "title": "Projeto Master",
    "description": "Principal projeto criado",
    "category": "Video",
    "project_job_categories": [
      {
        "job_category_id": 1
      },
      {
        "job_category_id": 2
      }
    ]
  },
  {
    "id": 2,
    "title": "Projeto Website",
    "description": "Um site de jogos",
    "category": "Programação",
    "project_job_categories": [
      {
        "job_category_id": 1
      },
      {
        "job_category_id": 2
      }
    ]
  }
]

Retorno esperado caso não tenham projetos cadastrados. (Status: 200):

{
  "message": "Nenhum projeto encontrado."
}

Erros tratados

Erro interno de servidor (Status: 500)

Retorno esperado:

{ 
  "errors": ["Erro interno de servidor."]
}

2. Mudar status de um convite para cancelado

Endpoint

PATCH /api/v1/invitations/:id

Retorno esperado caso a requisição seja bem sucedida. (Status: 200)


Retorno caso o convite não esteja mais pendente. (Status: 409)

{ 
  "message": ["Não é possível alterar convite que não está pendente."]
}

Erros tratados

Erro para objeto não encontrado (Status: 404)

{ 
  "errors": ["Erro, não encontrado."]
}

3 Criar solicitação para participação em projetos

Endpoint

POST /api/v1/proposals

Corpo da requisição:

A requisição requer o ID de um projeto existente na plataforma Cola?Bora!, o ID válido de um perfil da Portfoliorrr e uma mensagem opcional.

{ 
  "proposal": 
    {
      "project_id": 1,
      "profile_id": 3,
      "email": "user@email.com",
      "message": "Gostaria de participar do projeto!",
    }
}

Retorno esperado caso a requisição seja bem sucedida. (Status: 201)

{ 
  "data": 
    {
      "proposal_id": 1
    }
}

Erros tratados

Retorno caso o projeto não exista na plataforma Cola?Bora!. (Status: 404)

{ 
  "errors": ["Projeto não encontrado"]
}

Erros de ID de Perfil (Status: 409)

// ID de perfil em branco
{ 
  "errors": ["ID de perfil não pode ficar em branco", "ID de Perfil não é um número"]
}

// ID de perfil menor ou igual a zero
{
  "errors": ["ID de Perfil deve ser maior ou igual a 1"]
}

Erros de Solicitação (Status: 409)

// Usuário já tem solicitação pendente para o projeto
{ 
  "errors": ["Usuário já tem solicitação pendente para o projeto"]
}

// Usuário já é colaborador do projeto
{
  "errors": ["Usuário já faz parte deste projeto"]
}

Erro interno de servidor (Status: 500)

Retorno esperado:

{ 
  "errors": ["Erro interno de servidor."]
}

4 Cancelar solicitação para participação em projetos

Endpoint

PATCH /api/v1/proposals/:id

Corpo da requisição

Esta requisição não requer um corpo. Basta somente enviar o patch para o endpoint e a solicitação será cancelada.

Retorno esperado caso a requisição seja bem sucedida. (Status: 204)

Erros tratados

Retorno caso a solicitação não exista na plataforma Cola?Bora!. (Status: 404)

{ 
  "errors": ["Erro, não encontrado."]
}

Retorno caso ocorra um erro interno no servidor. (Status: 500)

{ 
  "errors": ["Erro interno de servidor."]
}

Retorno caso a solicitação esteja em um estado que não permite o cancelamento (Status: 409)

{ 
  "errors": "Essa solicitação não está pendente"
}

Observações Gerais

  • Todos os endpoints retornam dados no formato JSON.
  • Em caso de sucesso, a resposta terá o código 200.
  • Em caso de erro, o código e uma mensagem explicativa serão retornados.