Skip to content

Commit 3b47bbc

Browse files
committed
Validate NFPA ratings to ensure they are within the range of 0 to 4
1 parent 40f1327 commit 3b47bbc

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

backend/src/main/java/dev/omel/backend/worker/SubstanceWorker.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,24 @@ public SubstanceBean createSubstance(SubstanceBean substanceBean) throws Excepti
2929
if (substanceBean.name().trim().isEmpty())
3030
throw new Exception("Substance name cannot be empty");
3131

32+
if (substanceBean.nfpaFlammability() != null) {
33+
if (substanceBean.nfpaFlammability() < 0 || substanceBean.nfpaFlammability() > 4) {
34+
throw new IllegalArgumentException("NFPA Flammability rating must be between 0 and 4");
35+
}
36+
}
37+
38+
if (substanceBean.nfpaHealth() != null) {
39+
if (substanceBean.nfpaHealth() < 0 || substanceBean.nfpaHealth() > 4) {
40+
throw new IllegalArgumentException("NFPA Health rating must be between 0 and 4");
41+
}
42+
}
43+
44+
if (substanceBean.nfpaReactivity() != null) {
45+
if (substanceBean.nfpaReactivity() < 0 || substanceBean.nfpaReactivity() > 4) {
46+
throw new IllegalArgumentException("NFPA Reactivity rating must be between 0 and 4");
47+
}
48+
}
49+
3250
SubstanceSupplierEntity supplier = substanceSupplierRepository.findByName(substanceBean.supplier())
3351
.orElse(new SubstanceSupplierEntity());
3452

@@ -43,6 +61,14 @@ public SubstanceBean createSubstance(SubstanceBean substanceBean) throws Excepti
4361
entity.setSupplier(supplier);
4462
entity.setMolecularFormula(substanceBean.molecularFormula());
4563
entity.setCasNumber(substanceBean.casNumber());
64+
entity.setNfpa704Health(substanceBean.nfpaHealth());
65+
entity.setNfpa704Flammability(substanceBean.nfpaFlammability());
66+
entity.setNfpa704Reactivity(substanceBean.nfpaReactivity());
67+
68+
if (substanceBean.nfpaSpecifiedHazard() != null) {
69+
entity.setNfpa704SpecifiedHazard(substanceBean.nfpaSpecifiedHazard());
70+
}
71+
4672

4773
substanceRepository.save(entity);
4874

@@ -80,12 +106,21 @@ public SubstanceBean patchChemicalSubstance(Long id, SubstanceBean substanceBean
80106
entity.setSupplier(supplier);
81107
}
82108
if (substanceBean.nfpaHealth() != null) {
109+
if (substanceBean.nfpaHealth() < 0 || substanceBean.nfpaHealth() > 4) {
110+
throw new IllegalArgumentException("NFPA Health rating must be between 0 and 4");
111+
}
83112
entity.setNfpa704Health(substanceBean.nfpaHealth());
84113
}
85114
if (substanceBean.nfpaFlammability() != null) {
115+
if (substanceBean.nfpaFlammability() < 0 || substanceBean.nfpaFlammability() > 4) {
116+
throw new IllegalArgumentException("NFPA Flammability rating must be between 0 and 4");
117+
}
86118
entity.setNfpa704Flammability(substanceBean.nfpaFlammability());
87119
}
88120
if (substanceBean.nfpaReactivity() != null) {
121+
if (substanceBean.nfpaReactivity() < 0 || substanceBean.nfpaReactivity() > 4) {
122+
throw new IllegalArgumentException("NFPA Reactivity rating must be between 0 and 4");
123+
}
89124
entity.setNfpa704Reactivity(substanceBean.nfpaReactivity());
90125
}
91126
if (substanceBean.nfpaSpecifiedHazard() != null) {

0 commit comments

Comments
 (0)