forked from IAmHopp/desafio-ilia
-
Notifications
You must be signed in to change notification settings - Fork 5
/
api.yaml
130 lines (130 loc) · 3.5 KB
/
api.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
openapi: "3.0.3"
info:
title: Controle de Ponto API
version: "1.0"
components:
schemas:
Erro:
type: object
properties:
mensagem:
type: string
Batida:
type: object
description: Batida de ponto
properties:
momento:
description: Momento da batida
type: string
example: "2018-08-22T08:00:00"
Expediente:
type: object
description: Jornada diária de trabalho
properties:
dia:
type: string
format: date
pontos:
type: array
example: ["08:00:00", "12:00:00", "13:00:00", "18:00:00"]
items:
type: string
Relatorio:
type: object
description: Relatório mensal
properties:
anoMes:
format: ISO 8601.Duration
type: string
example: 2018-08
horasTrabalhadas:
format: ISO 8601.Duration
type: string
example: PT69H35M5S
horasExcedentes:
type: string
example: PT25M5S
horasDevidas:
format: ISO 8601.Duration
type: string
example: PT0S
expedientes:
type: array
items:
$ref: '#/components/schemas/Expediente'
paths:
/v1/batidas:
post:
tags:
- "Batidas"
summary: "Bater ponto"
description: "Registrar um horário da jornada diária de trabalho"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Batida"
responses:
"201":
description: |
Created
content:
application/json:
schema:
$ref: "#/components/schemas/Expediente"
"400":
description: |
Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/Erro"
examples:
Almoço:
value:
mensagem: Deve haver no mínimo 1 hora de almoço
Campo Obrigatório:
value:
mensagem: Campo obrigatório não informado
Formato Inválido:
value:
mensagem: Data e hora em formato inválido
4 Horários:
value:
mensagem: Apenas 4 horários podem ser registrados por dia
Sábado/Domingo:
value:
mensagem: Sábado e domingo não são permitidos como dia de trabalho
"409":
description: |
Conflict
content:
application/json:
schema:
$ref: "#/components/schemas/Erro"
examples:
Horário já registrado:
value:
mensagem: Horário já registrado
/v1/folhas-de-ponto/{anoMes}:
get:
tags:
- Folhas de Ponto
summary: "Relatório mensal"
description: "Geração de relatório mensal de usuário."
parameters:
- name: anoMes
in: path
required: true
schema:
type: string
example: "2018-08"
responses:
"200":
description: Relatório mensal
content:
application/json:
schema:
$ref: "#/components/schemas/Relatorio"
"404":
description: Relatório não encontrado