summaryrefslogtreecommitdiff
path: root/src/main/java/dev/dnpm/services/DefaultFormService.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/dev/dnpm/services/DefaultFormService.java')
-rw-r--r--src/main/java/dev/dnpm/services/DefaultFormService.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/main/java/dev/dnpm/services/DefaultFormService.java b/src/main/java/dev/dnpm/services/DefaultFormService.java
new file mode 100644
index 0000000..4240809
--- /dev/null
+++ b/src/main/java/dev/dnpm/services/DefaultFormService.java
@@ -0,0 +1,37 @@
+package dev.dnpm.services;
+
+import dev.dnpm.exceptions.FormException;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+import javax.sql.DataSource;
+import java.util.List;
+
+/**
+ * Standardimplementierung zum Ermitteln von Unter- und Hauptformularen
+ *
+ * @since 0.0.2
+ */
+public class DefaultFormService implements FormService {
+
+ private final JdbcTemplate jdbcTemplate;
+
+ public DefaultFormService(final DataSource dataSource) {
+ this.jdbcTemplate = new JdbcTemplate(dataSource);
+ }
+
+ @Override
+ public int getMainFormProcedureId(int procedureId) throws FormException {
+ var sql = "SELECT hauptprozedur_id FROM prozedur WHERE id = ?";
+ try {
+ return jdbcTemplate.queryForObject(sql, (resultSet, i) -> resultSet.getInt("hauptprozedur_id"), procedureId);
+ } catch (Exception e) {
+ throw new FormException(String.format("No main form found for subform with ID '%d'", procedureId));
+ }
+ }
+
+ @Override
+ public List<Integer> getSubFormProcedureIds(int procedureId) {
+ var sql = "SELECT id FROM prozedur WHERE hauptprozedur_id = ?";
+ return jdbcTemplate.queryForList(sql, Integer.class, procedureId);
+ }
+}