Commit a05d7fd31e8718daf0be388ed5ea2b83f1580989
1 parent
55db20f5
Exists in
master
Cria README.md e arquivos .apidoc
- Cria README.md para documentar o projeto no SPB - Move documentação apidoc para arquivos .apidoc - Adiciona mensagem de erro em serviço que ainda não foi implementado
Showing
5 changed files
with
556 additions
and
472 deletions
Show diff stats
... | ... | @@ -0,0 +1,64 @@ |
1 | +# Templates-broker - API de manutenção e fornecimento de templates. | |
2 | +O Templates-broker é uma API para fornecimento de templates para geração de conteúdo dinâmico, podendo ser utilizado para gerar documentos, e-mails, relatórios, páginas e mais. A ideia é que a estrutura do template não faça parte da aplicação, podendo ser editada a qualquer momento e compartilhada com outras aplicações. O acesso ao template é feito através de uma chave de identificação e o preenchimento deverá ser feito pelo cliente. | |
3 | + | |
4 | +O broker não faz nenhum tipo de tratamento sobre o conteúdo do template e diversas engines podem ser utilizadas, mas inicialmente ele foi desenvolvido para ser utilizado com templates feitos em **[mustache](https://mustache.github.io/)**. O suporte a diversas linguagens faz com que o mustache seja uma ótima opção. | |
5 | + | |
6 | +Os templates são armazenados em banco e a cada atualização a versão anterior é adicionada ao histórico. Os templates podem ser alterados e recuperados sem que haja qualquer indisponibilidade das aplicações. | |
7 | + | |
8 | +## Requisitos | |
9 | +- Código-fonte do Broker pode ser baixado a partir do link https://softwarepublico.gov.br/gitlab/ans/templates-broker/tags](https://softwarepublico.gov.br/gitlab/ans/templates-broker/tags "Clique e acesse") | |
10 | +- [Apache Maven](https://maven.apache.org/) para baixar as dependências e compilar o pacote. | |
11 | +- Servidor [JBoss EAP 7.0.4](https://developers.redhat.com/products/eap/download/) ou [Wildfly 10](http://wildfly.org/downloads/). | |
12 | +- Banco relacional, o Broker foi desenvolvido usando Oracle 12g, mas com pouco esforço pode utilizar o MySQL. | |
13 | +- Conexão com a internet para que o Maven acesse os repositórios hospedeiros das dependências. | |
14 | +- Ferramenta [apiDoc](http://apidocjs.com/) para gerar a documentação da API. | |
15 | + | |
16 | +## Procedimentos para instalação | |
17 | +### Configurar as propriedades do datasource no JBoss. | |
18 | +O datasource `jdbc/templates` é declarado no arquivo `templates-ds.xml`, o funcionamento do datasource depende da declaração de algumas **System Properties** no JBoss. | |
19 | + | |
20 | +| Chave | Valor | | |
21 | +| ------------------------------------- | ----------------------------- | | |
22 | +| br.gov.ans.templates.db.connectionUrl | String de conexão com o banco | | |
23 | +| br.gov.ans.templates.db.password | Senha do usuário USUARIO_GETD | | |
24 | + | |
25 | +Abaixo um exemplo de declaração de propriedades feita no arquivo `standalone.xml`. | |
26 | +```xml | |
27 | +<!-- Geralmente no início do arquivo, após as extensions --> | |
28 | +<system-properties> | |
29 | + <!-- Outras propriedades ... --> | |
30 | + <property name="br.gov.ans.templates.db.connectionUrl" value="STRING_CONEXAO_BD_BROKER"/> | |
31 | + <property name="br.gov.ans.templates.db.password" value="SENHA_USUARIO_USUARIO_GETD"/> | |
32 | +</system-properties> | |
33 | +``` | |
34 | + | |
35 | +### Criar security-domain no JBoss | |
36 | +É necessário que haja um security-domain registrado com o nome `ans-ws-auth`, o mesmo pode utilizar um banco de dados[^1] ou o LDAP. É importante destacar que o Broker trabalha com autorização baseada em papéis(RBAC[^2]) e que os usuários precisam ter seus papéis atribuídos. | |
37 | +[^1]: https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.0/html/how_to_configure_identity_management/configuring_a_security_domain_to_use_a_database | |
38 | +[^2]: https://en.wikipedia.org/wiki/Role-based_access_control | |
39 | + | |
40 | +### Implantar pacote gerado pelo Maven | |
41 | +Após a realização de todos os passos anteriores, teremos o JBoss pronto para receber o pacote do Templates-Broker. O deploy pode ser feito de diversas maneiras e não é o foco desse manual. | |
42 | + | |
43 | +Para essa etapa é necessário ter o Maven instalado e configurado. Ao realizar o primeiro build devemos desabilitar os testes automatizados, os testes dependem de uma instância ativa e impedirão a geração do pacote. | |
44 | + | |
45 | +### Gerar documentação da API | |
46 | +Após a implantação é **fundamental** que a documentação da API seja disponibilizada para os clientes do Broker. A documentação do Broker foi escrita utilizando a ferramenta [apiDoc](http://apidocjs.com/) e os fontes estão no diretório `/src/main/resources/apidoc/`. Será preciso fazer a instalação do apiDoc[^3] e executar o comando abaixo na raiz do projeto. | |
47 | +[^3]: http://apidocjs.com/#install | |
48 | + | |
49 | +```console | |
50 | +apidoc -f ".*\\.apidoc$" -i src/main/resources/apidoc/ -o <CAMINHO_ONDE_DOCUMENTACAO_SERA_GERADA> | |
51 | +``` | |
52 | + | |
53 | +A documentação gerada deve ser disponibilizada em um local onde possa ser facilmente acessada pelos clientes. | |
54 | + | |
55 | +## Autenticação e Autorização | |
56 | +A autenticação no Templates-Broker é feita através do HTTP Basic e a autorização é baseada em roles/papéis que são atribuídas ao usuário. Os sistemas que utilizarão o broker precisarão de um usuário, esse usuário deve ser previamente cadastrado em uma fonte de dados e receber a role correspondente às suas necessidades. Esses dados serão verificados pelo security-domain `ans-ws-auth` que foi configurado no JBoss. | |
57 | + | |
58 | +### Roles/Papéis ### | |
59 | +Existem duas roles de acesso ao Broker, uma com acesso administrativo e outra somente para consulta. As roles precisam ter o nome idêntico ao definido no Broker, caso haja divergência o acesso será negado pelo [JAAS](https://en.wikipedia.org/wiki/Java_Authentication_and_Authorization_Service). | |
60 | + | |
61 | +| Role | Descrição | | |
62 | +| --------------------- | ------------------------- | | |
63 | +| RO_ADMIN_TEMPLATE | Perfil de administração | | |
64 | +| RO_USUARIO_TEMPLATE | Perfil de consulta | | ... | ... |
src/main/java/br/gov/ans/templates/rest/ColaboradorResource.java
1 | 1 | package br.gov.ans.templates.rest; |
2 | 2 | |
3 | +import javax.inject.Inject; | |
3 | 4 | import javax.ws.rs.GET; |
4 | 5 | import javax.ws.rs.Path; |
5 | 6 | import javax.ws.rs.PathParam; |
6 | 7 | import javax.ws.rs.core.Response; |
7 | 8 | |
9 | +import org.apache.commons.lang3.NotImplementedException; | |
10 | + | |
11 | +import br.gov.ans.utils.MessageUtils; | |
12 | + | |
8 | 13 | @Path("colaboradores") |
9 | 14 | public class ColaboradorResource { |
10 | 15 | |
16 | + @Inject | |
17 | + private MessageUtils messages; | |
18 | + | |
11 | 19 | @GET |
12 | 20 | @Path("{colaborador}/templates") |
13 | 21 | public Response getTemplates(@PathParam("colaborador") String colaborador){ |
14 | - return null; | |
22 | + throw new NotImplementedException(messages.getMessage("erro.servico.nao.implementado")); | |
15 | 23 | } |
16 | 24 | |
17 | 25 | } | ... | ... |
src/main/java/br/gov/ans/templates/rest/TemplateResource.java
... | ... | @@ -56,52 +56,7 @@ public class TemplateResource { |
56 | 56 | |
57 | 57 | @Inject |
58 | 58 | private MessageUtils messages; |
59 | - | |
60 | - /** | |
61 | - * @api {get} /templates Listar templates | |
62 | - * @apiName listTemplates | |
63 | - * @apiGroup Template | |
64 | - * @apiVersion 1.0.0 | |
65 | - * @apiPermission RO_ADMIN_TEMPLATE, RO_USUARIO_TEMPLATE | |
66 | - * | |
67 | - * @apiDescription Consulta os templates disponíveis. | |
68 | - * | |
69 | - * @apiParam (Query Parameters) {String} [filtro] Valor utilizado para filtrar os templates. | |
70 | - * @apiParam (Query Parameters) {String} [itens = 20] Quantidade de templates que serão exibidos | |
71 | - * @apiParam (Query Parameters) {String} [pag = 1] Número da página | |
72 | - * | |
73 | - * @apiExample Exemplo de requisição: | |
74 | - * curl -i http://<host>/templates-broker/service/templates | |
75 | - * | |
76 | - * @apiSuccess (Sucesso - 200) {List} resultado Lista com os templates encontrados. | |
77 | - * @apiSuccess (Sucesso - 200) {Template} resultado.template Objeto representando o template. | |
78 | - * @apiSuccess (Sucesso - 200) {String} resultado.template.corpo Corpo do template, conteúdo que as aplicações usarão para preencher e exibir os dados. | |
79 | - * @apiSuccess (Sucesso - 200) {String} resultado.template.dataCadastro Data de cadastro do template. | |
80 | - * @apiSuccess (Sucesso - 200) {String} resultado.template.descricao Descrição do template. | |
81 | - * @apiSuccess (Sucesso - 200) {String} resultado.template.exemplo Exemplo de request para preenchimento do template. | |
82 | - * @apiSuccess (Sucesso - 200) {String} resultado.template.nome Identificador do template | |
83 | - * @apiSuccess (Sucesso - 200) {String} resultado.template.responsavel Analista responsável pelo template. | |
84 | - * @apiSuccess (Sucesso - 200) {Boolean} resultado.template.restrito Flag identificando se a atualização deste template é restrita. | |
85 | - * | |
86 | - * @apiSuccessExample {json} Success-Response: | |
87 | - * HTTP/1.1 200 OK | |
88 | - * { | |
89 | - * "corpo": "Prezado {{fulano}}, seu cadastro foi realizado com sucesso.", | |
90 | - * "dataCadastro": "2017-03-14T16:57:47.405-03:00", | |
91 | - * "descricao": "Template de confirmação de cadastro.", | |
92 | - * "exemplo": "{"fulano":"André Guimarães"}", | |
93 | - * "nome": "confirmacao-cadastro", | |
94 | - * "responsavel": "andre.guimaraes", | |
95 | - * "restrito": false | |
96 | - * } | |
97 | - * | |
98 | - * @apiErrorExample {json} Error-Response: | |
99 | - * HTTP/1.1 500 Internal Server Error | |
100 | - * { | |
101 | - * "error":"Mensagem de erro." | |
102 | - * "code":"código do erro" | |
103 | - * } | |
104 | - */ | |
59 | + | |
105 | 60 | @GET |
106 | 61 | @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) |
107 | 62 | public Response listTemplates(@QueryParam("filtro") String filtro, @QueryParam("pag") String pagina, @QueryParam("itens") String tamanhoPagina) throws BusinessException, ResourceNotFoundException{ |
... | ... | @@ -118,48 +73,6 @@ public class TemplateResource { |
118 | 73 | return Response.ok().entity(entity).header("total_registros", totalRegistros).build(); |
119 | 74 | } |
120 | 75 | |
121 | - /** | |
122 | - * @api {get} /templates/:template Consultar template | |
123 | - * @apiName getTemplate | |
124 | - * @apiGroup Template | |
125 | - * @apiVersion 1.0.0 | |
126 | - * @apiPermission RO_ADMIN_TEMPLATE, RO_USUARIO_TEMPLATE | |
127 | - * | |
128 | - * @apiDescription Consulta um template. | |
129 | - * | |
130 | - * @apiParam (Path Parameters) {String} template Identificador do template | |
131 | - * | |
132 | - * @apiExample Exemplo de requisição: | |
133 | - * curl -i http://<host>/templates-broker/service/templates/confirmacao-cadastro | |
134 | - * | |
135 | - * @apiSuccess (Sucesso - 200) {Template} template Objeto representando o template. | |
136 | - * @apiSuccess (Sucesso - 200) {String} template.corpo Corpo do template, conteúdo que as aplicações usarão para preencher e exibir os dados. | |
137 | - * @apiSuccess (Sucesso - 200) {String} template.dataCadastro Data de cadastro do template. | |
138 | - * @apiSuccess (Sucesso - 200) {String} template.descricao Descrição do template. | |
139 | - * @apiSuccess (Sucesso - 200) {String} template.exemplo Exemplo de request para preenchimento do template. | |
140 | - * @apiSuccess (Sucesso - 200) {String} template.nome Identificador do template. | |
141 | - * @apiSuccess (Sucesso - 200) {String} template.responsavel Analista responsável pelo template. | |
142 | - * @apiSuccess (Sucesso - 200) {Boolean} template.restrito Flag identificando se a atualização deste template é restrita. | |
143 | - * | |
144 | - * @apiSuccessExample {json} Success-Response: | |
145 | - * HTTP/1.1 200 OK | |
146 | - * { | |
147 | - * "corpo": "Prezado {{fulano}}, seu cadastro foi realizado com sucesso.", | |
148 | - * "dataCadastro": "2017-03-14T16:57:47.405-03:00", | |
149 | - * "descricao": "Template de confirmação de cadastro.", | |
150 | - * "exemplo": "{"fulano":"André Guimarães"}", | |
151 | - * "nome": "confirmacao-cadastro", | |
152 | - * "responsavel": "andre.guimaraes", | |
153 | - * "restrito": false, | |
154 | - * } | |
155 | - * | |
156 | - * @apiErrorExample {json} Error-Response: | |
157 | - * HTTP/1.1 500 Internal Server Error | |
158 | - * { | |
159 | - * "error":"Mensagem de erro." | |
160 | - * "code":"código do erro" | |
161 | - * } | |
162 | - */ | |
163 | 76 | @GET |
164 | 77 | @Path("{template}") |
165 | 78 | @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) |
... | ... | @@ -172,34 +85,7 @@ public class TemplateResource { |
172 | 85 | |
173 | 86 | return template; |
174 | 87 | } |
175 | - | |
176 | - /** | |
177 | - * @api {get} /templates/:template/corpo Recuperar corpo | |
178 | - * @apiName getCorpoTemplate | |
179 | - * @apiGroup Template | |
180 | - * @apiVersion 1.0.0 | |
181 | - * @apiPermission RO_ADMIN_TEMPLATE, RO_USUARIO_TEMPLATE | |
182 | - * | |
183 | - * @apiDescription Recupera o corpo de um template para utilização. | |
184 | - * | |
185 | - * @apiParam (Path Parameters) {String} template Identificador do template | |
186 | - * | |
187 | - * @apiExample Exemplo de requisição: | |
188 | - * curl -i http://<host>/templates-broker/service/templates/confirmacao-cadastro | |
189 | - * | |
190 | - * @apiSuccess (Sucesso - 200) {String} corpo String com o corpo do template pronto para utilização. | |
191 | - * | |
192 | - * @apiSuccessExample {json} Success-Response: | |
193 | - * HTTP/1.1 200 OK | |
194 | - * Prezado {{fulano}}, seu cadastro foi realizado com sucesso. | |
195 | - * | |
196 | - * @apiErrorExample {json} Error-Response: | |
197 | - * HTTP/1.1 500 Internal Server Error | |
198 | - * { | |
199 | - * "error":"Mensagem de erro." | |
200 | - * "code":"código do erro" | |
201 | - * } | |
202 | - */ | |
88 | + | |
203 | 89 | @GET |
204 | 90 | @Path("{template}/corpo") |
205 | 91 | @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) |
... | ... | @@ -207,48 +93,6 @@ public class TemplateResource { |
207 | 93 | return new String(getTemplate(nomeTemplate).getCorpo()); |
208 | 94 | } |
209 | 95 | |
210 | - /** | |
211 | - * @api {post} /templates Adicionar template | |
212 | - * @apiName createTemplate | |
213 | - * @apiGroup Template | |
214 | - * @apiVersion 1.0.0 | |
215 | - * @apiPermission RO_ADMIN_TEMPLATE | |
216 | - * | |
217 | - * @apiDescription Cria um novo template. | |
218 | - * | |
219 | - * @apiParam (Request Body) {Template} template Objeto de representação do template. | |
220 | - * @apiParam (Request Body) {String} corpo Corpo do template, conteúdo que as aplicações usarão para preencher e exibir os dados. | |
221 | - * @apiParam (Request Body) {String} descricao Descrição do template. | |
222 | - * @apiParam (Request Body) {String} exemplo Exemplo de request para preenchimento do template. | |
223 | - * @apiParam (Request Body) {String} nome Identificador do template. | |
224 | - * @apiParam (Request Body) {String} responsavel Analista responsável pelo template. | |
225 | - * @apiParam (Request Body) {String} restrito Flag identificando se a atualização deste template é restrita. | |
226 | - * | |
227 | - * @apiExample Exemplo de requisição: | |
228 | - * endpoint: [POST] http://<host>/templates-broker/service/templates/confirmacao-cadastro | |
229 | - * | |
230 | - * body: | |
231 | - * { | |
232 | - * "corpo": "Prezado {{fulano}}, seu cadastro foi realizado com sucesso.", | |
233 | - * "descricao": "Template de confirmação de cadastro.", | |
234 | - * "exemplo": "{"fulano":"André Guimarães"}", | |
235 | - * "nome": "confirmacao-cadastro", | |
236 | - * "responsavel": "andre.guimaraes", | |
237 | - * "restrito": true, | |
238 | - * } | |
239 | - * | |
240 | - * @apiSuccess (Sucesso - 201) {header} Location Caminho para o recurso criado. | |
241 | - * | |
242 | - * @apiSuccessExample {json} Success-Response: | |
243 | - * HTTP/1.1 201 Created | |
244 | - * | |
245 | - * @apiErrorExample {json} Error-Response: | |
246 | - * HTTP/1.1 500 Internal Server Error | |
247 | - * { | |
248 | - * "error":"Mensagem de erro." | |
249 | - * "code":"código do erro" | |
250 | - * } | |
251 | - */ | |
252 | 96 | @POST |
253 | 97 | @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) |
254 | 98 | @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) |
... | ... | @@ -268,52 +112,7 @@ public class TemplateResource { |
268 | 112 | |
269 | 113 | return Response.created(getResourcePath(uriInfo, entity.getNome())).build(); |
270 | 114 | } |
271 | - | |
272 | - /** | |
273 | - * @api {put} /templates/:template Atualizar template | |
274 | - * @apiName editTemplate | |
275 | - * @apiGroup Template | |
276 | - * @apiVersion 1.0.0 | |
277 | - * @apiPermission RO_ADMIN_TEMPLATE | |
278 | - * | |
279 | - * @apiDescription Atualiza um template. | |
280 | - * | |
281 | - * @apiParam (Path Parameters) {String} template Identificador do template | |
282 | - * | |
283 | - * @apiParam (Request Body) {Template} template Objeto de representação do template. | |
284 | - * @apiParam (Request Body) {String} corpo Corpo do template, conteúdo que as aplicações usarão para preencher e exibir os dados. | |
285 | - * @apiParam (Request Body) {String} descricao Descrição do template. | |
286 | - * @apiParam (Request Body) {String} exemplo Exemplo de request para preenchimento do template. | |
287 | - * @apiParam (Request Body) {String} nome Identificador do template. | |
288 | - * @apiParam (Request Body) {String} responsavel Analista responsável pelo template. | |
289 | - * @apiParam (Request Body) {String} restrito Flag identificando se a atualização deste template é restrita. | |
290 | - * | |
291 | - * @apiExample Exemplo de requisição: | |
292 | - * endpoint: [PUT] http://<host>/templates-broker/service/templates/confirmacao-cadastro | |
293 | - * | |
294 | - * body: | |
295 | - * { | |
296 | - * "corpo": "Prezado {{fulano}}, seu cadastro foi realizado com sucesso.", | |
297 | - * "descricao": "Template de confirmação de cadastro.", | |
298 | - * "exemplo": "{"fulano":"André Guimarães"}", | |
299 | - * "nome": "confirmacao-cadastro", | |
300 | - * "responsavel": "andre.guimaraes", | |
301 | - * "restrito": true, | |
302 | - * } | |
303 | - * | |
304 | - * | |
305 | - * @apiSuccess (Sucesso - 200) {header} Location Caminho para o recurso editado. | |
306 | - * | |
307 | - * @apiSuccessExample {json} Success-Response: | |
308 | - * HTTP/1.1 200 OK | |
309 | - * | |
310 | - * @apiErrorExample {json} Error-Response: | |
311 | - * HTTP/1.1 500 Internal Server Error | |
312 | - * { | |
313 | - * "error":"Mensagem de erro." | |
314 | - * "code":"código do erro" | |
315 | - * } | |
316 | - */ | |
115 | + | |
317 | 116 | @PUT |
318 | 117 | @Path("{template}") |
319 | 118 | @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) |
... | ... | @@ -341,31 +140,7 @@ public class TemplateResource { |
341 | 140 | |
342 | 141 | return Response.ok().contentLocation(getResourcePath(uriInfo, template.getNome())).build(); |
343 | 142 | } |
344 | - | |
345 | - /** | |
346 | - * @api {delete} /templates/:template Excluir template | |
347 | - * @apiName deleteTemplate | |
348 | - * @apiGroup Template | |
349 | - * @apiVersion 1.0.0 | |
350 | - * @apiPermission RO_ADMIN_TEMPLATE | |
351 | - * | |
352 | - * @apiDescription Exclui determinado template. | |
353 | - * | |
354 | - * @apiParam (Path Parameters) {String} template Identificador do template | |
355 | - * | |
356 | - * @apiExample Exemplo de requisição: | |
357 | - * curl -X DELETE http://<host>/templates-broker/service/templates/confirmacao-cadastro | |
358 | - * | |
359 | - * @apiSuccessExample {json} Success-Response: | |
360 | - * HTTP/1.1 200 OK | |
361 | - * | |
362 | - * @apiErrorExample {json} Error-Response: | |
363 | - * HTTP/1.1 500 Internal Server Error | |
364 | - * { | |
365 | - * "error":"Mensagem de erro." | |
366 | - * "code":"código do erro" | |
367 | - * } | |
368 | - */ | |
143 | + | |
369 | 144 | @DELETE |
370 | 145 | @Path("{template}") |
371 | 146 | @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) |
... | ... | @@ -378,43 +153,7 @@ public class TemplateResource { |
378 | 153 | |
379 | 154 | return Response.ok().build(); |
380 | 155 | } |
381 | - | |
382 | - /** | |
383 | - * @api {get} /templates/:template/colaboradores Listar colaboradores | |
384 | - * @apiName getColaboradores | |
385 | - * @apiGroup Colaborador | |
386 | - * @apiVersion 1.0.0 | |
387 | - * @apiPermission RO_ADMIN_TEMPLATE, RO_USUARIO_TEMPLATE | |
388 | - * | |
389 | - * @apiDescription Consulta os colaboradores do template. | |
390 | - * | |
391 | - * @apiParam (Path Parameters) {String} template Identificador do template | |
392 | - * | |
393 | - * @apiParam (Query Parameters) {String} [itens = 20] Quantidade de templates que serão exibidos | |
394 | - * @apiParam (Query Parameters) {String} [pag = 1] Número da página | |
395 | - * | |
396 | - * @apiExample Exemplo de requisição: | |
397 | - * curl -i http://<host>/templates-broker/service/templates/confirmacao-cadastro/colaboradores | |
398 | - * | |
399 | - * @apiSuccess (Sucesso - 200) {List} resultado Lista com os colaboradores do template. | |
400 | - * @apiSuccess (Sucesso - 200) {Colaborador} resultado.colaborador Objeto representando um colaborador. | |
401 | - * @apiSuccess (Sucesso - 200) {String} resultado.colaborador.usuario Identificador do colaborador. | |
402 | - * @apiSuccess (Sucesso - 200) {Boolean} resultado.colaborador.editor Flag que determina se o colaborador tem o poder para editar o template. | |
403 | - * | |
404 | - * @apiSuccessExample {json} Success-Response: | |
405 | - * HTTP/1.1 200 OK | |
406 | - * { | |
407 | - * "editor": true, | |
408 | - * "usuario": "andre.guimaraes", | |
409 | - * } | |
410 | - * | |
411 | - * @apiErrorExample {json} Error-Response: | |
412 | - * HTTP/1.1 500 Internal Server Error | |
413 | - * { | |
414 | - * "error":"Mensagem de erro." | |
415 | - * "code":"código do erro" | |
416 | - * } | |
417 | - */ | |
156 | + | |
418 | 157 | @GET |
419 | 158 | @Path("{template}/colaboradores") |
420 | 159 | @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) |
... | ... | @@ -432,78 +171,13 @@ public class TemplateResource { |
432 | 171 | return Response.ok().entity(entity).header("total_registros", totalRegistros).build(); |
433 | 172 | } |
434 | 173 | |
435 | - /** | |
436 | - * @api {get} /templates/:template/colaboradores/:colaborador Consultar colaborador | |
437 | - * @apiName getColaborador | |
438 | - * @apiGroup Colaborador | |
439 | - * @apiVersion 1.0.0 | |
440 | - * @apiPermission RO_ADMIN_TEMPLATE, RO_USUARIO_TEMPLATE | |
441 | - * | |
442 | - * @apiDescription Consulta um colaborador. | |
443 | - * | |
444 | - * @apiParam (Path Parameters) {String} template Identificador do template | |
445 | - * @apiParam (Path Parameters) {String} colaborador Identificador do colaborador | |
446 | - * | |
447 | - * @apiExample Exemplo de requisição: | |
448 | - * curl -i http://<host>/templates-broker/service/templates/confirmacao-cadastro/colaboradores/andre.guimaraes | |
449 | - * | |
450 | - * @apiSuccess (Sucesso - 200) {Colaborador} colaborador Objeto representando um colaborador. | |
451 | - * @apiSuccess (Sucesso - 200) {String} colaborador.usuario Identificador do colaborador. | |
452 | - * @apiSuccess (Sucesso - 200) {Boolean} colaborador.editor Flag que determina se o colaborador tem o poder para editar o template. | |
453 | - * | |
454 | - * @apiSuccessExample {json} Success-Response: | |
455 | - * HTTP/1.1 200 OK | |
456 | - * { | |
457 | - * "editor": true, | |
458 | - * "usuario": "andre.guimaraes" | |
459 | - * } | |
460 | - * | |
461 | - * @apiErrorExample {json} Error-Response: | |
462 | - * HTTP/1.1 500 Internal Server Error | |
463 | - * { | |
464 | - * "error":"Mensagem de erro." | |
465 | - * "code":"código do erro" | |
466 | - * } | |
467 | - */ | |
468 | 174 | @GET |
469 | 175 | @Path("{template}/colaboradores/{colaborador}") |
470 | 176 | @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) |
471 | 177 | public Colaborador getColaborador(@PathParam("template") String template, @PathParam("colaborador") String colaborador) throws ResourceNotFoundException{ |
472 | 178 | return daoColaborador.getColaborador(getTemplate(template).getId(), colaborador); |
473 | 179 | } |
474 | - | |
475 | - /** | |
476 | - * @api {post} /templates/:template/colaboradores Adicionar colaborador | |
477 | - * @apiName addColaborador | |
478 | - * @apiGroup Colaborador | |
479 | - * @apiVersion 1.0.0 | |
480 | - * @apiPermission RO_ADMIN_TEMPLATE | |
481 | - * | |
482 | - * @apiDescription Adiciona um colaborador ao template. | |
483 | - * | |
484 | - * @apiParam (Path Parameters) {String} template Identificador do template | |
485 | - * | |
486 | - * @apiExample Exemplo de requisição: | |
487 | - * endpoint: [POST] http://<host>/templates-broker/service/templates/confirmacao-cadastro/colaboradores | |
488 | - * | |
489 | - * body: | |
490 | - * { | |
491 | - * "usuario": "andre.guimaraes", | |
492 | - * "editor": true | |
493 | - * } | |
494 | - * | |
495 | - * @apiSuccess (Sucesso - 201) {header} Location Caminho para o recurso criado. | |
496 | - * | |
497 | - * @apiSuccessExample {json} Success-Response: | |
498 | - * HTTP/1.1 201 Created | |
499 | - * | |
500 | - * @apiErrorExample {json} Error-Response: | |
501 | - * HTTP/1.1 500 Internal Server Error | |
502 | - * { | |
503 | - * "error":"Mensagem de erro." | |
504 | - * "code":"código do erro" | |
505 | - * } | |
506 | - */ | |
180 | + | |
507 | 181 | @POST |
508 | 182 | @Path("{template}/colaboradores") |
509 | 183 | @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) |
... | ... | @@ -517,32 +191,7 @@ public class TemplateResource { |
517 | 191 | |
518 | 192 | return Response.ok().contentLocation(getResourcePath(uriInfo, colaborador.getUsuario())).build(); |
519 | 193 | } |
520 | - | |
521 | - /** | |
522 | - * @api {delete} /templates/:template/colaboradores/:colaborador Remover colaborador | |
523 | - * @apiName removeColaborador | |
524 | - * @apiGroup Colaborador | |
525 | - * @apiVersion 1.0.0 | |
526 | - * @apiPermission RO_ADMIN_TEMPLATE | |
527 | - * | |
528 | - * @apiDescription Remove colaborador de um template. | |
529 | - * | |
530 | - * @apiParam (Path Parameters) {String} template Identificador do template | |
531 | - * @apiParam (Path Parameters) {String} colaborador Identificador do colaborador | |
532 | - * | |
533 | - * @apiExample Exemplo de requisição: | |
534 | - * curl -X DELETE http://<host>/templates-broker/service/templates/confirmacao-cadastro/colaboradores/andre.guimaraes | |
535 | - * | |
536 | - * @apiSuccessExample {json} Success-Response: | |
537 | - * HTTP/1.1 200 OK | |
538 | - * | |
539 | - * @apiErrorExample {json} Error-Response: | |
540 | - * HTTP/1.1 500 Internal Server Error | |
541 | - * { | |
542 | - * "error":"Mensagem de erro." | |
543 | - * "code":"código do erro" | |
544 | - * } | |
545 | - */ | |
194 | + | |
546 | 195 | @DELETE |
547 | 196 | @Path("{template}/colaboradores/{colaborador}") |
548 | 197 | public Response removeColaborador(@PathParam("template") String template,@PathParam("colaborador") String nomeColaborador) throws ResourceNotFoundException{ |
... | ... | @@ -554,46 +203,7 @@ public class TemplateResource { |
554 | 203 | |
555 | 204 | return Response.ok().build(); |
556 | 205 | } |
557 | - | |
558 | - /** | |
559 | - * @api {get} /templates/:template/versoes Listar versões | |
560 | - * @apiName getVersoes | |
561 | - * @apiGroup Template | |
562 | - * @apiVersion 1.0.0 | |
563 | - * @apiPermission RO_ADMIN_TEMPLATE, RO_ADMIN_TEMPLATE | |
564 | - * | |
565 | - * @apiDescription Lista as versões de um template | |
566 | - * | |
567 | - * @apiParam (Path Parameters) {String} template Identificador do template | |
568 | - * | |
569 | - * @apiExample Exemplo de requisição: | |
570 | - * curl -i http://<host>/templates-broker/service/templates/confirmacao-cadastro/versoes | |
571 | - * | |
572 | - * @apiSuccess (Sucesso - 200) {List} resultado Lista com as versões do template. | |
573 | - * @apiSuccess (Sucesso - 200) {Versao} resultado.versao Objeto representando uma versão do template. | |
574 | - * @apiSuccess (Sucesso - 200) {String} resultado.versao.corpo Corpo do template, conteúdo que as aplicações usarão para preencher e exibir os dados. | |
575 | - * @apiSuccess (Sucesso - 200) {Date} resultado.versao.data Data da versão. | |
576 | - * @apiSuccess (Sucesso - 200) {String} resultado.versao.descricao Descrição do template. | |
577 | - * @apiSuccess (Sucesso - 200) {String} resultado.versao.exemplo Exemplo de request para preenchimento do template. | |
578 | - * @apiSuccess (Sucesso - 200) {String} resultado.versao.responsavel Identificador do colaborador responsável. | |
579 | - * | |
580 | - * @apiSuccessExample {json} Success-Response: | |
581 | - * HTTP/1.1 200 OK | |
582 | - * { | |
583 | - * "corpo": "Prezado {{fulano}}, seu cadastro foi realizado com sucesso.", | |
584 | - * "data":"2017-03-14T16:57:47.405-03:00", | |
585 | - * "descricao": "Template de confirmação de cadastro.", | |
586 | - * "exemplo": "{"fulano":"André Guimarães"}", | |
587 | - * "responsavel": "andre.guimaraes", | |
588 | - * } | |
589 | - * | |
590 | - * @apiErrorExample {json} Error-Response: | |
591 | - * HTTP/1.1 500 Internal Server Error | |
592 | - * { | |
593 | - * "error":"Mensagem de erro." | |
594 | - * "code":"código do erro" | |
595 | - * } | |
596 | - */ | |
206 | + | |
597 | 207 | @GET |
598 | 208 | @Path("{template}/versoes/") |
599 | 209 | @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) |
... | ... | @@ -610,31 +220,6 @@ public class TemplateResource { |
610 | 220 | return Response.ok().entity(entity).build(); |
611 | 221 | } |
612 | 222 | |
613 | - | |
614 | - /** | |
615 | - * @api {delete} /templates/excluidos/:template Recuperar template | |
616 | - * @apiName undeleteTemplate | |
617 | - * @apiGroup Template | |
618 | - * @apiVersion 1.0.0 | |
619 | - * @apiPermission RO_ADMIN_TEMPLATE | |
620 | - * | |
621 | - * @apiDescription Recupera um template excluído. | |
622 | - * | |
623 | - * @apiParam (Path Parameters) {String} template Identificador do template | |
624 | - * | |
625 | - * @apiExample Exemplo de requisição: | |
626 | - * curl -X DELETE http://<host>/templates-broker/service/templates/excluidos/admp-template-novo-usuario | |
627 | - * | |
628 | - * @apiSuccessExample {json} Success-Response: | |
629 | - * HTTP/1.1 200 OK | |
630 | - * | |
631 | - * @apiErrorExample {json} Error-Response: | |
632 | - * HTTP/1.1 500 Internal Server Error | |
633 | - * { | |
634 | - * "error":"Mensagem de erro." | |
635 | - * "code":"código do erro" | |
636 | - * } | |
637 | - */ | |
638 | 223 | @DELETE |
639 | 224 | @Path("excluidos/{template}") |
640 | 225 | @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) |
... | ... | @@ -647,54 +232,7 @@ public class TemplateResource { |
647 | 232 | |
648 | 233 | return Response.ok().build(); |
649 | 234 | } |
650 | - | |
651 | - /** | |
652 | - * @api {get} /templates Listar templates excluídos | |
653 | - * @apiName listTemplatesExcluidos | |
654 | - * @apiGroup Template | |
655 | - * @apiVersion 1.0.0 | |
656 | - * @apiPermission RO_ADMIN_TEMPLATE, RO_USUARIO_TEMPLATE | |
657 | - * | |
658 | - * @apiDescription Consulta os templates que foram excluídos. | |
659 | - * | |
660 | - * @apiParam (Query Parameters) {String} [filtro] Valor utilizado para filtrar os templates. | |
661 | - * @apiParam (Query Parameters) {String} [itens = 20] Quantidade de templates que serão exibidos | |
662 | - * @apiParam (Query Parameters) {String} [pag = 1] Número da página | |
663 | - * | |
664 | - * @apiExample Exemplo de requisição: | |
665 | - * curl -i http://<host>/templates-broker/service/templates | |
666 | - * | |
667 | - * @apiSuccess (Sucesso - 200) {List} resultado Lista com os templates encontrados. | |
668 | - * @apiSuccess (Sucesso - 200) {Template} resultado.template Objeto representando o template. | |
669 | - * @apiSuccess (Sucesso - 200) {String} resultado.template.corpo Corpo do template, conteúdo que as aplicações usarão para preencher e exibir os dados. | |
670 | - * @apiSuccess (Sucesso - 200) {String} resultado.template.dataCadastro Data de cadastro do template. | |
671 | - * @apiSuccess (Sucesso - 200) {String} resultado.template.dataCadastro Data de exclusao do template. | |
672 | - * @apiSuccess (Sucesso - 200) {String} resultado.template.descricao Descrição do template. | |
673 | - * @apiSuccess (Sucesso - 200) {String} resultado.template.exemplo Exemplo de request para preenchimento do template. | |
674 | - * @apiSuccess (Sucesso - 200) {String} resultado.template.nome Identificador do template | |
675 | - * @apiSuccess (Sucesso - 200) {String} resultado.template.responsavel Analista responsável pelo template. | |
676 | - * @apiSuccess (Sucesso - 200) {Boolean} resultado.template.restrito Flag identificando se a atualização deste template é restrita. | |
677 | - * | |
678 | - * @apiSuccessExample {json} Success-Response: | |
679 | - * HTTP/1.1 200 OK | |
680 | - * { | |
681 | - * "corpo": "Prezado {{fulano}}, seu cadastro foi realizado com sucesso.", | |
682 | - * "dataCadastro": "2017-03-14T16:57:47.405-03:00", | |
683 | - * "descricao": "Template de confirmação de cadastro.", | |
684 | - * "exemplo": "{"fulano":"André Guimarães"}", | |
685 | - * "nome": "confirmacao-cadastro", | |
686 | - * "responsavel": "andre.guimaraes", | |
687 | - * "restrito": false, | |
688 | - * "dataExclusao":"2017-08-14T16:57:47.405-03:00" | |
689 | - * } | |
690 | - * | |
691 | - * @apiErrorExample {json} Error-Response: | |
692 | - * HTTP/1.1 500 Internal Server Error | |
693 | - * { | |
694 | - * "error":"Mensagem de erro." | |
695 | - * "code":"código do erro" | |
696 | - * } | |
697 | - */ | |
235 | + | |
698 | 236 | @GET |
699 | 237 | @Path("excluidos") |
700 | 238 | @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) | ... | ... |
... | ... | @@ -0,0 +1,473 @@ |
1 | + /** | |
2 | + * @api {get} /templates Listar templates | |
3 | + * @apiName listTemplates | |
4 | + * @apiGroup Template | |
5 | + * @apiVersion 1.0.0 | |
6 | + * @apiPermission RO_ADMIN_TEMPLATE, RO_USUARIO_TEMPLATE | |
7 | + * | |
8 | + * @apiDescription Consulta os templates disponíveis. | |
9 | + * | |
10 | + * @apiParam (Query Parameters) {String} [filtro] Valor utilizado para filtrar os templates. | |
11 | + * @apiParam (Query Parameters) {String} [itens = 20] Quantidade de templates que serão exibidos | |
12 | + * @apiParam (Query Parameters) {String} [pag = 1] Número da página | |
13 | + * | |
14 | + * @apiExample Exemplo de requisição: | |
15 | + * curl -i http://<host>/templates-broker/service/templates | |
16 | + * | |
17 | + * @apiSuccess (Sucesso - 200) {List} resultado Lista com os templates encontrados. | |
18 | + * @apiSuccess (Sucesso - 200) {Template} resultado.template Objeto representando o template. | |
19 | + * @apiSuccess (Sucesso - 200) {String} resultado.template.corpo Corpo do template, conteúdo que as aplicações usarão para preencher e exibir os dados. | |
20 | + * @apiSuccess (Sucesso - 200) {String} resultado.template.dataCadastro Data de cadastro do template. | |
21 | + * @apiSuccess (Sucesso - 200) {String} resultado.template.descricao Descrição do template. | |
22 | + * @apiSuccess (Sucesso - 200) {String} resultado.template.exemplo Exemplo de request para preenchimento do template. | |
23 | + * @apiSuccess (Sucesso - 200) {String} resultado.template.nome Identificador do template | |
24 | + * @apiSuccess (Sucesso - 200) {String} resultado.template.responsavel Analista responsável pelo template. | |
25 | + * @apiSuccess (Sucesso - 200) {Boolean} resultado.template.restrito Flag identificando se a atualização deste template é restrita. | |
26 | + * | |
27 | + * @apiSuccessExample {json} Success-Response: | |
28 | + * HTTP/1.1 200 OK | |
29 | + * { | |
30 | + * "corpo": "Prezado {{fulano}}, seu cadastro foi realizado com sucesso.", | |
31 | + * "dataCadastro": "2017-03-14T16:57:47.405-03:00", | |
32 | + * "descricao": "Template de confirmação de cadastro.", | |
33 | + * "exemplo": "{"fulano":"André Guimarães"}", | |
34 | + * "nome": "confirmacao-cadastro", | |
35 | + * "responsavel": "andre.guimaraes", | |
36 | + * "restrito": false | |
37 | + * } | |
38 | + * | |
39 | + * @apiErrorExample {json} Error-Response: | |
40 | + * HTTP/1.1 500 Internal Server Error | |
41 | + * { | |
42 | + * "error":"Mensagem de erro." | |
43 | + * "code":"código do erro" | |
44 | + * } | |
45 | + */ | |
46 | + | |
47 | + /** | |
48 | + * @api {get} /templates/:template Consultar template | |
49 | + * @apiName getTemplate | |
50 | + * @apiGroup Template | |
51 | + * @apiVersion 1.0.0 | |
52 | + * @apiPermission RO_ADMIN_TEMPLATE, RO_USUARIO_TEMPLATE | |
53 | + * | |
54 | + * @apiDescription Consulta um template. | |
55 | + * | |
56 | + * @apiParam (Path Parameters) {String} template Identificador do template | |
57 | + * | |
58 | + * @apiExample Exemplo de requisição: | |
59 | + * curl -i http://<host>/templates-broker/service/templates/confirmacao-cadastro | |
60 | + * | |
61 | + * @apiSuccess (Sucesso - 200) {Template} template Objeto representando o template. | |
62 | + * @apiSuccess (Sucesso - 200) {String} template.corpo Corpo do template, conteúdo que as aplicações usarão para preencher e exibir os dados. | |
63 | + * @apiSuccess (Sucesso - 200) {String} template.dataCadastro Data de cadastro do template. | |
64 | + * @apiSuccess (Sucesso - 200) {String} template.descricao Descrição do template. | |
65 | + * @apiSuccess (Sucesso - 200) {String} template.exemplo Exemplo de request para preenchimento do template. | |
66 | + * @apiSuccess (Sucesso - 200) {String} template.nome Identificador do template. | |
67 | + * @apiSuccess (Sucesso - 200) {String} template.responsavel Analista responsável pelo template. | |
68 | + * @apiSuccess (Sucesso - 200) {Boolean} template.restrito Flag identificando se a atualização deste template é restrita. | |
69 | + * | |
70 | + * @apiSuccessExample {json} Success-Response: | |
71 | + * HTTP/1.1 200 OK | |
72 | + * { | |
73 | + * "corpo": "Prezado {{fulano}}, seu cadastro foi realizado com sucesso.", | |
74 | + * "dataCadastro": "2017-03-14T16:57:47.405-03:00", | |
75 | + * "descricao": "Template de confirmação de cadastro.", | |
76 | + * "exemplo": "{"fulano":"André Guimarães"}", | |
77 | + * "nome": "confirmacao-cadastro", | |
78 | + * "responsavel": "andre.guimaraes", | |
79 | + * "restrito": false, | |
80 | + * } | |
81 | + * | |
82 | + * @apiErrorExample {json} Error-Response: | |
83 | + * HTTP/1.1 500 Internal Server Error | |
84 | + * { | |
85 | + * "error":"Mensagem de erro." | |
86 | + * "code":"código do erro" | |
87 | + * } | |
88 | + */ | |
89 | + | |
90 | + /** | |
91 | + * @api {get} /templates/:template/corpo Recuperar corpo | |
92 | + * @apiName getCorpoTemplate | |
93 | + * @apiGroup Template | |
94 | + * @apiVersion 1.0.0 | |
95 | + * @apiPermission RO_ADMIN_TEMPLATE, RO_USUARIO_TEMPLATE | |
96 | + * | |
97 | + * @apiDescription Recupera o corpo de um template para utilização. | |
98 | + * | |
99 | + * @apiParam (Path Parameters) {String} template Identificador do template | |
100 | + * | |
101 | + * @apiExample Exemplo de requisição: | |
102 | + * curl -i http://<host>/templates-broker/service/templates/confirmacao-cadastro | |
103 | + * | |
104 | + * @apiSuccess (Sucesso - 200) {String} corpo String com o corpo do template pronto para utilização. | |
105 | + * | |
106 | + * @apiSuccessExample {json} Success-Response: | |
107 | + * HTTP/1.1 200 OK | |
108 | + * Prezado {{fulano}}, seu cadastro foi realizado com sucesso. | |
109 | + * | |
110 | + * @apiErrorExample {json} Error-Response: | |
111 | + * HTTP/1.1 500 Internal Server Error | |
112 | + * { | |
113 | + * "error":"Mensagem de erro." | |
114 | + * "code":"código do erro" | |
115 | + * } | |
116 | + */ | |
117 | + | |
118 | + /** | |
119 | + * @api {post} /templates Adicionar template | |
120 | + * @apiName createTemplate | |
121 | + * @apiGroup Template | |
122 | + * @apiVersion 1.0.0 | |
123 | + * @apiPermission RO_ADMIN_TEMPLATE | |
124 | + * | |
125 | + * @apiDescription Cria um novo template. | |
126 | + * | |
127 | + * @apiParam (Request Body) {Template} template Objeto de representação do template. | |
128 | + * @apiParam (Request Body) {String} corpo Corpo do template, conteúdo que as aplicações usarão para preencher e exibir os dados. | |
129 | + * @apiParam (Request Body) {String} descricao Descrição do template. | |
130 | + * @apiParam (Request Body) {String} exemplo Exemplo de request para preenchimento do template. | |
131 | + * @apiParam (Request Body) {String} nome Identificador do template. | |
132 | + * @apiParam (Request Body) {String} responsavel Analista responsável pelo template. | |
133 | + * @apiParam (Request Body) {String} restrito Flag identificando se a atualização deste template é restrita. | |
134 | + * | |
135 | + * @apiExample Exemplo de requisição: | |
136 | + * endpoint: [POST] http://<host>/templates-broker/service/templates/confirmacao-cadastro | |
137 | + * | |
138 | + * body: | |
139 | + * { | |
140 | + * "corpo": "Prezado {{fulano}}, seu cadastro foi realizado com sucesso.", | |
141 | + * "descricao": "Template de confirmação de cadastro.", | |
142 | + * "exemplo": "{"fulano":"André Guimarães"}", | |
143 | + * "nome": "confirmacao-cadastro", | |
144 | + * "responsavel": "andre.guimaraes", | |
145 | + * "restrito": true, | |
146 | + * } | |
147 | + * | |
148 | + * @apiSuccess (Sucesso - 201) {header} Location Caminho para o recurso criado. | |
149 | + * | |
150 | + * @apiSuccessExample {json} Success-Response: | |
151 | + * HTTP/1.1 201 Created | |
152 | + * | |
153 | + * @apiErrorExample {json} Error-Response: | |
154 | + * HTTP/1.1 500 Internal Server Error | |
155 | + * { | |
156 | + * "error":"Mensagem de erro." | |
157 | + * "code":"código do erro" | |
158 | + * } | |
159 | + */ | |
160 | + | |
161 | + /** | |
162 | + * @api {put} /templates/:template Atualizar template | |
163 | + * @apiName editTemplate | |
164 | + * @apiGroup Template | |
165 | + * @apiVersion 1.0.0 | |
166 | + * @apiPermission RO_ADMIN_TEMPLATE | |
167 | + * | |
168 | + * @apiDescription Atualiza um template. | |
169 | + * | |
170 | + * @apiParam (Path Parameters) {String} template Identificador do template | |
171 | + * | |
172 | + * @apiParam (Request Body) {Template} template Objeto de representação do template. | |
173 | + * @apiParam (Request Body) {String} corpo Corpo do template, conteúdo que as aplicações usarão para preencher e exibir os dados. | |
174 | + * @apiParam (Request Body) {String} descricao Descrição do template. | |
175 | + * @apiParam (Request Body) {String} exemplo Exemplo de request para preenchimento do template. | |
176 | + * @apiParam (Request Body) {String} nome Identificador do template. | |
177 | + * @apiParam (Request Body) {String} responsavel Analista responsável pelo template. | |
178 | + * @apiParam (Request Body) {String} restrito Flag identificando se a atualização deste template é restrita. | |
179 | + * | |
180 | + * @apiExample Exemplo de requisição: | |
181 | + * endpoint: [PUT] http://<host>/templates-broker/service/templates/confirmacao-cadastro | |
182 | + * | |
183 | + * body: | |
184 | + * { | |
185 | + * "corpo": "Prezado {{fulano}}, seu cadastro foi realizado com sucesso.", | |
186 | + * "descricao": "Template de confirmação de cadastro.", | |
187 | + * "exemplo": "{"fulano":"André Guimarães"}", | |
188 | + * "nome": "confirmacao-cadastro", | |
189 | + * "responsavel": "andre.guimaraes", | |
190 | + * "restrito": true, | |
191 | + * } | |
192 | + * | |
193 | + * | |
194 | + * @apiSuccess (Sucesso - 200) {header} Location Caminho para o recurso editado. | |
195 | + * | |
196 | + * @apiSuccessExample {json} Success-Response: | |
197 | + * HTTP/1.1 200 OK | |
198 | + * | |
199 | + * @apiErrorExample {json} Error-Response: | |
200 | + * HTTP/1.1 500 Internal Server Error | |
201 | + * { | |
202 | + * "error":"Mensagem de erro." | |
203 | + * "code":"código do erro" | |
204 | + * } | |
205 | + */ | |
206 | + | |
207 | + /** | |
208 | + * @api {delete} /templates/:template Excluir template | |
209 | + * @apiName deleteTemplate | |
210 | + * @apiGroup Template | |
211 | + * @apiVersion 1.0.0 | |
212 | + * @apiPermission RO_ADMIN_TEMPLATE | |
213 | + * | |
214 | + * @apiDescription Exclui determinado template. | |
215 | + * | |
216 | + * @apiParam (Path Parameters) {String} template Identificador do template | |
217 | + * | |
218 | + * @apiExample Exemplo de requisição: | |
219 | + * curl -X DELETE http://<host>/templates-broker/service/templates/confirmacao-cadastro | |
220 | + * | |
221 | + * @apiSuccessExample {json} Success-Response: | |
222 | + * HTTP/1.1 200 OK | |
223 | + * | |
224 | + * @apiErrorExample {json} Error-Response: | |
225 | + * HTTP/1.1 500 Internal Server Error | |
226 | + * { | |
227 | + * "error":"Mensagem de erro." | |
228 | + * "code":"código do erro" | |
229 | + * } | |
230 | + */ | |
231 | + | |
232 | + /** | |
233 | + * @api {get} /templates/:template/colaboradores Listar colaboradores | |
234 | + * @apiName getColaboradores | |
235 | + * @apiGroup Colaborador | |
236 | + * @apiVersion 1.0.0 | |
237 | + * @apiPermission RO_ADMIN_TEMPLATE, RO_USUARIO_TEMPLATE | |
238 | + * | |
239 | + * @apiDescription Consulta os colaboradores do template. | |
240 | + * | |
241 | + * @apiParam (Path Parameters) {String} template Identificador do template | |
242 | + * | |
243 | + * @apiParam (Query Parameters) {String} [itens = 20] Quantidade de templates que serão exibidos | |
244 | + * @apiParam (Query Parameters) {String} [pag = 1] Número da página | |
245 | + * | |
246 | + * @apiExample Exemplo de requisição: | |
247 | + * curl -i http://<host>/templates-broker/service/templates/confirmacao-cadastro/colaboradores | |
248 | + * | |
249 | + * @apiSuccess (Sucesso - 200) {List} resultado Lista com os colaboradores do template. | |
250 | + * @apiSuccess (Sucesso - 200) {Colaborador} resultado.colaborador Objeto representando um colaborador. | |
251 | + * @apiSuccess (Sucesso - 200) {String} resultado.colaborador.usuario Identificador do colaborador. | |
252 | + * @apiSuccess (Sucesso - 200) {Boolean} resultado.colaborador.editor Flag que determina se o colaborador tem o poder para editar o template. | |
253 | + * | |
254 | + * @apiSuccessExample {json} Success-Response: | |
255 | + * HTTP/1.1 200 OK | |
256 | + * { | |
257 | + * "editor": true, | |
258 | + * "usuario": "andre.guimaraes", | |
259 | + * } | |
260 | + * | |
261 | + * @apiErrorExample {json} Error-Response: | |
262 | + * HTTP/1.1 500 Internal Server Error | |
263 | + * { | |
264 | + * "error":"Mensagem de erro." | |
265 | + * "code":"código do erro" | |
266 | + * } | |
267 | + */ | |
268 | + | |
269 | + /** | |
270 | + * @api {get} /templates/:template/colaboradores/:colaborador Consultar colaborador | |
271 | + * @apiName getColaborador | |
272 | + * @apiGroup Colaborador | |
273 | + * @apiVersion 1.0.0 | |
274 | + * @apiPermission RO_ADMIN_TEMPLATE, RO_USUARIO_TEMPLATE | |
275 | + * | |
276 | + * @apiDescription Consulta um colaborador. | |
277 | + * | |
278 | + * @apiParam (Path Parameters) {String} template Identificador do template | |
279 | + * @apiParam (Path Parameters) {String} colaborador Identificador do colaborador | |
280 | + * | |
281 | + * @apiExample Exemplo de requisição: | |
282 | + * curl -i http://<host>/templates-broker/service/templates/confirmacao-cadastro/colaboradores/andre.guimaraes | |
283 | + * | |
284 | + * @apiSuccess (Sucesso - 200) {Colaborador} colaborador Objeto representando um colaborador. | |
285 | + * @apiSuccess (Sucesso - 200) {String} colaborador.usuario Identificador do colaborador. | |
286 | + * @apiSuccess (Sucesso - 200) {Boolean} colaborador.editor Flag que determina se o colaborador tem o poder para editar o template. | |
287 | + * | |
288 | + * @apiSuccessExample {json} Success-Response: | |
289 | + * HTTP/1.1 200 OK | |
290 | + * { | |
291 | + * "editor": true, | |
292 | + * "usuario": "andre.guimaraes" | |
293 | + * } | |
294 | + * | |
295 | + * @apiErrorExample {json} Error-Response: | |
296 | + * HTTP/1.1 500 Internal Server Error | |
297 | + * { | |
298 | + * "error":"Mensagem de erro." | |
299 | + * "code":"código do erro" | |
300 | + * } | |
301 | + */ | |
302 | + | |
303 | + /** | |
304 | + * @api {post} /templates/:template/colaboradores Adicionar colaborador | |
305 | + * @apiName addColaborador | |
306 | + * @apiGroup Colaborador | |
307 | + * @apiVersion 1.0.0 | |
308 | + * @apiPermission RO_ADMIN_TEMPLATE | |
309 | + * | |
310 | + * @apiDescription Adiciona um colaborador ao template. | |
311 | + * | |
312 | + * @apiParam (Path Parameters) {String} template Identificador do template | |
313 | + * | |
314 | + * @apiExample Exemplo de requisição: | |
315 | + * endpoint: [POST] http://<host>/templates-broker/service/templates/confirmacao-cadastro/colaboradores | |
316 | + * | |
317 | + * body: | |
318 | + * { | |
319 | + * "usuario": "andre.guimaraes", | |
320 | + * "editor": true | |
321 | + * } | |
322 | + * | |
323 | + * @apiSuccess (Sucesso - 201) {header} Location Caminho para o recurso criado. | |
324 | + * | |
325 | + * @apiSuccessExample {json} Success-Response: | |
326 | + * HTTP/1.1 201 Created | |
327 | + * | |
328 | + * @apiErrorExample {json} Error-Response: | |
329 | + * HTTP/1.1 500 Internal Server Error | |
330 | + * { | |
331 | + * "error":"Mensagem de erro." | |
332 | + * "code":"código do erro" | |
333 | + * } | |
334 | + */ | |
335 | + | |
336 | + /** | |
337 | + * @api {delete} /templates/:template/colaboradores/:colaborador Remover colaborador | |
338 | + * @apiName removeColaborador | |
339 | + * @apiGroup Colaborador | |
340 | + * @apiVersion 1.0.0 | |
341 | + * @apiPermission RO_ADMIN_TEMPLATE | |
342 | + * | |
343 | + * @apiDescription Remove colaborador de um template. | |
344 | + * | |
345 | + * @apiParam (Path Parameters) {String} template Identificador do template | |
346 | + * @apiParam (Path Parameters) {String} colaborador Identificador do colaborador | |
347 | + * | |
348 | + * @apiExample Exemplo de requisição: | |
349 | + * curl -X DELETE http://<host>/templates-broker/service/templates/confirmacao-cadastro/colaboradores/andre.guimaraes | |
350 | + * | |
351 | + * @apiSuccessExample {json} Success-Response: | |
352 | + * HTTP/1.1 200 OK | |
353 | + * | |
354 | + * @apiErrorExample {json} Error-Response: | |
355 | + * HTTP/1.1 500 Internal Server Error | |
356 | + * { | |
357 | + * "error":"Mensagem de erro." | |
358 | + * "code":"código do erro" | |
359 | + * } | |
360 | + */ | |
361 | + | |
362 | + /** | |
363 | + * @api {get} /templates/:template/versoes Listar versões | |
364 | + * @apiName getVersoes | |
365 | + * @apiGroup Template | |
366 | + * @apiVersion 1.0.0 | |
367 | + * @apiPermission RO_ADMIN_TEMPLATE, RO_ADMIN_TEMPLATE | |
368 | + * | |
369 | + * @apiDescription Lista as versões de um template | |
370 | + * | |
371 | + * @apiParam (Path Parameters) {String} template Identificador do template | |
372 | + * | |
373 | + * @apiExample Exemplo de requisição: | |
374 | + * curl -i http://<host>/templates-broker/service/templates/confirmacao-cadastro/versoes | |
375 | + * | |
376 | + * @apiSuccess (Sucesso - 200) {List} resultado Lista com as versões do template. | |
377 | + * @apiSuccess (Sucesso - 200) {Versao} resultado.versao Objeto representando uma versão do template. | |
378 | + * @apiSuccess (Sucesso - 200) {String} resultado.versao.corpo Corpo do template, conteúdo que as aplicações usarão para preencher e exibir os dados. | |
379 | + * @apiSuccess (Sucesso - 200) {Date} resultado.versao.data Data da versão. | |
380 | + * @apiSuccess (Sucesso - 200) {String} resultado.versao.descricao Descrição do template. | |
381 | + * @apiSuccess (Sucesso - 200) {String} resultado.versao.exemplo Exemplo de request para preenchimento do template. | |
382 | + * @apiSuccess (Sucesso - 200) {String} resultado.versao.responsavel Identificador do colaborador responsável. | |
383 | + * | |
384 | + * @apiSuccessExample {json} Success-Response: | |
385 | + * HTTP/1.1 200 OK | |
386 | + * { | |
387 | + * "corpo": "Prezado {{fulano}}, seu cadastro foi realizado com sucesso.", | |
388 | + * "data":"2017-03-14T16:57:47.405-03:00", | |
389 | + * "descricao": "Template de confirmação de cadastro.", | |
390 | + * "exemplo": "{"fulano":"André Guimarães"}", | |
391 | + * "responsavel": "andre.guimaraes", | |
392 | + * } | |
393 | + * | |
394 | + * @apiErrorExample {json} Error-Response: | |
395 | + * HTTP/1.1 500 Internal Server Error | |
396 | + * { | |
397 | + * "error":"Mensagem de erro." | |
398 | + * "code":"código do erro" | |
399 | + * } | |
400 | + */ | |
401 | + | |
402 | + /** | |
403 | + * @api {delete} /templates/excluidos/:template Recuperar template | |
404 | + * @apiName undeleteTemplate | |
405 | + * @apiGroup Template | |
406 | + * @apiVersion 1.0.0 | |
407 | + * @apiPermission RO_ADMIN_TEMPLATE | |
408 | + * | |
409 | + * @apiDescription Recupera um template excluído. | |
410 | + * | |
411 | + * @apiParam (Path Parameters) {String} template Identificador do template | |
412 | + * | |
413 | + * @apiExample Exemplo de requisição: | |
414 | + * curl -X DELETE http://<host>/templates-broker/service/templates/excluidos/admp-template-novo-usuario | |
415 | + * | |
416 | + * @apiSuccessExample {json} Success-Response: | |
417 | + * HTTP/1.1 200 OK | |
418 | + * | |
419 | + * @apiErrorExample {json} Error-Response: | |
420 | + * HTTP/1.1 500 Internal Server Error | |
421 | + * { | |
422 | + * "error":"Mensagem de erro." | |
423 | + * "code":"código do erro" | |
424 | + * } | |
425 | + */ | |
426 | + | |
427 | + /** | |
428 | + * @api {get} /templates Listar templates excluídos | |
429 | + * @apiName listTemplatesExcluidos | |
430 | + * @apiGroup Template | |
431 | + * @apiVersion 1.0.0 | |
432 | + * @apiPermission RO_ADMIN_TEMPLATE, RO_USUARIO_TEMPLATE | |
433 | + * | |
434 | + * @apiDescription Consulta os templates que foram excluídos. | |
435 | + * | |
436 | + * @apiParam (Query Parameters) {String} [filtro] Valor utilizado para filtrar os templates. | |
437 | + * @apiParam (Query Parameters) {String} [itens = 20] Quantidade de templates que serão exibidos | |
438 | + * @apiParam (Query Parameters) {String} [pag = 1] Número da página | |
439 | + * | |
440 | + * @apiExample Exemplo de requisição: | |
441 | + * curl -i http://<host>/templates-broker/service/templates | |
442 | + * | |
443 | + * @apiSuccess (Sucesso - 200) {List} resultado Lista com os templates encontrados. | |
444 | + * @apiSuccess (Sucesso - 200) {Template} resultado.template Objeto representando o template. | |
445 | + * @apiSuccess (Sucesso - 200) {String} resultado.template.corpo Corpo do template, conteúdo que as aplicações usarão para preencher e exibir os dados. | |
446 | + * @apiSuccess (Sucesso - 200) {String} resultado.template.dataCadastro Data de cadastro do template. | |
447 | + * @apiSuccess (Sucesso - 200) {String} resultado.template.dataCadastro Data de exclusao do template. | |
448 | + * @apiSuccess (Sucesso - 200) {String} resultado.template.descricao Descrição do template. | |
449 | + * @apiSuccess (Sucesso - 200) {String} resultado.template.exemplo Exemplo de request para preenchimento do template. | |
450 | + * @apiSuccess (Sucesso - 200) {String} resultado.template.nome Identificador do template | |
451 | + * @apiSuccess (Sucesso - 200) {String} resultado.template.responsavel Analista responsável pelo template. | |
452 | + * @apiSuccess (Sucesso - 200) {Boolean} resultado.template.restrito Flag identificando se a atualização deste template é restrita. | |
453 | + * | |
454 | + * @apiSuccessExample {json} Success-Response: | |
455 | + * HTTP/1.1 200 OK | |
456 | + * { | |
457 | + * "corpo": "Prezado {{fulano}}, seu cadastro foi realizado com sucesso.", | |
458 | + * "dataCadastro": "2017-03-14T16:57:47.405-03:00", | |
459 | + * "descricao": "Template de confirmação de cadastro.", | |
460 | + * "exemplo": "{"fulano":"André Guimarães"}", | |
461 | + * "nome": "confirmacao-cadastro", | |
462 | + * "responsavel": "andre.guimaraes", | |
463 | + * "restrito": false, | |
464 | + * "dataExclusao":"2017-08-14T16:57:47.405-03:00" | |
465 | + * } | |
466 | + * | |
467 | + * @apiErrorExample {json} Error-Response: | |
468 | + * HTTP/1.1 500 Internal Server Error | |
469 | + * { | |
470 | + * "error":"Mensagem de erro." | |
471 | + * "code":"código do erro" | |
472 | + * } | |
473 | + */ | ... | ... |
src/main/resources/messages.properties
1 | 1 | erro.colaborador.nao.encontrado = O usuário {0} não é um colaborador deste template. |
2 | 2 | erro.interno = Ocorreu um erro interno no templates-broker, contacte os responsáveis. |
3 | +erro.servico.nao.implementado = Serviço não implementado. | |
3 | 4 | erro.template.existente = Já existe um template identificado com o nome {0}. |
4 | 5 | erro.template.nao.encontrado = Template {0} não encontrado. |
5 | 6 | erro.validar = Erro ao validar - | ... | ... |