# Endpoints User E2W Esse arquivo serve como base de desenvolvimento de clients que tenham como base o consumo da API de user do E2W. **Navegação:** * [Pessoa](#Pessoa) * [Notificações](#Notificações) * [Convites](#Convites) * [LinkedinAuth](#LinkedinAuth) * [GoogleAuth](#GoogleAuth) * [Histórico](#Histórico) * [Avaliação](#Avaliação) * [Tarefa](#Tarefa) * [Tópico](#Tópico) * [Comunidade](#Comunidade) * [Métricas](#Métricas) **Informações gerais:** > Todas as datas devem ser passadas e recebidas usando o formato ISO 8601 ## Pessoa ### POST /person Registra uma pessoa no sistema. **Request Body** ```json { "name": "João Carlos", "email": "joao@uol.com.br", "password": "jao123" } ``` **Response 201** ```json { "token": "token", "refreshToken": "refresh", "accessTokenRenewInterval": "1800", "person": { "id": 1, "name": "João Carlos", "email": "joao@uol.com.br", "emailGoogle": "joao@uol.com.br", "emailLinkedin": "joao@uol.com.br", "gender": "MALE", "birthday": "2019-11-18", "schooling": "EM", "state": "SP", "lastEvaluation": "2020-10-28" } } ``` **Response 400** ```json { "error": "400 Bad Request: Email already in use" } ``` --- ### POST /person/login Autentica uma pessoa no sistema. **Request Body** ```json { "email": "joao@uol.com.br", "password": "jao123" } ``` **Response 200** ```json { "token": "token", "refreshToken": "refresh", "accessTokenRenewInterval": "1800", "person": { "id": 1, "name": "João Carlos", "email": "joao@uol.com.br", "emailGoogle": "joao@uol.com.br", "emailLinkedin": "joao@uol.com.br", "gender": "MALE", "birthday": "2019-11-18", "schooling": "EM", "state": "SP", "lastEvaluation": "2020-10-28" } } ``` **Response 400** ```json { "error": "400 Bad Request: Invalid login" } ``` --- ### POST /person/token/refresh Obtem um novo token de acesso. **Request Headers** ```json { "Authorization": "Bearer <refresh token do usuário>" } ``` **Response 200** ```json { "token": "token", "refreshToken": "refresh", "accessTokenRenewInterval": "1800", "person": { "id": 1, "name": "João Carlos", "email": "joao@uol.com.br", "emailGoogle": "joao@uol.com.br", "emailLinkedin": "joao@uol.com.br", "gender": "MALE", "birthday": "2019-11-18", "schooling": "EM", "state": "SP", "lastEvaluation": "2020-10-28" } } ``` --- ### GET /person/<int:person_id> Consulta as informações de uma pessoa no sistema. **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Response Body** ```json { "id": 1, "name": "João Carlos", "email": "joao@uol.com.br", "emailGoogle": "", "emailLinkedin": "joao@uol.com.br", "gender": "MALE", "birthday": "2019-11-18", "schooling": "EM", "state": "SP", "patrimonyDistribution": "UNKNOWN", "lastEvaluation": "2020-10-28" } ``` **Response 401** ```json { "error": "Invalid Credentials" } ``` --- ### PATCH /person/<int:person_id> Altera as informações de uma pessoa no sistema. **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Enums** **gender:** | valor | significado | | ---------- | ------------ | | FEMALE | Feminino | | MALE | Masculino | | NON_BINARY | 'Não-binário'| **schooling:** | valor | significado | | ---------- | ------------------------------------ | | EFI | Ensino Fundamental Incompleto | | EFC | Ensino Fundamental Completo | | EMI | Ensino Médio Incompleto | | EMC | Ensino Médio Completo | | ESI | Ensino Superior Incompleto | | ESC | Ensino Superior Completo | | PGE | Pós-graduação no nível Especialização| | PGM | Pós-graduação no nível Mestrado | | PGD | Pós-graduação no nível Doutorado | **state:** | valor | significado | | ---------- | -------------------- | | AC | Acre | | AL | Alagoas | | AP | Amapá | | AM | Amazonas | | BA | Bahia | | CE | Ceará | | DF | Distrito Federal | | ES | Espírito Santo | | GO | Goiás | | MA | Maranhão | | MT | Mato Grosso | | MS | Mato Grosso do Sul | | MG | Minas Gerais | | PA | Pará | | PB | Paraíba | | PR | Paraná | | PE | Pernambuco | | PI | Piauí | | RJ | Rio de Janeiro | | RN | Rio Grande do Norte | | RS | Rio Grande do Sul | | RO | Rondônia | | RR | Roraima | | SC | Santa Catarina | | SP | São Paulo | | SE | Sergipe | | TO | Tocantins | **patrimonyDistribution:** | valor | significado | | ------------- | -------------| | CONCENTRATED | Concentrado | | DIVERSIFIED | Diversificado| | UNKNOWN | Desconhecido | **Request Body** ```json { "name": "João Carlos", "email": "joao@uol.com.br", "gender": "MALE", "birthday": "2019-11-18", "schooling": "EM", "state": "SP", "patrimonyDistribution": "DIVERSIFIED" } ``` **Response 200** ```json { "id": 1, "name": "João Carlos", "email": "joao@uol.com.br", "gender": "MALE", "birthday": "2019-11-18", "schooling": "EM", "state": "SP", "patrimonyDistribution": "DIVERSIFIED" } ``` **Response 400** ```json { "error": "This email already exists" } ``` **Response 401** ```json { "error": "Invalid Credentials" } ``` --- ### PUT /person/<int:person_id>/password Altera o password do usuário. **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Request Body** ```json { "newPassword": "123", "email": "test@email.com", "password": "test" } ``` **Response 200** ```json { "message": "Password changed successfully" } ``` --- ### HEAD /people/emails/<email:string> Verifica existência de um usuário via e-mail. Se e-mail existir na base: **Response Body 200** ```json {} ``` Caso e-mail não exista na base: **Response Body 404** ```json {} ``` --- ## Notificações ### GET /person/<int:person_id>/notifications Lista todas as notificações de um usuário. **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Querystrings:** | Parâmetro| Descrição | | -------- | -------- | | wasRead | true ou false| **Response 200** ```json [ { "createdAt": "2020-04-14", "id": 1, "title": "Você tem uma nova mensagem", "type": "GENERIC", "wasRead": true, "wasReadAt": "2020-04-14" }, { "createdAt": "2020-04-14", "id": 2, "title": "Você tem uma avaliação pendente", "type": "EVALUATION_REMINDER", "wasRead": false, "wasReadAt": null } ] ``` --- ### PATCH /person/<int:person_id>/notification/<int:notification_id> Altera o status de uma notificação. **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Request Body** ```json { "wasRead": true } ``` **Response 200** ```json { "createdAt": "2020-04-14", "id": 1, "title": "Você tem uma nova mensagem", "type": "GENERIC", "wasRead": true, "wasReadAt": "2020-04-14" } ``` --- ## Convites ### GET /invites/person/<int:person_id> Retorna os convites feitos para a pessoa. **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Response 200** ```json { "id": 1, "company": "MasterTech", "person": { "id": 2, "name": "Carol", "email": "carol@email.com" }, "role": "engenharia", "unit": "Anlise desenvolvimento", "approved": null } ``` --- ### PUT /invites/person/<int:person_id> Aceita ou recusa os convites feitos para a pessoa. **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Response 200** ```json { "accept": true, "invite_ids": [ { "id": 1 }, { "id":2 } ] } ``` --- ## LinkedinAuth ### POST /person/linkedinauth Autentica uma pessoa usando o token do linkedin auth. **Request Body** ```json { "code": "linkedin code", "redirectUri": "linkedin redirectUri" } ``` **Response 200** ```json { "token": "token", "refreshToken": "refresh", "person": { "id": 1, "name": "João Carlos", "email": "joao@uol.com.br", "emailGoogle": "", "emailLinkedin": "joao@uol.com.br", "gender": "MALE", "birthday": "2019-11-18", "schooling": "EM", "state": "SP", "lastEvaluation": "2020-10-28" } } ``` --- ### PATCH /person/<int:person_id>/linkedin Adiciona linkedin a conta de uma pessoa. **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Request Body** ```json { "code": "linkedin code", "redirectUri": "linkedin redirectUri" } ``` **Response 200** ```json { "id": 1, "name": "João Carlos", "email": "joao@uol.com.br", "emailGoogle": "", "emailLinkedin": "joao@uol.com.br", "gender": "MALE", "birthday": "2019-11-18", "schooling": "EM", "state": "SP", "lastEvaluation": "2020-10-28" } ``` --- ### DELETE /person/<int:person_id>/linkedin Remove o linkedin a conta de uma pessoa **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Response 204** ```json {} ``` --- ## GoogleAuth ### POST /person/googleauth Autentica uma pessoa usando o token do google auth. **Request Body** ```json { "tokenId": "google auth token" } ``` **Response 200** ```json { "token": "token", "refreshToken": "refresh", "person": { "id": 1, "name": "João Carlos", "email": "joao@uol.com.br", "emailGoogle": "joao@uol.com.br", "emailLinkedin": "", "gender": "MALE", "birthday": "2019-11-18", "schooling": "EM", "state": "SP", "lastEvaluation": "2020-10-28" } } ``` --- ### PATCH /person/<int:person_id>/google Adiciona google a conta de uma pessoa **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Request Body** ```json { "tokenId": "google auth token" } ``` **Response 200** ```json { "id": 1, "name": "João Carlos", "email": "joao@uol.com.br", "emailGoogle": "joao@uol.com.br", "emailLinkedin": "", "gender": "MALE", "birthday": "2019-11-18", "schooling": "EM", "state": "SP", "lastEvaluation": "2020-10-28" } ``` --- ### DELETE /person/<int:person_id>/google Remove o google da conta de uma pessoa **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Response 204** ```json {} ``` --- ## Histórico ### GET /person/<int:person_id>/history Retorna o histórico de atividades de um usuário **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Querystrings:** | Parâmetro | Descrição | | ---------- | ------------ | | relatedTo | entre essas opções: TASK, EXECUTION e TOPIC| | from | Desde quando será retornado o histórico| **Response 200** ```json [ { "action": "TOPIC_EVALUATED", "id": 11, "payload": "{\"topic\": {\"description\": \"Exemplo de descrição\", \"symbol\": \"SCM1\", \"id\": 1, \"name\": \"SCRUM\"}, \"newValue\": 5, \"oldValue\": 10}", "registered_at": "2020-04-07T13:56:22+03:00", "relatedTo": "TOPIC" }, { "id": 12, "action": "TOPIC_EVALUATED", "payload": "{\"topic\": {\"description\": \"Exemplo de descrição\", \"symbol\": \"SCM1\", \"id\": 1, \"name\": \"SCRUM\"}, \"newValue\": 7, \"oldValue\": 0}", "registered_at": "2020-04-07T13:58:27+03:00", "relatedTo": "TOPIC" } ] ``` ## Avaliação ### POST /person/<int:person_id>/topic/<int:topic_id>/evaluation Cadastra a avaliação do usuário logado no topico em questão. > Obs: o campo justification não é obrigatório, a ideia é ser preenchido somente quando houver o valor mudar em relação a última auto avaliação. **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Request Body** ```json { "confirmation": "SC", "value": 8, "justification": "Andei estudando", "studyTasksIds": [1, 2] } ``` **Response 201** ```json { "id": 1, "confirmation": "SC", "value": 8, "justification": "Andei estudando", "evaluatedAt": "2019-11-18" } ``` --- ### GET /person/<int:person_id>/topic/<int:topic_id>/evaluations Lista o historico de auto avaliações do usuário na topico com filtro de data. **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **QueryStrings** | Parâmetro | Descrição | |--------------------|:----------------------------------------:| | from | Desde quando será retornado a avaliações | | to | Até quando será retornado as avaliações | **Response 200** ```json [ [ { "date": "2021-08", "value": 4.0 }, { "date": "2021-07", "value": 3.1 }, { "date": "2021-06", "value": 4.3 }, { "date": "2021-05", "value": 3.25 } ] ] ``` --- ### GET /person/<int:person_id>/evaluations/pending Lista as re-avaliações pendentes de uma pessoa. **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **QueryStrings** | Parâmetro | Descrição | |--------------------|:---------------------------:| | page | Página | | pageSize | Quantidade de itens por página | **Response 200** ```json { "items": [{ "id": 1, "lastEvaluationDate": "2021-05-22", "topic": { "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "id": 1, "name": "Scrum", "skillKind": "SOFT", "symbol": "SC" } }], "page": 1, "nextPage": 2, "prevPage": 0, "totalPages": 10, "totalItems": 1 } ``` --- ## Tarefa ### POST /person/<int:person_id>/task Cria uma tarefa de estudo do usuário. **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Request Body** ```json { "studyTask": { "title": "Aprender Python", "description": "Comprar um curso da Alura", "taskMedium": "REMOTE_SYNC", "contentType":"VISUAL_EXPOSURE", "contentFormat":"RECORDED", "taskMotive": "SELF_INITIATIVE", "taskFormat": "BY_MYSELF", "contentAcquisition": "PAID", "topic": { "id": 1 }, "parent": { "id": 1 } }, "evaluation": { "id": 8 }, "startAt": "2019-11-20", "deadline": "2019-11-25" } ``` **Response 201** ```json { "id": 1, "studyTask": { "title": "Aprender Python", "description": "Comprar um curso da Alura", "taskMedium": "REMOTE_SYNC", "contentType":"VISUAL_EXPOSURE", "contentFormat":"RECORDED", "taskMotive": "SELF_INITIATIVE", "taskFormat": "BY_MYSELF", "contentAcquisition": "PAID", "topic": { "id": 1, "name": "Python", "symbol": "PY", "description": "xpto", "skillKind": "HARD" }, "authorId": 1, "parentId": 1 }, "status": "COMPLETE", "startAt": "2019-11-20", "deadline": "2019-11-25", "timeItTook": 100, "nps": 0, "createdAt": "2020-04-14" } ``` --- ### POST /person/<int:person_id>/task/<int:task_id>/execution Cria uma execução a partir de uma tarefa já existente. **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Request Body** ```json { "evaluation": { "id": 8 }, "startAt": "2019-11-20", "deadline": "2019-11-25" } ``` **Response 201** ```json { "id": 1, "studyTask": { "title": "Aprender Python", "description": "Comprar um curso da Alura", "taskMedium": "REMOTE_SYNC", "contentType":"VISUAL_EXPOSURE", "contentFormat":"RECORDED", "taskMotive": "SELF_INITIATIVE", "taskFormat": "BY_MYSELF", "contentAcquisition": "PAID", "topic": { "id": 1, "name": "Python", "symbol": "PY", "description": "xpto", "skillKind": "HARD" }, "authorId": 1, "parentId": 1 }, "status": "PENDING", "startAt": "2019-11-20", "deadline": "2019-11-25", "timeItTook": 100, "nps": 0, "createdAt": "2020-04-14" } ``` --- ### PATCH /person/<int:person_id>/task/<int:task_id> Altera o detalhes de uma tarefa. **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Request Body** ```json { "title": "Aprender Python", "description": "Comprar um curso da Alura", "taskMedium": "REMOTE_SYNC", "contentType":"VISUAL_EXPOSURE", "contentFormat": "LIVE", "contentAcquisition": "PAID", "taskMotive": "SELF_INITIATIVE", "taskFormat": "BY_MYSELF" } ``` **Response 200** ```json { "id": 1, "title": "Study task", "description": "A Study task", "contentAcquisition": "PAID", "contentType": "VISUAL_EXPOSURE", "contentFormat": "LIVE", "taskFormat": "IN_GROUP", "taskMedium": "REMOTE_SYNC", "taskMotive": "SELF_INITIATIVE", "topic":{ "id": 1, "name": "topic", "symbol": "TPC1" }, "createdAt": "2019-11-18" } ``` --- ### PATCH /person/<int:person_id>/task/<int:task_id>/execution/<int:execution_id> Altera o detalhes de uma execução. **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Request Body** ```json { "status": "COMPLETE", "deadline": "2019-11-18", "start_at": "2019-11-18", "nps": "10", "timeItTook": 100 } ``` **Response 200** ```json { "id": 1, "status": "COMPLETE", "deadline": "2019-11-18", "start_at": "2019-11-18", "nps": "10", "timeItTook": 100, "createdAt": "2019-11-18" } ``` --- ### GET /tasks Lista todas as tarefas da comunidade. **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **QueryStrings** | Parâmetro | Descrição | |--------------------|:-----------------------------------------:| | contentFormat | RECORDED, LIVE | | topicId | Id de um tópico | | contentType | HARD, SOFT, BOTH | | taskMedium | REMOTE, FACE_TO_FACE | | title | Título de uma tarefa | | sortType | RECENT, POPULAR | **Response 200** ```json [ { "author_id": 3, "contentAcquisition": null, "contentType": null, "contentFormat": "LIVE", "createdAt": "2020-04-06", "description": "Meu amigo vai me ajudar", "id": 1, "parent_id": null, "nps": 3, "taskFormat": null, "taskMedium": "REMOTE_SYNC", "taskMotive": null, "timeItTook": 100, "title": "aprender python", "topic": { "description": "Exemplo de descrição", "id": 1, "name": "SCRUM", "symbol": "SCM1" } } ] ``` --- ### GET /task/<int:task_id> Consulta os detalhes de uma tarefa. **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Response 200** ```json { "author_id": 3, "contentAcquisition": null, "contentType": null, "contentFormat": "RECORDED", "createdAt": "2020-04-06", "description": "Meu amigo vai me ajudar", "id": 1, "parent_id": null, "nps": 3, "timeItTook": 100, "taskFormat": null, "taskMedium": null, "taskMotive": null, "title": "aprender python", "topic": { "description": "Exemplo de descrição", "id": 1, "name": "SCRUM", "symbol": "SCM1" } } ``` --- ### GET /person/<int:person_id>/executions Consulta as execuções de tarefa do usuário **QueryStrings** | Parâmetro | Descrição | |--------------------|:-----------------------------------------:| | contentFormat | RECORDED, LIVE | | topicId | Id de um investimento | | contentType | HARD, SOFT, BOTH | | taskMedium | REMOTE, FACE_TO_FACE | | title | Título de uma tarefa | | status | PENDING, DOING, COMPLETE, DISMISS, OVERDUE| | page | Página | | pageSize | Quantidade de itens por página | **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Response 200** ```json { "items": [ { "id": 1, "studyTask": { "author_id": 3, "contentAcquisition": null, "contentType": null, "contentFormat": "LIVE", "createdAt": "2020-04-06", "description": "Meu amigo vai me ajudar", "id": 1, "parent_id": null, "nps": 3, "taskFormat": null, "taskMedium": null, "taskMotive": null, "title": "aprender python", "topic": { "description": "Exemplo de descrição", "id": 1, "name": "SCRUM", "symbol": "SCM1" } }, "status": "COMPLETE", "deadline": "2019-11-18", "start_at": "2019-11-18", "nps": "10", "timeItTook": 100, "createdAt": "2019-11-18" } ], "nextPage": 2, "page": 1, "prevPage": 0, "totalItems": 1, "totalPages": 1 } ``` --- ### GET /person/<int:person_id>/task/<int:task_id>/execution/<int:execution_id> Consulta os detalhes da execução de uma tarefa **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **Response 200** ```json { "id": 1, "studyTask": { "author_id": 3, "contentAcquisition": null, "contentType": null, "contentFormat": "LIVE", "createdAt": "2020-04-06", "description": "Meu amigo vai me ajudar", "id": 1, "parent_id": null, "nps": 3, "taskFormat": null, "taskMedium": null, "taskMotive": null, "title": "aprender python", "topic": { "description": "Exemplo de descrição", "id": 1, "name": "SCRUM", "symbol": "SCM1" } }, "status": "COMPLETE", "deadline": "2019-11-18", "start_at": "2019-11-18", "nps": "10", "timeItTook": 100, "createdAt": "2019-11-18" } ``` --- ## Tópico ### GET /topic/{id} Consulta informações sobre um tópico. **Response 200** ```json { "id": 1, "symbol": "SCM1", "name": "Scrum Master" } ``` --- ### GET /person/<int:person_id>/topics/summary Retorna o resumo de todas as topicos de uma pessoa, no caso, a ultima avaliação de cada topico **Request Headers** ```json { "Authorization": "Bearer <token do usuário>" } ``` **QueryStrings** | Parâmetro | Descrição | |--------------------|:---------------------------:| | page | Página | | pageSize | Quantidade de itens por página | **Response 200** ```json { "items": [ { "count": 4, "lastDate": "2019-11-19", "lastValue": 0.1, "topic": { "id": 1, "name": "SCRUM", "symbol": "SCM1", "skillKind": null, "description": "Texto", "tracking": { "average": 5.84, "variation": -0.12 }, "activeTasksCount": 2 } }, { "count": 2, "lastDate": "2019-11-18", "lastValue": 0.4, "topic": { "id": 2, "name": "Product Owner", "symbol": "PDO1", "skillKind": null, "description": "Texto", "tracking": { "average": 5.84, "variation": -0.12 }, "activeTasksCount": 2 } } ], "page": 1, "nextPage": 2, "prevPage": 0, "totalPages": 1, "totalItems": 2 } ``` --- ### GET /topics Listar todas os tópicos disponíveis. **QueryStrings** | Parâmetro | Descrição | |--------------------|:---------------------------:| | skillKind | HARD, SOFT, BOTH | | page | Página | | pageSize | Quantidade de itens por página | **Response 200** ```json { "items": [ { "id": 1, "symbol": "SCM1", "name": "Scrum Master", "skillKind": null, "description": "Texto", "tracking": { "average": 5.84, "variation": -0.12 } }, { "id": 2, "symbol": "PDTO3", "name": "Product Owner", "skillKind": null, "description": "Texto", "tracking": { "average": 5.84, "variation": -0.12 } } ], "nextPage": 2, "page": 1, "prevPage": 0, "totalItems": 1, "totalPages": 1 } ``` --- ## Comunidade ### GET /person/<int:person_id>/companies Retorna as empresas vinculadas a uma pessoa. ```json { "items":[ { "id": 1, "name": "MasterTech" } ], "page": 1, "nextPage": 2, "prevPage": 0, "totalPages": 10, "totalItems": 100 } ``` --- ### GET /community/<string:community_id>/metrics Retorna as métricas da comunidade **Response 200** ```json { "skillKindDistribution": { "HARD": 12.3, "SOFT": 64.9, "BOTH": 22.8 }, "contentTypeDistribution": { "TEXT": 20.0, "VIDEO": 60.0, "AUDIO": 5.0, "VISUAL_EXPOSURE": 5.0, "HANDS_ON": 10.0 }, "TopicWithHighestValue": { "id": 1, "symbol": "SCM1", "name": "Scrum Master", "tracking": { "average": 1, "variation": 0.3 } }, "TopicWithLowestValue": { "id": 1, "symbol": "SCM1", "name": "Scrum Master", "tracking": { "average": 1, "variation": 0.3 } } } ``` **Response 404** ```json { "message": "The community 1 was not found" } ``` --- ### GET /community/<string:community_id>/topic/<int:topic_id>/metrics/average Retorna as médias dos tópicos da comunidade. **QueryStrings:** | Parâmetro | Descrição | |-----------|-------------------------------------| | from | Desde quando será retornado a média | | to | Até quando será retornado a média | **Response 200** ```json [ { "average": 5.21, "date": "2019-11" }, { "average": 5.87, "date": "2019-10" } ] ``` --- ### GET /community/<string:community_id>/topics/trending Lista os top 5 tópicos mais avaliados no momento. **Response 200** ```json [ { "topic": { "id": 2, "name": "Scrum", "symbol": "SCM1", "description": "lorem ipsum", "skillKind": "BOTH" }, "average": 8.975, "variation": 0.173, "evaluations": 23 }, { "topic": { "id": 2, "name": "Product Owner", "symbol": "PDO1", "description": "lorem ipsum", "skillKind": "BOTH" }, "average": 7.975, "variation": 0.573, "evaluations": 26 } ] ``` --- ## Métricas ### GET /person/<int:person_id>/metrics Retornar as métricas gerais dos aportes de um usuário. **Response 200** ```json { "skillKindDistribution": { "HARD": 12.3, "SOFT": 64.9, "BOTH": 22.8 }, "top3MostUsedContentType": ["VIDEO", "AUDIO", "TEXT"], "investmentWithMoreTasks": { "id": 1, "name": "SCRUM", "symbol": "SCM1", "description": "XYZ", "skillKind": "HARD" }, "tasksFromCommunityCount": 4 } ``` --- ### GET /person/<int:person_id>/history/metrics Listar informações do extrato de uma pessoa dos últimos 3 meses **Request Headers** ```json { "Authorization": "Bearer <refresh token do usuário>" } ``` **Response 200** ```json { "newInvestmentSubscriptions": 0, "newAssignedTasks": 5, "reevaluations": 2 } ``` **Response 404** ```json {"error": "The person activity {id} was not found"} ``` --- ### GET /person/<int:person_id>/executions/metrics Listar as informações das execuções do usuário **Request Headers** ```json { "Authorization": "Bearer <refresh token do usuário>" } ``` **Response 200** ```json { "completedExecutions": 3, "totalExecutions": 26, "contentTypeDistribution": { "AUDIO": 7.7, "HANDS_ON": 0.0, "TEXT": 3.8, "VIDEO": 3.8, "VISUAL_EXPOSURE": 84.6 }, "mostInvestedTopic": { "description": "SEI ", "id": 2, "name": "Elixr", "symbol": "ELX1", "tracking": { "average": 6.95, "variation": 6.95 } } } ```