fix: rota /diasuteis/v1 + link BrasilAPI-V no README (#884) · BrasilAPI/BrasilAPI@f6351ff · GitHub
Skip to content

Commit f6351ff

Browse files
lucianopfHermes Agent
andauthored
fix: rota /diasuteis/v1 + link BrasilAPI-V no README (#884)
* fix: rota /diasuteis/v1 sem segmento dinâmico (nunca funcionou como documentado) O endpoint merged no #871 usava [diasuteis].js (rota dinâmica) mas o handler só lê query params — o segmento era ignorado e a URL documentada (/api/diasuteis/v1?dataInicial=...) dava 404. Só funcionava com segmento arbitrário (/api/diasuteis/v1/qualquer?dataInicial=...). - renomeia para index.js → GET /api/diasuteis/v1?dataInicial=...&dataFinal=... - doc: path /diasuteis/v1 (params já eram query) - testes E2E: 400 sem params, semana útil, feriado nacional excluído, incluirFeriadosNacionais=false Co-authored-by: Hermes Agent <noreply@nousresearch.com> * docs: corrige link do BrasilAPI-V (username trocado ldedev → Ddiidev) Issue #733: o dev trocou o username no GitHub — o link apontava para o username antigo (redirect 301). Aponta direto para o novo. Co-authored-by: Hermes Agent <noreply@nousresearch.com> * test: CORS do /diasuteis/v1 com query params (handler exige dataInicial/dataFinal) --------- Co-authored-by: Hermes Agent <noreply@nousresearch.com>
1 parent 292df68 commit f6351ff

4 files changed

Lines changed: 158 additions & 105 deletions

File tree

‎README.md‎

Lines changed: 1 addition & 1 deletion

‎pages/docs/doc/diasuteis.json‎

Lines changed: 104 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -1,104 +1,104 @@
1-
{
2-
"tags": [
3-
{
4-
"name": "Dias Úteis",
5-
"description": "Busca de dias úteis com base em um intervalo de datas."
6-
}
7-
],
8-
"paths": {
9-
"/diasuteis/v1/{diasuteis}": {
10-
"get": {
11-
"tags": ["Dias Úteis"],
12-
"summary": "Busca todos os dias úteis entre duas datas",
13-
"description": "Retorna todos os dias úteis entre `dataInicial` e `dataFinal`, considerando ou não os feriados nacionais.",
14-
"parameters": [
15-
{
16-
"name": "dataInicial",
17-
"description": "Data inicial no formato YYYY-MM-DD",
18-
"in": "query",
19-
"required": true,
20-
"schema": {
21-
"type": "string",
22-
"format": "date"
23-
}
24-
},
25-
{
26-
"name": "dataFinal",
27-
"description": "Data final no formato YYYY-MM-DD",
28-
"in": "query",
29-
"required": true,
30-
"schema": {
31-
"type": "string",
32-
"format": "date"
33-
}
34-
},
35-
{
36-
"name": "incluirFeriadosNacionais",
37-
"description": "Define se os feriados nacionais devem ser considerados. Aceita 'true' ou 'false'.",
38-
"in": "query",
39-
"required": false,
40-
"schema": {
41-
"type": "boolean"
42-
}
43-
}
44-
],
45-
"responses": {
46-
"200": {
47-
"description": "Dias úteis retornados com sucesso",
48-
"content": {
49-
"application/json": {
50-
"schema": {
51-
"$ref": "#/components/schemas/DiasUteisResponse"
52-
}
53-
}
54-
}
55-
},
56-
"400": {
57-
"description": "Parâmetro(s) ausente(s) ou inválido(s)",
58-
"content": {
59-
"application/json": {
60-
"schema": {
61-
"$ref": "#/components/schemas/ErrorMessage"
62-
}
63-
}
64-
}
65-
}
66-
}
67-
}
68-
}
69-
},
70-
"components": {
71-
"schemas": {
72-
"DiasUteisResponse": {
73-
"type": "object",
74-
"properties": {
75-
"diasUteis": {
76-
"type": "array",
77-
"items": {
78-
"type": "string",
79-
"format": "date"
80-
}
81-
}
82-
},
83-
"example": {
84-
"diasUteis": ["2025-01-02", "2025-01-03", "2025-01-06"]
85-
}
86-
},
87-
"ErrorMessage": {
88-
"type": "object",
89-
"properties": {
90-
"message": {
91-
"type": "string"
92-
},
93-
"type": {
94-
"type": "string"
95-
}
96-
},
97-
"example": {
98-
"message": "Parâmetros dataInicial e dataFinal são obrigatórios",
99-
"type": "DATE_PARAM_MISSING"
100-
}
101-
}
102-
}
103-
}
104-
}
1+
{
2+
"tags": [
3+
{
4+
"name": "Dias Úteis",
5+
"description": "Busca de dias úteis com base em um intervalo de datas."
6+
}
7+
],
8+
"paths": {
9+
"/diasuteis/v1": {
10+
"get": {
11+
"tags": ["Dias Úteis"],
12+
"summary": "Busca todos os dias úteis entre duas datas",
13+
"description": "Retorna todos os dias úteis entre `dataInicial` e `dataFinal`, considerando ou não os feriados nacionais.",
14+
"parameters": [
15+
{
16+
"name": "dataInicial",
17+
"description": "Data inicial no formato YYYY-MM-DD",
18+
"in": "query",
19+
"required": true,
20+
"schema": {
21+
"type": "string",
22+
"format": "date"
23+
}
24+
},
25+
{
26+
"name": "dataFinal",
27+
"description": "Data final no formato YYYY-MM-DD",
28+
"in": "query",
29+
"required": true,
30+
"schema": {
31+
"type": "string",
32+
"format": "date"
33+
}
34+
},
35+
{
36+
"name": "incluirFeriadosNacionais",
37+
"description": "Define se os feriados nacionais devem ser considerados. Aceita 'true' ou 'false'.",
38+
"in": "query",
39+
"required": false,
40+
"schema": {
41+
"type": "boolean"
42+
}
43+
}
44+
],
45+
"responses": {
46+
"200": {
47+
"description": "Dias úteis retornados com sucesso",
48+
"content": {
49+
"application/json": {
50+
"schema": {
51+
"$ref": "#/components/schemas/DiasUteisResponse"
52+
}
53+
}
54+
}
55+
},
56+
"400": {
57+
"description": "Parâmetro(s) ausente(s) ou inválido(s)",
58+
"content": {
59+
"application/json": {
60+
"schema": {
61+
"$ref": "#/components/schemas/ErrorMessage"
62+
}
63+
}
64+
}
65+
}
66+
}
67+
}
68+
}
69+
},
70+
"components": {
71+
"schemas": {
72+
"DiasUteisResponse": {
73+
"type": "object",
74+
"properties": {
75+
"diasUteis": {
76+
"type": "array",
77+
"items": {
78+
"type": "string",
79+
"format": "date"
80+
}
81+
}
82+
},
83+
"example": {
84+
"diasUteis": ["2025-01-02", "2025-01-03", "2025-01-06"]
85+
}
86+
},
87+
"ErrorMessage": {
88+
"type": "object",
89+
"properties": {
90+
"message": {
91+
"type": "string"
92+
},
93+
"type": {
94+
"type": "string"
95+
}
96+
},
97+
"example": {
98+
"message": "Parâmetros dataInicial e dataFinal são obrigatórios",
99+
"type": "DATE_PARAM_MISSING"
100+
}
101+
}
102+
}
103+
}
104+
}

‎tests/diasuteis-v1.test.js‎

Lines changed: 53 additions & 0 deletions

0 commit comments

Comments
 (0)