From 079cd043fd1a14d1b2e5565b445b12ee935caefd Mon Sep 17 00:00:00 2001 From: BEAUVAIS ANTOINE <antoine.beauvais@etu.unistra.fr> Date: Thu, 23 Sep 2021 17:30:15 +0200 Subject: [PATCH] Designed interfaces for controllers. --- .../IRetrieveCategoriesController.java | 22 ++++++++++++++++ .../controller/IRetrieveInfoController.java | 26 +++++++++++++++++++ .../ISubmitTransactionController.java | 26 +++++++++++++++++++ .../api}/ApiBadRequestException.java | 2 +- .../api}/ApiErrorHandler.java | 4 +-- .../api}/ApiRetrieveCategoriesController.java | 9 ++++--- .../api}/ApiRetrieveInfoController.java | 13 +++++----- .../api}/ApiServerErrorException.java | 2 +- .../api}/ApiSubmitTransactionController.java | 6 +++-- .../sil/erp/back/db/DatabaseInterface.java | 4 +-- .../sil/erp/back/db/DatabaseSQLiteImpl.java | 4 +-- .../erp/back/{api => }/model/Category.java | 2 +- .../back/{api => }/model/ErrorMessage.java | 2 +- .../sil/erp/back/{api => }/model/Item.java | 2 +- .../back/{api => }/model/RegistryEntry.java | 2 +- 15 files changed, 103 insertions(+), 23 deletions(-) create mode 100644 src/main/java/fr/unistra/sil/erp/back/controller/IRetrieveCategoriesController.java create mode 100644 src/main/java/fr/unistra/sil/erp/back/controller/IRetrieveInfoController.java create mode 100644 src/main/java/fr/unistra/sil/erp/back/controller/ISubmitTransactionController.java rename src/main/java/fr/unistra/sil/erp/back/{api/controller => controller/api}/ApiBadRequestException.java (87%) rename src/main/java/fr/unistra/sil/erp/back/{api/controller => controller/api}/ApiErrorHandler.java (92%) rename src/main/java/fr/unistra/sil/erp/back/{api/controller => controller/api}/ApiRetrieveCategoriesController.java (85%) rename src/main/java/fr/unistra/sil/erp/back/{api/controller => controller/api}/ApiRetrieveInfoController.java (84%) rename src/main/java/fr/unistra/sil/erp/back/{api/controller => controller/api}/ApiServerErrorException.java (88%) rename src/main/java/fr/unistra/sil/erp/back/{api/controller => controller/api}/ApiSubmitTransactionController.java (82%) rename src/main/java/fr/unistra/sil/erp/back/{api => }/model/Category.java (95%) rename src/main/java/fr/unistra/sil/erp/back/{api => }/model/ErrorMessage.java (90%) rename src/main/java/fr/unistra/sil/erp/back/{api => }/model/Item.java (98%) rename src/main/java/fr/unistra/sil/erp/back/{api => }/model/RegistryEntry.java (97%) diff --git a/src/main/java/fr/unistra/sil/erp/back/controller/IRetrieveCategoriesController.java b/src/main/java/fr/unistra/sil/erp/back/controller/IRetrieveCategoriesController.java new file mode 100644 index 0000000..b719adc --- /dev/null +++ b/src/main/java/fr/unistra/sil/erp/back/controller/IRetrieveCategoriesController.java @@ -0,0 +1,22 @@ +/* + * CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL-B + * https://cecill.info/licences/Licence_CeCILL-B_V1-fr.html + */ +package fr.unistra.sil.erp.back.controller; + +import org.springframework.http.ResponseEntity; + +/** + * Interface for designing access to categories. + * @author BEAUVAIS ANTOINE + */ +public interface IRetrieveCategoriesController { + + /** + * Retrieves all categories. + * @return the response. + * @throws java.lang.Exception when the request cannot be served. + */ + public ResponseEntity<Object> getCategories() throws Exception; + +} diff --git a/src/main/java/fr/unistra/sil/erp/back/controller/IRetrieveInfoController.java b/src/main/java/fr/unistra/sil/erp/back/controller/IRetrieveInfoController.java new file mode 100644 index 0000000..8ca93af --- /dev/null +++ b/src/main/java/fr/unistra/sil/erp/back/controller/IRetrieveInfoController.java @@ -0,0 +1,26 @@ +/* + * CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL-B + * https://cecill.info/licences/Licence_CeCILL-B_V1-fr.html + */ +package fr.unistra.sil.erp.back.controller; + +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * Interface for designing the retrieval of articles. + * @author BEAUVAIS ANTOINE + */ +public interface IRetrieveInfoController { + + /** + * Retrieves the list of items. + * @param cat + * @return + * @throws Exception + */ + public ResponseEntity<Object> retrieveInfo( + @RequestParam(value = "category", defaultValue = "") String cat + ) throws Exception; + +} diff --git a/src/main/java/fr/unistra/sil/erp/back/controller/ISubmitTransactionController.java b/src/main/java/fr/unistra/sil/erp/back/controller/ISubmitTransactionController.java new file mode 100644 index 0000000..2f6ef53 --- /dev/null +++ b/src/main/java/fr/unistra/sil/erp/back/controller/ISubmitTransactionController.java @@ -0,0 +1,26 @@ +/* + * CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL-B + * https://cecill.info/licences/Licence_CeCILL-B_V1-fr.html + */ +package fr.unistra.sil.erp.back.controller; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.http.ResponseEntity; + +/** + * Interface for designing transaction submission. + * @author BEAUVAIS ANTOINE + */ +public interface ISubmitTransactionController { + + /** + * Submits a transaction to the application. + * @param request the HTTP Servlet Request, provided by Spring Web + * @param response the HTTP Servlet Response, provided by Spring Web + * @return the response served to the user. + */ + public ResponseEntity<Object> submitTransaction(HttpServletRequest request, + HttpServletResponse response); + +} diff --git a/src/main/java/fr/unistra/sil/erp/back/api/controller/ApiBadRequestException.java b/src/main/java/fr/unistra/sil/erp/back/controller/api/ApiBadRequestException.java similarity index 87% rename from src/main/java/fr/unistra/sil/erp/back/api/controller/ApiBadRequestException.java rename to src/main/java/fr/unistra/sil/erp/back/controller/api/ApiBadRequestException.java index 645aa79..7443d03 100644 --- a/src/main/java/fr/unistra/sil/erp/back/api/controller/ApiBadRequestException.java +++ b/src/main/java/fr/unistra/sil/erp/back/controller/api/ApiBadRequestException.java @@ -2,7 +2,7 @@ * CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL-B * https://cecill.info/licences/Licence_CeCILL-B_V1-fr.html */ -package fr.unistra.sil.erp.back.api.controller; +package fr.unistra.sil.erp.back.controller.api; /** * HTTP error 400 Bad Request for the API. diff --git a/src/main/java/fr/unistra/sil/erp/back/api/controller/ApiErrorHandler.java b/src/main/java/fr/unistra/sil/erp/back/controller/api/ApiErrorHandler.java similarity index 92% rename from src/main/java/fr/unistra/sil/erp/back/api/controller/ApiErrorHandler.java rename to src/main/java/fr/unistra/sil/erp/back/controller/api/ApiErrorHandler.java index 749f936..2e85fb6 100644 --- a/src/main/java/fr/unistra/sil/erp/back/api/controller/ApiErrorHandler.java +++ b/src/main/java/fr/unistra/sil/erp/back/controller/api/ApiErrorHandler.java @@ -2,9 +2,9 @@ * CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL-B * https://cecill.info/licences/Licence_CeCILL-B_V1-fr.html */ -package fr.unistra.sil.erp.back.api.controller; +package fr.unistra.sil.erp.back.controller.api; -import fr.unistra.sil.erp.back.api.model.ErrorMessage; +import fr.unistra.sil.erp.back.model.ErrorMessage; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.http.HttpStatus; diff --git a/src/main/java/fr/unistra/sil/erp/back/api/controller/ApiRetrieveCategoriesController.java b/src/main/java/fr/unistra/sil/erp/back/controller/api/ApiRetrieveCategoriesController.java similarity index 85% rename from src/main/java/fr/unistra/sil/erp/back/api/controller/ApiRetrieveCategoriesController.java rename to src/main/java/fr/unistra/sil/erp/back/controller/api/ApiRetrieveCategoriesController.java index 3696798..fa4a767 100644 --- a/src/main/java/fr/unistra/sil/erp/back/api/controller/ApiRetrieveCategoriesController.java +++ b/src/main/java/fr/unistra/sil/erp/back/controller/api/ApiRetrieveCategoriesController.java @@ -2,11 +2,12 @@ * CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL-B * https://cecill.info/licences/Licence_CeCILL-B_V1-fr.html */ -package fr.unistra.sil.erp.back.api.controller; +package fr.unistra.sil.erp.back.controller.api; import static fr.unistra.sil.erp.back.Config.MAPPING_GETCATEGORIES; import fr.unistra.sil.erp.back.DatabaseSystem; -import fr.unistra.sil.erp.back.api.model.Category; +import fr.unistra.sil.erp.back.controller.IRetrieveCategoriesController; +import fr.unistra.sil.erp.back.model.Category; import fr.unistra.sil.erp.back.db.DatabaseConnectionException; import fr.unistra.sil.erp.back.db.DatabaseInterface; import java.util.List; @@ -22,7 +23,8 @@ import org.springframework.web.bind.annotation.RestController; * @author BEAUVAIS ANTOINE */ @RestController -public class ApiRetrieveCategoriesController { +public class ApiRetrieveCategoriesController + implements IRetrieveCategoriesController { /** * Returns the list of categories in JSON format. @@ -30,6 +32,7 @@ public class ApiRetrieveCategoriesController { * @throws ApiServerErrorException Database failure. */ @GetMapping(MAPPING_GETCATEGORIES) + @Override public ResponseEntity<Object> getCategories() throws ApiServerErrorException { DatabaseInterface db; diff --git a/src/main/java/fr/unistra/sil/erp/back/api/controller/ApiRetrieveInfoController.java b/src/main/java/fr/unistra/sil/erp/back/controller/api/ApiRetrieveInfoController.java similarity index 84% rename from src/main/java/fr/unistra/sil/erp/back/api/controller/ApiRetrieveInfoController.java rename to src/main/java/fr/unistra/sil/erp/back/controller/api/ApiRetrieveInfoController.java index 3593e99..c5a884f 100644 --- a/src/main/java/fr/unistra/sil/erp/back/api/controller/ApiRetrieveInfoController.java +++ b/src/main/java/fr/unistra/sil/erp/back/controller/api/ApiRetrieveInfoController.java @@ -2,11 +2,12 @@ * CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL-B * https://cecill.info/licences/Licence_CeCILL-B_V1-fr.html */ -package fr.unistra.sil.erp.back.api.controller; +package fr.unistra.sil.erp.back.controller.api; import static fr.unistra.sil.erp.back.Config.MAPPING_RETRIEVEALL; import fr.unistra.sil.erp.back.DatabaseSystem; -import fr.unistra.sil.erp.back.api.model.Item; +import fr.unistra.sil.erp.back.controller.IRetrieveInfoController; +import fr.unistra.sil.erp.back.model.Item; import fr.unistra.sil.erp.back.db.DatabaseConnectionException; import fr.unistra.sil.erp.back.db.DatabaseInterface; import java.util.List; @@ -20,17 +21,17 @@ import org.springframework.web.bind.annotation.RestController; /** * REST controller for the item list. - * @author BEAUVAIS ANTOINE <antoine.beauvais@etu.unistra.fr> + * @author BEAUVAIS ANTOINE */ @RestController -public class ApiRetrieveInfoController { +public class ApiRetrieveInfoController implements IRetrieveInfoController { /** * Returns all products as a JSON response. * @param cat an optional category. * @return a JSON response. - * @throws fr.unistra.sil.erp.back.api.controller.ApiServerErrorException - * @throws fr.unistra.sil.erp.back.api.controller.ApiBadRequestException + * @throws fr.unistra.sil.erp.back.controller.api.ApiServerErrorException + * @throws fr.unistra.sil.erp.back.controller.api.ApiBadRequestException */ @GetMapping(MAPPING_RETRIEVEALL) public ResponseEntity<Object> retrieveInfo( diff --git a/src/main/java/fr/unistra/sil/erp/back/api/controller/ApiServerErrorException.java b/src/main/java/fr/unistra/sil/erp/back/controller/api/ApiServerErrorException.java similarity index 88% rename from src/main/java/fr/unistra/sil/erp/back/api/controller/ApiServerErrorException.java rename to src/main/java/fr/unistra/sil/erp/back/controller/api/ApiServerErrorException.java index 235fc98..7cfe6a0 100644 --- a/src/main/java/fr/unistra/sil/erp/back/api/controller/ApiServerErrorException.java +++ b/src/main/java/fr/unistra/sil/erp/back/controller/api/ApiServerErrorException.java @@ -2,7 +2,7 @@ * CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL-B * https://cecill.info/licences/Licence_CeCILL-B_V1-fr.html */ -package fr.unistra.sil.erp.back.api.controller; +package fr.unistra.sil.erp.back.controller.api; /** * Returns HTTP 500 error page. diff --git a/src/main/java/fr/unistra/sil/erp/back/api/controller/ApiSubmitTransactionController.java b/src/main/java/fr/unistra/sil/erp/back/controller/api/ApiSubmitTransactionController.java similarity index 82% rename from src/main/java/fr/unistra/sil/erp/back/api/controller/ApiSubmitTransactionController.java rename to src/main/java/fr/unistra/sil/erp/back/controller/api/ApiSubmitTransactionController.java index 761f360..0074b6c 100644 --- a/src/main/java/fr/unistra/sil/erp/back/api/controller/ApiSubmitTransactionController.java +++ b/src/main/java/fr/unistra/sil/erp/back/controller/api/ApiSubmitTransactionController.java @@ -2,9 +2,10 @@ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ -package fr.unistra.sil.erp.back.api.controller; +package fr.unistra.sil.erp.back.controller.api; import static fr.unistra.sil.erp.back.Config.MAPPING_SUBTRANSAC; +import fr.unistra.sil.erp.back.controller.ISubmitTransactionController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.http.ResponseEntity; @@ -17,7 +18,8 @@ import org.springframework.web.bind.annotation.RestController; * @author BEAUVAIS ANTOINE */ @RestController -public class ApiSubmitTransactionController { +public class ApiSubmitTransactionController + implements ISubmitTransactionController { @RequestMapping(value=MAPPING_SUBTRANSAC, method = RequestMethod.POST) public ResponseEntity<Object> submitTransaction(HttpServletRequest request, diff --git a/src/main/java/fr/unistra/sil/erp/back/db/DatabaseInterface.java b/src/main/java/fr/unistra/sil/erp/back/db/DatabaseInterface.java index 4c4b617..d9b5f58 100644 --- a/src/main/java/fr/unistra/sil/erp/back/db/DatabaseInterface.java +++ b/src/main/java/fr/unistra/sil/erp/back/db/DatabaseInterface.java @@ -4,8 +4,8 @@ */ package fr.unistra.sil.erp.back.db; -import fr.unistra.sil.erp.back.api.model.Category; -import fr.unistra.sil.erp.back.api.model.Item; +import fr.unistra.sil.erp.back.model.Category; +import fr.unistra.sil.erp.back.model.Item; import java.util.List; /** diff --git a/src/main/java/fr/unistra/sil/erp/back/db/DatabaseSQLiteImpl.java b/src/main/java/fr/unistra/sil/erp/back/db/DatabaseSQLiteImpl.java index ce99530..a67ae65 100644 --- a/src/main/java/fr/unistra/sil/erp/back/db/DatabaseSQLiteImpl.java +++ b/src/main/java/fr/unistra/sil/erp/back/db/DatabaseSQLiteImpl.java @@ -4,8 +4,8 @@ */ package fr.unistra.sil.erp.back.db; -import fr.unistra.sil.erp.back.api.model.Category; -import fr.unistra.sil.erp.back.api.model.Item; +import fr.unistra.sil.erp.back.model.Category; +import fr.unistra.sil.erp.back.model.Item; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; diff --git a/src/main/java/fr/unistra/sil/erp/back/api/model/Category.java b/src/main/java/fr/unistra/sil/erp/back/model/Category.java similarity index 95% rename from src/main/java/fr/unistra/sil/erp/back/api/model/Category.java rename to src/main/java/fr/unistra/sil/erp/back/model/Category.java index d27c80f..9e0fd21 100644 --- a/src/main/java/fr/unistra/sil/erp/back/api/model/Category.java +++ b/src/main/java/fr/unistra/sil/erp/back/model/Category.java @@ -2,7 +2,7 @@ * CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL-B * https://cecill.info/licences/Licence_CeCILL-B_V1-fr.html */ -package fr.unistra.sil.erp.back.api.model; +package fr.unistra.sil.erp.back.model; /** * Category entity. diff --git a/src/main/java/fr/unistra/sil/erp/back/api/model/ErrorMessage.java b/src/main/java/fr/unistra/sil/erp/back/model/ErrorMessage.java similarity index 90% rename from src/main/java/fr/unistra/sil/erp/back/api/model/ErrorMessage.java rename to src/main/java/fr/unistra/sil/erp/back/model/ErrorMessage.java index b0b869b..c7fac54 100644 --- a/src/main/java/fr/unistra/sil/erp/back/api/model/ErrorMessage.java +++ b/src/main/java/fr/unistra/sil/erp/back/model/ErrorMessage.java @@ -2,7 +2,7 @@ * CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL-B * https://cecill.info/licences/Licence_CeCILL-B_V1-fr.html */ -package fr.unistra.sil.erp.back.api.model; +package fr.unistra.sil.erp.back.model; /** * JSON error message. diff --git a/src/main/java/fr/unistra/sil/erp/back/api/model/Item.java b/src/main/java/fr/unistra/sil/erp/back/model/Item.java similarity index 98% rename from src/main/java/fr/unistra/sil/erp/back/api/model/Item.java rename to src/main/java/fr/unistra/sil/erp/back/model/Item.java index 0ff8512..b37069d 100644 --- a/src/main/java/fr/unistra/sil/erp/back/api/model/Item.java +++ b/src/main/java/fr/unistra/sil/erp/back/model/Item.java @@ -2,7 +2,7 @@ * CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL-B * https://cecill.info/licences/Licence_CeCILL-B_V1-fr.html */ -package fr.unistra.sil.erp.back.api.model; +package fr.unistra.sil.erp.back.model; import java.math.BigDecimal; diff --git a/src/main/java/fr/unistra/sil/erp/back/api/model/RegistryEntry.java b/src/main/java/fr/unistra/sil/erp/back/model/RegistryEntry.java similarity index 97% rename from src/main/java/fr/unistra/sil/erp/back/api/model/RegistryEntry.java rename to src/main/java/fr/unistra/sil/erp/back/model/RegistryEntry.java index 90d7ab7..1bd908b 100644 --- a/src/main/java/fr/unistra/sil/erp/back/api/model/RegistryEntry.java +++ b/src/main/java/fr/unistra/sil/erp/back/model/RegistryEntry.java @@ -2,7 +2,7 @@ * CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL-B * https://cecill.info/licences/Licence_CeCILL-B_V1-fr.html */ -package fr.unistra.sil.erp.back.api.model; +package fr.unistra.sil.erp.back.model; import java.math.BigDecimal; import java.time.LocalDateTime; -- GitLab