Abaixo, uma descrição dos endpoints disponíveis.
GET /api/v1/job_categories
GET /api/v1/job_categories
Retorna um JSON com atributo data
, cujo valor é a lista com todas as categorias de trabalho. (Status: 200)
{
"data": [
{
"id": 1,
"name": "Web Design"
},
{
"id": 2,
"name": "Programador Full Stack"
},
{
"id": 3,
"name": "Ruby on Rails"
}
]
}
Retorno esperado caso não tenham categorias cadastradas. (Status: 200):
{
"data": []
}
Erro interno de servidor (Status: 500)
Retorno esperado:
{
{ "error": "Houve um erro interno no servidor ao processar sua solicitação." }
}
GET /api/v1/job_categories/:id
GET /api/v1/job_categories/:id
Retorno esperado caso a requisição seja bem sucedida. (Status: 200)
{
"data": {
"id": 1,
"name": "Web Design"
}
}
Retorno esperado caso não encontre a categoria de trabalho. (Status: 404):
{
"error": "Não encontrado"
}
Erro interno de servidor (Status: 500)
Retorno esperado:
{
{ "error": "Houve um erro interno no servidor ao processar sua solicitação." }
}
GET /api/v1/profiles
query: Parâmetro que recebe string de nome da categoria ou descrição da categoria de trabalho.
GET /api/v1/profiles?search=query
Retorna uma lista com todos os usuários referentes a busca. (Status: 200)
{
"data": [{ "profile_id": 1,
"full_name": "João CampusCode Almeida",
"job_categories": [
{ "name": "Web Design",
"description": null },
{ "name": "Programador Full Stack",
"description": null },
{ "name": "Ruby on Rails",
"description": "Especialista em Rails" }
]
},
{ "profile_i": 3,
"full_name": "Gabriel Campos",
"job_categories": [
{ "name": "Web Design",
"description": null },
{ "name": "Ruby on Rails",
"description": "faço umas app daora" },
{ "name": "Programador Full Stack",
"description": "faço umas app loka"}
]
}
]
}
Retorno esperado caso a busca não retorne resultados. (Status: 200):
[]
Erro interno de servidor (Status: 500)
Retorno esperado:
{
"error": ["Houve um erro interno no servidor ao processar sua solicitação."]
}
Resultados para query de busca vazia (Status: 200)
Quando a busca é feita sem informar o parâmetro query. Retorna todos os usuários disponíveis para trabalhos. Exemplo de resposta para requisição sem query:
GET /api/v1/profiles?search=
GET /api/v1/profiles
Retorno esperado:
{
"data": [{ "profile_id": 1,
"full_name": "João CampusCode Almeida",
"job_categories": [
{ "name": "Web Design",
"description": null },
{ "name": "Programador Full Stack",
"description": null },
{ "name": "Ruby on Rails",
"description": "Especialista em Rails" }
]
},
{ "profile_id": 2,
"full_name": "Maria CampusCode Almeida",
"job_categories": [ { "name": "Web Design",
"description": null },
{ "name": "Programador Full Stack",
"description": null },
{ "name": "Ruby on Rails",
"description": "Especialista em Rails" }
]
},
{ "profile_id": 3,
"full_name": "Gabriel Campos",
"job_categories": [
{ "name": "Web Design",
"description": null },
{ "name": "Ruby on Rails",
"description": "faço umas app daora" },
{ "name": "Programador Full Stack",
"description": "faço umas app loka" }
]
}
]
}
GET /api/v1/profiles/:id
Requisição deve incluir id do perfil
GET /api/v1/profiles/:id
Retorno esperado caso a requisição seja bem sucedida. (Status: 200)
{
"data": {
"profile_id": 1,
"email": "[email protected]",
"full_name": "João CampusCode Almeida",
"cover_letter": "Sou profissional organizado, esforçado e apaixonado pelo que faço",
"professional_infos": [
{ "company": "Campus Code",
"position": "Dev",
"start_date": "2022-12-12",
"end_date": "2023-12-12",
"description": "Muito código",
"current_job": false }
],
"education_infos": [
{ "institution": "Senai",
"course": "Web dev full stack",
"start_date": "2022-12-12",
"end_date": "2023-12-12" },
{ "institution": "Senai",
"course": "Web dev full stack",
"start_date": "2022-12-12",
"end_date": "2023-12-12" }
],
"job_categories": [
{ "name": "Web Design",
"description": "Eu uso o Paint." },
{ "name": "Programador Full Stack",
"description": "Prefiro Tailwind." },
{ "name": "Ruby on Rails",
"description": "Eu amo Rails." }
]
}
}
Erro quando a id informada não é encontrada (Status: 404)
Resposta:
{
"error":"Perfil não existe."
}
POST /api/v1/invitations/
POST /api/v1/invitations
Corpo da requisição:
{
"invitation": {
"profile_id": 3,
"project_id": 5,
"project_title": "Projeto Cola?Bora!",
"project_description": "Projeto Legal",
"project_category": "Tecnologia",
"colabora_invitation_id": 1,
"message": "Venha participar do meu projeto!",
"expiration_date": "2021-12-31"
}
}
Retorno esperado caso a requisição seja bem sucedida. (Status: 201)
{
"data": {
"invitation_id": 1
}
}
Erro para corpo da requisição vazio (Status: 400)
Resposta:
{
"error": "Houve um erro ao processar sua solicitação."
}
Este erro acontece quando a requisição é feita sem informar o corpo da requisição. Exemplo de requisição que retornará este erro:
campos vazios
{}
id de usuário inválido
{
"invitation": {
"profile_id": 999999999999999,
etc...
}
}
PATCH /api/v1/invitations/:id
PATCH /api/v1/invitations/:id
Corpo da requisição:
{
"status": "accepted"
}
Retorno esperado caso a requisição seja bem sucedida. (Status: 204)
Erro para corpo da requisição vazio (Status: 400)
Resposta:
{
"error": "Houve um erro ao processar sua solicitação."
}
Este erro acontece quando a requisição é feita sem informar o corpo da requisição. Um exemplo de requisição que retornará este erro:
{}
Outro exemplo de requisição que retornará este erro:
{
"status": "XXXinvalid_statusXXX"
}
Erro para id de convite inválido (Status: 404)
Este erro acontece quando a requisição é feita com um id de convite que não existe. Exemplo de requisição que retornará este erro:
PATCH /api/v1/invitations/999999999999999
Retorno esperado:
{
"error": "Não encontrado"
}
PATCH /api/v1/invitation_requests/:id
PATCH /api/v1/invitation_requests/:id
Retorno esperado caso a requisição seja bem sucedida. (Status: 200)
Resposta:
{
"id": 1,
"profile_id": 1,
"message": "exemplo de mensagem enviada pelo usuário do Portfoliorrr",
"project_id": 1,
"status": "refused"
}
Erro quando a solicitação não estiver com status Pendente (Status: 409)
Resposta:
{
"errors": "Solicitação de convite não está pendente para ser recusada."
}
Erro para id de solicitação de convite inválido (Status: 404)
Este erro acontece quando a requisição é feita com um id de solicitação de convite que não existe.
PATCH /api/v1/invitation_requests/999999999999999
Retorno esperado:
{
"error": "Não encontrado"
}
Erro interno do servidor (Status: 500)
Resposta:
{
"errors": "Houve um erro interno no servidor ao processar sua solicitação."
}