Commit 0fd5cbb2e3529a37c4c0f625b48de31323330f3f
1 parent
3c4951b9
Changements API & /consommation
Showing
4 changed files
with
198 additions
and
174 deletions
Show diff stats
api.raml
@@ -51,53 +51,68 @@ version: v1 | @@ -51,53 +51,68 @@ version: v1 | ||
51 | responses: | 51 | responses: |
52 | 204: | 52 | 204: |
53 | description: Déconnecté avec succès | 53 | description: Déconnecté avec succès |
54 | - 404: | ||
55 | - description: Jeton non trouvé | ||
56 | /personne: | 54 | /personne: |
57 | get: | 55 | get: |
58 | - description: Obtenir la liste des persones. Nécessite COMPTE_ADMIN | 56 | + description: Obtenir la liste des persones. Nécessite PERSONNE_LIST. |
59 | responses: | 57 | responses: |
60 | 200: | 58 | 200: |
61 | body: | 59 | body: |
62 | application/json: | 60 | application/json: |
63 | - example: | | ||
64 | - [ | ||
65 | - { | ||
66 | - "id": 42, | ||
67 | - "carte": "AAAAA", | ||
68 | - "naissance": "855874800000", | ||
69 | - "solde": 1337, | ||
70 | - "login": "gbontoux", | ||
71 | - "role": "etudiant" | 61 | + post: |
62 | + description: Ajoute une nouvelle personne. Nécessite PERSONNE_ADD. | ||
63 | + body: | ||
64 | + application/json: | ||
65 | + schema: | | ||
66 | + { | ||
67 | + "type": "object", | ||
68 | + "$schema": "http://json-schema.org/draft-03/schema", | ||
69 | + "id": "http://jsonschema.net", | ||
70 | + "required": true, | ||
71 | + "properties": { | ||
72 | + "carte": { | ||
73 | + "type": "string", | ||
74 | + "required": false, | ||
75 | + "minLength": 14, | ||
76 | + "maxLength": 14 | ||
77 | + }, | ||
78 | + "naissance": { | ||
79 | + "type": "string", | ||
80 | + "required": false, | ||
81 | + "format": "date" | ||
82 | + }, | ||
83 | + "login": { | ||
84 | + "type": "string", | ||
85 | + "required": false | ||
86 | + }, | ||
87 | + "role": { | ||
88 | + "type": "role", | ||
89 | + "required": false | ||
90 | + } | ||
72 | } | 91 | } |
73 | - ] | 92 | + } |
93 | + responses: | ||
94 | + 201: | ||
95 | + description: Personne ajoutée avec succès | ||
96 | + body: | ||
97 | + application/json: | ||
74 | /{idPersonne}: | 98 | /{idPersonne}: |
75 | uriParameters: | 99 | uriParameters: |
76 | idPersonne: | 100 | idPersonne: |
77 | - type: number | 101 | + type: integer |
78 | required: true | 102 | required: true |
79 | description: ID de la personne | 103 | description: ID de la personne |
80 | minimum: 0 | 104 | minimum: 0 |
81 | get: | 105 | get: |
82 | - description: Obtenir les infos sur une personne. Nécessite COMPTE_ADMIN | 106 | + description: Obtenir les infos sur une personne. Nécessite PERSONNE_GET |
83 | responses: | 107 | responses: |
84 | 200: | 108 | 200: |
85 | description: Utilisateur récupéré | 109 | description: Utilisateur récupéré |
86 | body: | 110 | body: |
87 | application/json: | 111 | application/json: |
88 | - example: | | ||
89 | - { | ||
90 | - "id": 42, | ||
91 | - "carte": "AAAAA", | ||
92 | - "naissance": "855874800000", | ||
93 | - "solde": 1337, | ||
94 | - "login": "gbontoux", | ||
95 | - "role": "etudiant" | ||
96 | - } | ||
97 | 404: | 112 | 404: |
98 | description: Utilisateur non trouvé | 113 | description: Utilisateur non trouvé |
99 | put: | 114 | put: |
100 | - description: Modifer les infos d'une personne. Nécessite COMPTE_ADMIN | 115 | + description: Modifer les infos d'une personne. Nécessite PERSONNE_EDIT |
101 | body: | 116 | body: |
102 | application/json: | 117 | application/json: |
103 | schema: | | 118 | schema: | |
@@ -134,56 +149,39 @@ version: v1 | @@ -134,56 +149,39 @@ version: v1 | ||
134 | 404: | 149 | 404: |
135 | description: Utilisateur non trouvé | 150 | description: Utilisateur non trouvé |
136 | delete: | 151 | delete: |
137 | - description: Obtenir les infos sur une personne. Nécessite COMPTE_ADMIN | 152 | + description: Supprime une personne. Nécessite PERSONNE_REMOVE |
138 | responses: | 153 | responses: |
139 | 204: | 154 | 204: |
140 | description: Utilisateur supprimé | 155 | description: Utilisateur supprimé |
141 | 404: | 156 | 404: |
142 | description: Utilisateur non trouvé | 157 | description: Utilisateur non trouvé |
143 | - post: | ||
144 | - description: Ajoute une nouvelle personne | ||
145 | - body: | ||
146 | - application/json: | ||
147 | - schema: | | ||
148 | - { | ||
149 | - "type": "object", | ||
150 | - "$schema": "http://json-schema.org/draft-03/schema", | ||
151 | - "id": "http://jsonschema.net", | ||
152 | - "required": true, | ||
153 | - "properties": { | ||
154 | - "carte": { | ||
155 | - "type": "string", | ||
156 | - "required": false, | ||
157 | - "minLength": 14, | ||
158 | - "maxLength": 14 | ||
159 | - }, | ||
160 | - "naissance": { | ||
161 | - "type": "string", | ||
162 | - "required": false, | ||
163 | - "format": "date" | ||
164 | - }, | ||
165 | - "login": { | ||
166 | - "type": "string", | ||
167 | - "required": false | ||
168 | - }, | ||
169 | - "role": { | ||
170 | - "type": "role", | ||
171 | - "required": false | ||
172 | - } | ||
173 | - } | ||
174 | - } | ||
175 | - responses: | ||
176 | - 201: | ||
177 | - description: Personne ajoutée avec succès | 158 | + /virer: |
159 | + post: | ||
160 | + description: Permet de créditer ou débiter un compte | ||
178 | body: | 161 | body: |
179 | application/json: | 162 | application/json: |
180 | - example: | | 163 | + schema: | |
181 | { | 164 | { |
182 | - "id": 42 | 165 | + "type": "object", |
166 | + "$schema": "http://json-schema.org/draft-03/schema", | ||
167 | + "id": "http://jsonschema.net", | ||
168 | + "required": true, | ||
169 | + "properties": { | ||
170 | + "prix": { | ||
171 | + "type": "number", | ||
172 | + "required": true | ||
173 | + } | ||
174 | + } | ||
183 | } | 175 | } |
176 | + responses: | ||
177 | + 201: | ||
178 | + description: La personne a bien été virée | ||
179 | + 406: | ||
180 | + description: La personne n'a pas assez de fonds pour être débitée | ||
181 | + | ||
184 | /role: | 182 | /role: |
185 | get: | 183 | get: |
186 | - description: Liste les rôles. Nécessite ROLE_ADMIN | 184 | + description: Liste les rôles. Nécessite ROLE_LIST |
187 | responses: | 185 | responses: |
188 | 200: | 186 | 200: |
189 | body: | 187 | body: |
@@ -198,16 +196,16 @@ version: v1 | @@ -198,16 +196,16 @@ version: v1 | ||
198 | "nom": "bde", | 196 | "nom": "bde", |
199 | "permissions": [ | 197 | "permissions": [ |
200 | { | 198 | { |
201 | - "nom": "CREER_EVNMT" | 199 | + "nom": "EVNMT_ADD" |
202 | }, | 200 | }, |
203 | { | 201 | { |
204 | - "nom": "SUPPRIMER_EVNMT" | 202 | + "nom": "EVNMT_REMOVE" |
205 | } | 203 | } |
206 | ] | 204 | ] |
207 | } | 205 | } |
208 | ] | 206 | ] |
209 | post: | 207 | post: |
210 | - description: Ajoute un nouveau rôle. Nécessite ROLE_ADMIN | 208 | + description: Ajoute un nouveau rôle. Nécessite ROLE_ADD |
211 | body: | 209 | body: |
212 | application/json: | 210 | application/json: |
213 | schema: | | 211 | schema: | |
@@ -236,14 +234,14 @@ version: v1 | @@ -236,14 +234,14 @@ version: v1 | ||
236 | required: true | 234 | required: true |
237 | description: Nom du role | 235 | description: Nom du role |
238 | delete: | 236 | delete: |
239 | - description: Supprime un rôle. Nécessite ROLE_ADMIN | 237 | + description: Supprime un rôle. Nécessite ROLE_REMOVE |
240 | responses: | 238 | responses: |
241 | 204: | 239 | 204: |
242 | description: Rôle supprimé | 240 | description: Rôle supprimé |
243 | 404: | 241 | 404: |
244 | description: Rôle inconnu | 242 | description: Rôle inconnu |
245 | post: | 243 | post: |
246 | - description: Ajoute une permission à un rôle. Nécessite ROLE_ADMIN | 244 | + description: Ajoute une permission à un rôle. Nécessite ROLE_PERMISSION_ADD |
247 | body: | 245 | body: |
248 | application/json: | 246 | application/json: |
249 | schema: | | 247 | schema: | |
@@ -255,7 +253,8 @@ version: v1 | @@ -255,7 +253,8 @@ version: v1 | ||
255 | "properties": { | 253 | "properties": { |
256 | "nom": { | 254 | "nom": { |
257 | "type": "string", | 255 | "type": "string", |
258 | - "required": true | 256 | + "required": true, |
257 | + "minLength": 3 | ||
259 | } | 258 | } |
260 | } | 259 | } |
261 | } | 260 | } |
@@ -269,9 +268,9 @@ version: v1 | @@ -269,9 +268,9 @@ version: v1 | ||
269 | nomPermission: | 268 | nomPermission: |
270 | type: string | 269 | type: string |
271 | required: true | 270 | required: true |
272 | - description: nom de la permission | 271 | + description: Nom de la permission |
273 | delete: | 272 | delete: |
274 | - description: Enlève la permission du rôle. Nécessite ROLE_ADMIN | 273 | + description: Enlève la permission du rôle. Nécessite ROLE_PERMISSION_REMOVE |
275 | responses: | 274 | responses: |
276 | 204: | 275 | 204: |
277 | description: Permission enlevée avec succès | 276 | description: Permission enlevée avec succès |
@@ -279,7 +278,7 @@ version: v1 | @@ -279,7 +278,7 @@ version: v1 | ||
279 | description: Permission ou rôle inconnu | 278 | description: Permission ou rôle inconnu |
280 | /permission: | 279 | /permission: |
281 | get: | 280 | get: |
282 | - description: Liste les permissions. Nécessite ROLE_ADMIN | 281 | + description: Liste les permissions. Nécessite ROLE_LIST |
283 | responses: | 282 | responses: |
284 | 200: | 283 | 200: |
285 | body: | 284 | body: |
@@ -295,7 +294,7 @@ version: v1 | @@ -295,7 +294,7 @@ version: v1 | ||
295 | ] | 294 | ] |
296 | /evenement: | 295 | /evenement: |
297 | get: | 296 | get: |
298 | - description: Obtenir la liste de tout les evenements. Nécessite EVNMT_ADMIN ou EVNMT_ACHETER ou EVNMT_REMBOURSER | 297 | + description: Obtenir la liste de tout les evenements. Nécessite EVNMT_LIST |
299 | responses: | 298 | responses: |
300 | 200: | 299 | 200: |
301 | body: | 300 | body: |
@@ -304,19 +303,19 @@ version: v1 | @@ -304,19 +303,19 @@ version: v1 | ||
304 | [ | 303 | [ |
305 | { | 304 | { |
306 | "id": 1, | 305 | "id": 1, |
307 | - "nom": "patate", | 306 | + "nom": "WEC", |
308 | "prix": 4, | 307 | "prix": 4, |
309 | "date": "2001-09-11" | 308 | "date": "2001-09-11" |
310 | }, | 309 | }, |
311 | { | 310 | { |
312 | "id": 2, | 311 | "id": 2, |
313 | - "nom": "patate flambe", | 312 | + "nom": "MidWork", |
314 | "prix": 5, | 313 | "prix": 5, |
315 | "date": "2001-09-11" | 314 | "date": "2001-09-11" |
316 | } | 315 | } |
317 | ] | 316 | ] |
318 | post: | 317 | post: |
319 | - description: Permet de creer un nouvel evenement. Nécessite EVNMT_ADMIN | 318 | + description: Permet de creer un nouvel evenement. Nécessite EVNMT_ADD |
320 | body: | 319 | body: |
321 | application/json: | 320 | application/json: |
322 | schema: | | 321 | schema: | |
@@ -343,16 +342,16 @@ version: v1 | @@ -343,16 +342,16 @@ version: v1 | ||
343 | } | 342 | } |
344 | responses: | 343 | responses: |
345 | 201: | 344 | 201: |
346 | - | ||
347 | - /{evenementId}: | 345 | + description: L'évènement a bien été créé |
346 | + /{idEvenement}: | ||
348 | uriParameters: | 347 | uriParameters: |
349 | evenementId: | 348 | evenementId: |
350 | type: integer | 349 | type: integer |
351 | required: true | 350 | required: true |
352 | - description: id de l'evenement | 351 | + description: ID de l'evenement |
353 | minimum: 0 | 352 | minimum: 0 |
354 | put: | 353 | put: |
355 | - description: Permet de modifier un évènement existant. Nécessite EVNMT_ADMIN | 354 | + description: Permet de modifier un évènement existant. Nécessite EVNMT_EDIT |
356 | body: | 355 | body: |
357 | application/json: | 356 | application/json: |
358 | schema: | | 357 | schema: | |
@@ -375,15 +374,15 @@ version: v1 | @@ -375,15 +374,15 @@ version: v1 | ||
375 | "required": false, | 374 | "required": false, |
376 | "format": "date" | 375 | "format": "date" |
377 | } | 376 | } |
378 | - } | 377 | + } |
379 | } | 378 | } |
380 | responses: | 379 | responses: |
381 | 202: | 380 | 202: |
382 | - description: Modification pris en compte | 381 | + description: Évènement modifié |
383 | 404: | 382 | 404: |
384 | description: L'evenement n'existe pas | 383 | description: L'evenement n'existe pas |
385 | get: | 384 | get: |
386 | - description: Obtenir l'evenement {evenementId}. Nécessite EVNMT_ADMIN ou EVNMT_ACHETER ou EVNMT_REMBOURSER | 385 | + description: Affiche l'évènement. Nécessite EVNMT_GET |
387 | responses: | 386 | responses: |
388 | 200: | 387 | 200: |
389 | body: | 388 | body: |
@@ -392,7 +391,7 @@ version: v1 | @@ -392,7 +391,7 @@ version: v1 | ||
392 | [ | 391 | [ |
393 | { | 392 | { |
394 | "id": 1, | 393 | "id": 1, |
395 | - "nom": "patate", | 394 | + "nom": "WEC", |
396 | "prix": 4, | 395 | "prix": 4, |
397 | "date": "2001-09-11" | 396 | "date": "2001-09-11" |
398 | } | 397 | } |
@@ -400,13 +399,13 @@ version: v1 | @@ -400,13 +399,13 @@ version: v1 | ||
400 | 404: | 399 | 404: |
401 | description: Evenement non existant | 400 | description: Evenement non existant |
402 | delete: | 401 | delete: |
403 | - description: Permet de supprimer l'evenement {evenementId}. Nécessite EVNMT_ADMIN | 402 | + description: Permet de supprimer l'evenement {evenementId}. Nécessite EVNMT_REMOVE |
404 | responses: | 403 | responses: |
405 | 200: | 404 | 200: |
406 | description: L'evenement a été bien supprimé | 405 | description: L'evenement a été bien supprimé |
407 | /participe: | 406 | /participe: |
408 | post: | 407 | post: |
409 | - description: Permet de notifier que quelqu'un a participer à l'evenement (id de la personne a envoyer) | 408 | + description: Enregistre la participation de quelqu'un à un évènement |
410 | body: | 409 | body: |
411 | application/json: | 410 | application/json: |
412 | schema: | | 411 | schema: | |
@@ -424,12 +423,37 @@ version: v1 | @@ -424,12 +423,37 @@ version: v1 | ||
424 | } | 423 | } |
425 | responses: | 424 | responses: |
426 | 201: | 425 | 201: |
427 | - description: La personne est bien inscrite a cet evenement ou a bien était ajouté a la liste des participant | 426 | + description: La participation a bien été enregistrée |
428 | 402: | 427 | 402: |
429 | - description: La personne n'a pas payé pour participer à l'evenement | 428 | + description: La personne n'a pas payé pour participer à l'évènement |
429 | + /reserve: | ||
430 | + post: | ||
431 | + description: Payer pour un évènement | ||
432 | + body: | ||
433 | + application/json: | ||
434 | + schema: | | ||
435 | + { | ||
436 | + "type": "object", | ||
437 | + "$schema": "http://json-schema.org/draft-03/schema", | ||
438 | + "id": "http://jsonschema.net", | ||
439 | + "required": true, | ||
440 | + "properties": { | ||
441 | + "participant": { | ||
442 | + "type": "Personne", | ||
443 | + "required": true | ||
444 | + }, | ||
445 | + "id": { | ||
446 | + "type": "Evenement", | ||
447 | + "required": true | ||
448 | + } | ||
449 | + } | ||
450 | + } | ||
451 | + responses: | ||
452 | + 201: | ||
453 | + description: L'evenement a bien été resérvé | ||
430 | /consommation: | 454 | /consommation: |
431 | get: | 455 | get: |
432 | - description: Obtenir la liste de toutes les consommations. Nécessite CONSO_ADMIN ou CONSO_ACHETER ou CONSO_REMBOURSER | 456 | + description: Obtenir la liste de toutes les consommations. Nécessite CONSO_LIST |
433 | responses: | 457 | responses: |
434 | 200: | 458 | 200: |
435 | body: | 459 | body: |
@@ -448,7 +472,7 @@ version: v1 | @@ -448,7 +472,7 @@ version: v1 | ||
448 | } | 472 | } |
449 | ] | 473 | ] |
450 | post: | 474 | post: |
451 | - description: Permet de creer une nouvelle consommation. Nécessite CONSO_ADMIN | 475 | + description: Permet de creer une nouvelle consommation. Nécessite CONSO_ADD |
452 | body: | 476 | body: |
453 | application/json: | 477 | application/json: |
454 | schema: | | 478 | schema: | |
@@ -470,7 +494,7 @@ version: v1 | @@ -470,7 +494,7 @@ version: v1 | ||
470 | } | 494 | } |
471 | responses: | 495 | responses: |
472 | 201: | 496 | 201: |
473 | - /{consommationId}: | 497 | + /{idConsommation}: |
474 | uriParameters: | 498 | uriParameters: |
475 | consommationId: | 499 | consommationId: |
476 | type: integer | 500 | type: integer |
@@ -525,6 +549,27 @@ version: v1 | @@ -525,6 +549,27 @@ version: v1 | ||
525 | responses: | 549 | responses: |
526 | 200: | 550 | 200: |
527 | description: La consommation a été bien supprime | 551 | description: La consommation a été bien supprime |
552 | + /achete: | ||
553 | + post: | ||
554 | + description: Achat d'une consomation (id) par un participant à un acteur | ||
555 | + body: | ||
556 | + application/json: | ||
557 | + schema: | | ||
558 | + { | ||
559 | + "type": "object", | ||
560 | + "$schema": "http://json-schema.org/draft-03/schema", | ||
561 | + "id": "http://jsonschema.net", | ||
562 | + "required": true, | ||
563 | + "properties": { | ||
564 | + "participant": { | ||
565 | + "type": "Personne", | ||
566 | + "required": true | ||
567 | + } | ||
568 | + } | ||
569 | + } | ||
570 | + responses: | ||
571 | + 201: | ||
572 | + description: La consommation a été bien payée | ||
528 | 573 | ||
529 | /transaction: | 574 | /transaction: |
530 | get: | 575 | get: |
@@ -553,80 +598,13 @@ version: v1 | @@ -553,80 +598,13 @@ version: v1 | ||
553 | "prix": -25.23 | 598 | "prix": -25.23 |
554 | } | 599 | } |
555 | ] | 600 | ] |
556 | - /consommation: | ||
557 | - post: | ||
558 | - description: Achat d'une consomation (id) par un participant à un acteur | ||
559 | - body: | ||
560 | - application/json: | ||
561 | - schema: | | ||
562 | - { | ||
563 | - "type": "object", | ||
564 | - "$schema": "http://json-schema.org/draft-03/schema", | ||
565 | - "id": "http://jsonschema.net", | ||
566 | - "required": true, | ||
567 | - "properties": { | ||
568 | - "participant": { | ||
569 | - "type": "Personne", | ||
570 | - "required": true | ||
571 | - }, | ||
572 | - "id": { | ||
573 | - "type": "Consommation", | ||
574 | - "required": true | ||
575 | - } | ||
576 | - } | ||
577 | - } | ||
578 | - responses: | ||
579 | - 201: | ||
580 | - description: La consommation a été bien payé | ||
581 | - /evenement: | ||
582 | - post: | ||
583 | - body: | ||
584 | - application/json: | ||
585 | - schema: | | ||
586 | - { | ||
587 | - "type": "object", | ||
588 | - "$schema": "http://json-schema.org/draft-03/schema", | ||
589 | - "id": "http://jsonschema.net", | ||
590 | - "required": true, | ||
591 | - "properties": { | ||
592 | - "participant": { | ||
593 | - "type": "Personne", | ||
594 | - "required": true | ||
595 | - }, | ||
596 | - "id": { | ||
597 | - "type": "Evenement", | ||
598 | - "required": true | ||
599 | - } | ||
600 | - } | ||
601 | - } | ||
602 | - responses: | ||
603 | - 201: | ||
604 | - description: L'evenement a bien été payé | ||
605 | - /credit: | ||
606 | - post: | ||
607 | - description: Permet de recharger ou debiter un compte | ||
608 | - body: | ||
609 | - application/json: | ||
610 | - schema: | | ||
611 | - { | ||
612 | - "type": "object", | ||
613 | - "$schema": "http://json-schema.org/draft-03/schema", | ||
614 | - "id": "http://jsonschema.net", | ||
615 | - "required": true, | ||
616 | - "properties": { | ||
617 | - "participant": { | ||
618 | - "type": "Personne", | ||
619 | - "required": true | ||
620 | - }, | ||
621 | - "prix": { | ||
622 | - "type": "number", | ||
623 | - "required": true | ||
624 | - } | ||
625 | - } | ||
626 | - } | ||
627 | - responses: | ||
628 | - 201: | ||
629 | - description: La personne a bien été crédité | 601 | + delete: |
602 | + description: Annuler une transaction | ||
603 | + responses: | ||
604 | + 405: | ||
605 | + description: Non implémenté | ||
606 | + | ||
607 | + | ||
630 | /{idPersonne}: | 608 | /{idPersonne}: |
631 | uriParameters: | 609 | uriParameters: |
632 | idPersonne: | 610 | idPersonne: |
src/main/java/etunicorn/Application.java
@@ -46,6 +46,11 @@ public class Application { | @@ -46,6 +46,11 @@ public class Application { | ||
46 | permissionRepository.save(new Permission("ROLE_PERMISSION_ADD")); | 46 | permissionRepository.save(new Permission("ROLE_PERMISSION_ADD")); |
47 | permissionRepository.save(new Permission("ROLE_PERMISSION_LIST")); | 47 | permissionRepository.save(new Permission("ROLE_PERMISSION_LIST")); |
48 | permissionRepository.save(new Permission("ROLE_PERMISSION_REMOVE")); | 48 | permissionRepository.save(new Permission("ROLE_PERMISSION_REMOVE")); |
49 | + permissionRepository.save(new Permission("CONSO_ADD")); | ||
50 | + permissionRepository.save(new Permission("CONSO_EDIT")); | ||
51 | + permissionRepository.save(new Permission("CONSO_GET")); | ||
52 | + permissionRepository.save(new Permission("CONSO_LIST")); | ||
53 | + permissionRepository.save(new Permission("CONSO_REMOVE")); | ||
49 | // ... | 54 | // ... |
50 | 55 | ||
51 | //roleRepository.save(new Role("admin", (List<Permission>) permissionRepository.findAll())); | 56 | //roleRepository.save(new Role("admin", (List<Permission>) permissionRepository.findAll())); |
src/main/java/etunicorn/controller/ConsommationController.java
1 | package etunicorn.controller; | 1 | package etunicorn.controller; |
2 | 2 | ||
3 | +import etunicorn.RestrictedTo; | ||
3 | import etunicorn.entity.Consommation; | 4 | import etunicorn.entity.Consommation; |
5 | +import etunicorn.generated.model.UpdateAcheteRequest; | ||
4 | import etunicorn.generated.model.UpdateConsommationByIdRequest; | 6 | import etunicorn.generated.model.UpdateConsommationByIdRequest; |
5 | import etunicorn.generated.model.UpdateConsommationRequest; | 7 | import etunicorn.generated.model.UpdateConsommationRequest; |
6 | import etunicorn.repository.ConsommationRepository; | 8 | import etunicorn.repository.ConsommationRepository; |
@@ -24,32 +26,66 @@ public class ConsommationController extends BaseController implements etunicorn. | @@ -24,32 +26,66 @@ public class ConsommationController extends BaseController implements etunicorn. | ||
24 | ConsommationRepository consommationRepository; | 26 | ConsommationRepository consommationRepository; |
25 | 27 | ||
26 | @Override | 28 | @Override |
29 | + @RestrictedTo("CONSO_LIST") | ||
27 | public ResponseEntity<?> getConsommation() { | 30 | public ResponseEntity<?> getConsommation() { |
28 | return new ResponseEntity<Object>(this.consommationRepository.findAll(), HttpStatus.OK); | 31 | return new ResponseEntity<Object>(this.consommationRepository.findAll(), HttpStatus.OK); |
29 | } | 32 | } |
30 | 33 | ||
31 | private ResponseEntity<?> mergeConsommation(Consommation consommation, UpdateConsommationRequest updateConsommationRequest) { | 34 | private ResponseEntity<?> mergeConsommation(Consommation consommation, UpdateConsommationRequest updateConsommationRequest) { |
32 | - // if (updateConsommationRequest.get) | ||
33 | - return null; | 35 | + if (updateConsommationRequest.getNom() != null) { |
36 | + consommation.setNom(updateConsommationRequest.getNom()); | ||
37 | + } | ||
38 | + if (updateConsommationRequest.getPrix() != null) { | ||
39 | + consommation.setPrix(updateConsommationRequest.getPrix()); | ||
40 | + } | ||
41 | + consommationRepository.save(consommation); | ||
42 | + return new ResponseEntity(consommation, HttpStatus.CREATED); | ||
34 | } | 43 | } |
35 | 44 | ||
36 | @Override | 45 | @Override |
46 | + @RestrictedTo("CONSO_ADD") | ||
37 | public ResponseEntity<?> updateConsommation(@Valid @RequestBody UpdateConsommationRequest updateConsommationRequest) { | 47 | public ResponseEntity<?> updateConsommation(@Valid @RequestBody UpdateConsommationRequest updateConsommationRequest) { |
38 | - return null; | 48 | + Consommation consommation = new Consommation(); |
49 | + return mergeConsommation(consommation, updateConsommationRequest); | ||
39 | } | 50 | } |
40 | 51 | ||
41 | @Override | 52 | @Override |
53 | + @RestrictedTo("CONSO_EDIT") | ||
42 | public ResponseEntity<?> updateConsommationById(@PathVariable Long consommationId, @Valid @RequestBody UpdateConsommationByIdRequest updateConsommationByIdRequest) { | 54 | public ResponseEntity<?> updateConsommationById(@PathVariable Long consommationId, @Valid @RequestBody UpdateConsommationByIdRequest updateConsommationByIdRequest) { |
43 | - return null; | 55 | + Consommation consommation = consommationRepository.findById(consommationId.intValue()); |
56 | + if (consommation == null) { | ||
57 | + return generateError(HttpStatus.NOT_FOUND, "Consommation inconnue"); | ||
58 | + } | ||
59 | + UpdateConsommationRequest updateConsommationRequest = new UpdateConsommationRequest(); | ||
60 | + updateConsommationRequest.setNom(updateConsommationByIdRequest.getNom()); | ||
61 | + updateConsommationRequest.setPrix(updateConsommationByIdRequest.getPrix()); | ||
62 | + return mergeConsommation(consommation, updateConsommationRequest); | ||
44 | } | 63 | } |
45 | 64 | ||
46 | @Override | 65 | @Override |
66 | + @RestrictedTo("CONSO_GET") | ||
47 | public ResponseEntity<?> getConsommationById(@PathVariable Long consommationId) { | 67 | public ResponseEntity<?> getConsommationById(@PathVariable Long consommationId) { |
48 | - return null; | 68 | + Consommation consommation = consommationRepository.findById(consommationId.intValue()); |
69 | + if (consommation == null) { | ||
70 | + return generateError(HttpStatus.NOT_FOUND, "Consommation inconnue"); | ||
71 | + } | ||
72 | + return new ResponseEntity(consommation, HttpStatus.OK); | ||
49 | } | 73 | } |
50 | 74 | ||
51 | @Override | 75 | @Override |
76 | + @RestrictedTo("CONSO_REMOVE") | ||
52 | public ResponseEntity<?> deleteConsommationById(@PathVariable Long consommationId) { | 77 | public ResponseEntity<?> deleteConsommationById(@PathVariable Long consommationId) { |
78 | + Consommation consommation = consommationRepository.findById(consommationId.intValue()); | ||
79 | + if (consommation == null) { | ||
80 | + return generateError(HttpStatus.NOT_FOUND, "Consommation inconnue"); | ||
81 | + } | ||
82 | + consommationRepository.delete(consommation); | ||
83 | + return null; | ||
84 | + } | ||
85 | + | ||
86 | + @Override | ||
87 | + @RestrictedTo("CONSO_ACHAT") | ||
88 | + public ResponseEntity<?> updateAchete(@PathVariable Long consommationId, @Valid @RequestBody UpdateAcheteRequest updateAcheteRequest) { | ||
53 | return null; | 89 | return null; |
54 | } | 90 | } |
55 | } | 91 | } |
src/main/java/etunicorn/controller/PersonneController.java
@@ -5,6 +5,7 @@ import etunicorn.entity.Personne; | @@ -5,6 +5,7 @@ import etunicorn.entity.Personne; | ||
5 | import etunicorn.entity.Role; | 5 | import etunicorn.entity.Role; |
6 | import etunicorn.generated.model.UpdatePersonneByIdRequest; | 6 | import etunicorn.generated.model.UpdatePersonneByIdRequest; |
7 | import etunicorn.generated.model.UpdatePersonneRequest; | 7 | import etunicorn.generated.model.UpdatePersonneRequest; |
8 | +import etunicorn.generated.model.UpdateVirerRequest; | ||
8 | import etunicorn.repository.PersonneRepository; | 9 | import etunicorn.repository.PersonneRepository; |
9 | import etunicorn.repository.RoleRepository; | 10 | import etunicorn.repository.RoleRepository; |
10 | import org.springframework.beans.factory.annotation.Autowired; | 11 | import org.springframework.beans.factory.annotation.Autowired; |
@@ -101,7 +102,7 @@ public class PersonneController extends BaseController implements etunicorn.gene | @@ -101,7 +102,7 @@ public class PersonneController extends BaseController implements etunicorn.gene | ||
101 | @Override | 102 | @Override |
102 | @RestrictedTo("PERSONNE_GET") | 103 | @RestrictedTo("PERSONNE_GET") |
103 | public ResponseEntity<?> getPersonneById(@PathVariable BigDecimal idPersonne) { | 104 | public ResponseEntity<?> getPersonneById(@PathVariable BigDecimal idPersonne) { |
104 | - Personne personne = personneRepository.findById(idPersonne.intValueExact()); | 105 | + Personne personne = personneRepository.findById(idPersonne.intValue()); |
105 | if (personne == null) { | 106 | if (personne == null) { |
106 | return new ResponseEntity<Object>(HttpStatus.NOT_FOUND); | 107 | return new ResponseEntity<Object>(HttpStatus.NOT_FOUND); |
107 | } | 108 | } |
@@ -111,7 +112,7 @@ public class PersonneController extends BaseController implements etunicorn.gene | @@ -111,7 +112,7 @@ public class PersonneController extends BaseController implements etunicorn.gene | ||
111 | @Override | 112 | @Override |
112 | @RestrictedTo("PERSONNE_EDIT") | 113 | @RestrictedTo("PERSONNE_EDIT") |
113 | public ResponseEntity<?> updatePersonneById(@PathVariable BigDecimal idPersonne, @Valid @RequestBody UpdatePersonneByIdRequest updatePersonneByIdRequest) { | 114 | public ResponseEntity<?> updatePersonneById(@PathVariable BigDecimal idPersonne, @Valid @RequestBody UpdatePersonneByIdRequest updatePersonneByIdRequest) { |
114 | - Personne personne = personneRepository.findById(idPersonne.intValueExact()); | 115 | + Personne personne = personneRepository.findById(idPersonne.intValue()); |
115 | if (personne == null) { | 116 | if (personne == null) { |
116 | return generateError(HttpStatus.NOT_FOUND, "Personne introuvable"); | 117 | return generateError(HttpStatus.NOT_FOUND, "Personne introuvable"); |
117 | } | 118 | } |
@@ -126,7 +127,7 @@ public class PersonneController extends BaseController implements etunicorn.gene | @@ -126,7 +127,7 @@ public class PersonneController extends BaseController implements etunicorn.gene | ||
126 | @Override | 127 | @Override |
127 | @RestrictedTo("PERSONNE_REMOVE") | 128 | @RestrictedTo("PERSONNE_REMOVE") |
128 | public ResponseEntity<?> deletePersonneById(@PathVariable BigDecimal idPersonne) { | 129 | public ResponseEntity<?> deletePersonneById(@PathVariable BigDecimal idPersonne) { |
129 | - Personne personne = personneRepository.findById(idPersonne.intValueExact()); | 130 | + Personne personne = personneRepository.findById(idPersonne.intValue()); |
130 | 131 | ||
131 | if (personne == null) { | 132 | if (personne == null) { |
132 | return new ResponseEntity<Object>(HttpStatus.NOT_FOUND); | 133 | return new ResponseEntity<Object>(HttpStatus.NOT_FOUND); |
@@ -135,4 +136,8 @@ public class PersonneController extends BaseController implements etunicorn.gene | @@ -135,4 +136,8 @@ public class PersonneController extends BaseController implements etunicorn.gene | ||
135 | return new ResponseEntity<Object>(personne, HttpStatus.NO_CONTENT); | 136 | return new ResponseEntity<Object>(personne, HttpStatus.NO_CONTENT); |
136 | } | 137 | } |
137 | 138 | ||
139 | + @Override | ||
140 | + public ResponseEntity<?> updateVirer(@PathVariable BigDecimal idPersonne, @Valid @RequestBody UpdateVirerRequest updateVirerRequest) { | ||
141 | + return null; | ||
142 | + } | ||
138 | } | 143 | } |