Skip to content

Commit f0f1774

Browse files
committed
[backend] Improv & fix inject is ready
1 parent 94f693e commit f0f1774

File tree

10 files changed

+101
-110
lines changed

10 files changed

+101
-110
lines changed

openbas-api/src/main/java/io/openbas/injectors/caldera/CalderaContract.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package io.openbas.injectors.caldera;
22

3-
import static io.openbas.database.model.InjectorContract.CONTACT_ELEMENT_CONTENT_KEY_ASSETS;
4-
import static io.openbas.database.model.InjectorContract.CONTACT_ELEMENT_CONTENT_KEY_ASSET_GROUPS;
53
import static io.openbas.executors.caldera.service.CalderaExecutorService.toPlatform;
64
import static io.openbas.helper.SupportedLanguage.en;
75
import static io.openbas.helper.SupportedLanguage.fr;
@@ -93,9 +91,9 @@ private ContractExpectations expectations() {
9391

9492
private List<Contract> abilityContracts(@NotNull final ContractConfig contractConfig) {
9593
// Fields
96-
ContractSelect obfuscatorField = obfuscatorField();
9794
ContractAsset assetField = assetField(Multiple);
9895
ContractAssetGroup assetGroupField = assetGroupField(Multiple);
96+
ContractSelect obfuscatorField = obfuscatorField();
9997
ContractExpectations expectationsField = expectations();
10098

10199
List<Ability> abilities =

openbas-api/src/main/java/io/openbas/injectors/channel/ChannelContract.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ public List<Contract> contracts() {
9393
.optional(expectationsField)
9494
// Emailing zone
9595
.optional(emailingField)
96-
.mandatory(
96+
.mandatoryOnCondition(
97+
emailingField,
9798
textField(
9899
"subject",
99100
"Subject",

openbas-api/src/main/java/io/openbas/injectors/email/EmailContract.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ public List<Contract> contracts() {
6565
.mandatory(teamField(Multiple))
6666
.mandatory(textField("subject", "Subject"))
6767
.mandatory(richTextareaField("body", "Body"))
68-
// .optional(textField("inReplyTo", "InReplyTo", "HIDDEN")) - Use for direct injection
6968
.optional(checkboxField("encrypted", "Encrypted", false))
7069
.optional(attachmentField(Multiple))
7170
.optional(expectationsField)
@@ -85,7 +84,6 @@ public List<Contract> contracts() {
8584
.mandatory(teamField(Multiple))
8685
.mandatory(textField("subject", "Subject"))
8786
.mandatory(richTextareaField("body", "Body"))
88-
// .mandatory(textField("inReplyTo", "InReplyTo", "HIDDEN")) - Use for direct injection
8987
.optional(attachmentField(Multiple))
9088
.optional(expectationsField)
9189
.build();

openbas-api/src/main/java/io/openbas/rest/payload/service/PayloadService.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package io.openbas.rest.payload.service;
22

3-
import static io.openbas.database.model.InjectorContract.CONTACT_ELEMENT_CONTENT_KEY_ASSETS;
4-
import static io.openbas.database.model.InjectorContract.CONTACT_ELEMENT_CONTENT_KEY_ASSET_GROUPS;
53
import static io.openbas.helper.StreamHelper.fromIterable;
64
import static io.openbas.helper.SupportedLanguage.en;
75
import static io.openbas.helper.SupportedLanguage.fr;

openbas-api/src/test/java/io/openbas/helper/InjectModelHelperTest.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -214,8 +214,9 @@ void given_an_injector_contract_with_mandatory_groups_and_no_element_should_not_
214214
class MandatoryOnConditionTests {
215215

216216
@Test
217-
void given_an_injector_contract_with_mandatory_on_condition_and_no_element_should_be_ready()
218-
throws JsonProcessingException {
217+
void
218+
given_an_injector_contract_with_mandatory_on_condition_and_no_element_should_not_be_ready()
219+
throws JsonProcessingException {
219220
// -- PREPARE --
220221
InjectorContract injectorContract = prepareInjectorContract();
221222
addField(injectorContract, mapper, buildMandatoryOnCondition());
@@ -235,7 +236,7 @@ void given_an_injector_contract_with_mandatory_on_condition_and_no_element_shoul
235236
assetGroups);
236237

237238
// -- ASSERT --
238-
assertTrue(isReady);
239+
assertFalse(isReady);
239240
}
240241

241242
@Test

openbas-api/src/test/java/io/openbas/utils/fixtures/InjectorContractFixture.java

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.openbas.utils.fixtures;
22

3-
import static io.openbas.database.model.InjectorContract.*;
3+
import static io.openbas.database.model.InjectorContract.CONTRACT_CONTENT_FIELDS;
44
import static io.openbas.injector_contract.ContractCardinality.Multiple;
55
import static io.openbas.injector_contract.ContractDef.contractBuilder;
66
import static io.openbas.injector_contract.fields.ContractAsset.assetField;
@@ -116,21 +116,21 @@ public static void addField(
116116
throws JsonProcessingException {
117117
ObjectNode content = mapper.readValue(injectorContract.getContent(), ObjectNode.class);
118118
List<ContractElement> elements =
119-
mapper.convertValue(content.get(CONTACT_CONTENT_FIELDS), new TypeReference<>() {});
119+
mapper.convertValue(content.get(CONTRACT_CONTENT_FIELDS), new TypeReference<>() {});
120120
if (CollectionUtils.isEmpty(elements)) {
121121
elements = new ArrayList<>();
122122
}
123123

124124
elements.addAll(contractElements);
125125

126-
content.set(CONTACT_CONTENT_FIELDS, mapper.valueToTree(elements));
126+
content.set(CONTRACT_CONTENT_FIELDS, mapper.valueToTree(elements));
127127
injectorContract.setContent(mapper.writeValueAsString(content));
128128
injectorContract.setConvertedContent(content);
129129
}
130130

131131
public static List<ContractElement> buildAssetField(final boolean mandatory) {
132132
ContractDef builder = contractBuilder();
133-
ContractAsset assetField = assetField(CONTACT_ELEMENT_CONTENT_KEY_ASSETS, "Assets", Multiple);
133+
ContractAsset assetField = assetField(Multiple);
134134
if (mandatory) {
135135
builder.mandatory(assetField);
136136
} else {
@@ -140,18 +140,16 @@ public static List<ContractElement> buildAssetField(final boolean mandatory) {
140140
}
141141

142142
public static List<ContractElement> buildMandatoryGroup() {
143-
ContractAsset assetField = assetField(CONTACT_ELEMENT_CONTENT_KEY_ASSETS, "Assets", Multiple);
144-
ContractAssetGroup assetGroupField =
145-
assetGroupField(CONTACT_ELEMENT_CONTENT_KEY_ASSET_GROUPS, "Asset groups", Multiple);
143+
ContractAsset assetField = assetField(Multiple);
144+
ContractAssetGroup assetGroupField = assetGroupField(Multiple);
146145
ContractDef builder = contractBuilder();
147146
builder.mandatoryGroup(assetField, assetGroupField);
148147
return builder.build();
149148
}
150149

151150
public static List<ContractElement> buildMandatoryOnCondition() {
152-
ContractAsset assetField = assetField(CONTACT_ELEMENT_CONTENT_KEY_ASSETS, "Assets", Multiple);
153-
ContractAssetGroup assetGroupField =
154-
assetGroupField(CONTACT_ELEMENT_CONTENT_KEY_ASSET_GROUPS, "Asset groups", Multiple);
151+
ContractAsset assetField = assetField(Multiple);
152+
ContractAssetGroup assetGroupField = assetGroupField(Multiple);
155153
ContractDef builder = contractBuilder();
156154
return builder
157155
.mandatoryOnCondition(assetField, assetGroupField)
@@ -160,9 +158,8 @@ public static List<ContractElement> buildMandatoryOnCondition() {
160158
}
161159

162160
public static List<ContractElement> buildMandatoryOnConditionValue(@NotBlank final String value) {
163-
ContractAsset assetField = assetField(CONTACT_ELEMENT_CONTENT_KEY_ASSETS, "Assets", Multiple);
164-
ContractAssetGroup assetGroupField =
165-
assetGroupField(CONTACT_ELEMENT_CONTENT_KEY_ASSET_GROUPS, "Asset groups", Multiple);
161+
ContractAsset assetField = assetField(Multiple);
162+
ContractAssetGroup assetGroupField = assetGroupField(Multiple);
166163
ContractDef builder = contractBuilder();
167164
return builder
168165
.mandatoryOnConditionValue(assetField, assetGroupField, value)

openbas-framework/src/main/java/io/openbas/injector_contract/ContractDef.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.util.ArrayList;
55
import java.util.Arrays;
66
import java.util.List;
7+
import java.util.Map;
78

89
public class ContractDef {
910

@@ -68,7 +69,8 @@ public ContractDef mandatoryOnCondition(
6869
throw new IllegalArgumentException("Fields cannot be null");
6970
}
7071

71-
element.setMandatoryConditionFields(List.of(conditionalElement));
72+
element.setMandatoryConditionFields(List.of(conditionalElement.getKey()));
73+
element.setVisibleConditionFields(List.of(conditionalElement.getKey()));
7274
element.setMandatory(false);
7375
this.fields.add(element);
7476
return this;
@@ -87,8 +89,10 @@ public ContractDef mandatoryOnConditionValue(
8789
throw new IllegalArgumentException("Fields cannot be null");
8890
}
8991

90-
element.setMandatoryConditionFields(List.of(conditionalElement));
91-
element.setMandatoryConditionValues(List.of(value));
92+
element.setMandatoryConditionFields(List.of(conditionalElement.getKey()));
93+
element.setMandatoryConditionValues(Map.of(conditionalElement.getKey(), value));
94+
element.setVisibleConditionFields(List.of(conditionalElement.getKey()));
95+
element.setMandatoryConditionValues(Map.of(conditionalElement.getKey(), value));
9296
element.setMandatory(false);
9397
this.fields.add(element);
9498
return this;

openbas-framework/src/main/java/io/openbas/injector_contract/fields/ContractElement.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import io.openbas.model.LinkedFieldModel;
44
import java.util.ArrayList;
55
import java.util.List;
6+
import java.util.Map;
67
import lombok.Getter;
78
import lombok.Setter;
89

@@ -20,9 +21,13 @@ public abstract class ContractElement {
2021

2122
private List<String> mandatoryGroups;
2223

23-
private List<ContractElement> mandatoryConditionFields;
24+
private List<String> mandatoryConditionFields;
2425

25-
private List<String> mandatoryConditionValues;
26+
private Map<String, String> mandatoryConditionValues;
27+
28+
private List<String> visibleConditionFields;
29+
30+
private Map<String, String> visibleConditionValues;
2631

2732
private List<LinkedFieldModel> linkedFields = new ArrayList<>();
2833

openbas-model/src/main/java/io/openbas/database/model/InjectorContract.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -171,14 +171,14 @@ public int hashCode() {
171171

172172
// -- INJECTOR CONTRACT CONTENT --
173173

174-
public static final String CONTACT_CONTENT_FIELDS = "fields";
175-
public static final String CONTACT_ELEMENT_CONTENT_KEY = "key";
176-
public static final String CONTACT_ELEMENT_CONTENT_TYPE = "type";
177-
public static final String CONTACT_ELEMENT_CONTENT_MANDATORY = "mandatory";
178-
public static final String CONTACT_ELEMENT_CONTENT_MANDATORY_GROUPS = "mandatoryGroups";
179-
public static final String CONTACT_ELEMENT_CONTENT_MANDATORY_CONDITIONAL_FIELDS =
174+
public static final String CONTRACT_CONTENT_FIELDS = "fields";
175+
public static final String CONTRACT_ELEMENT_CONTENT_KEY = "key";
176+
public static final String CONTRACT_ELEMENT_CONTENT_TYPE = "type";
177+
public static final String CONTRACT_ELEMENT_CONTENT_MANDATORY = "mandatory";
178+
public static final String CONTRACT_ELEMENT_CONTENT_MANDATORY_GROUPS = "mandatoryGroups";
179+
public static final String CONTRACT_ELEMENT_CONTENT_MANDATORY_CONDITIONAL_FIELDS =
180180
"mandatoryConditionFields";
181-
public static final String CONTACT_ELEMENT_CONTENT_MANDATORY_CONDITIONAL_VALUES =
181+
public static final String CONTRACT_ELEMENT_CONTENT_MANDATORY_CONDITIONAL_VALUES =
182182
"mandatoryConditionValues";
183183
public static final String DEFAULT_VALUE_FIELD = "defaultValue";
184184

@@ -190,9 +190,9 @@ public int hashCode() {
190190
public static final String CONTRACT_ELEMENT_CONTENT_KEY_ATTACHMENTS = "attachments";
191191
public static final String CONTRACT_ELEMENT_CONTENT_KEY_EXPECTATIONS = "expectations";
192192

193-
public static final String CONTACT_ELEMENT_CONTENT_TYPE_ASSET = "asset";
194-
public static final String CONTACT_ELEMENT_CONTENT_TYPE_ASSET_GROUP = "asset-group";
195-
public static final String CONTACT_ELEMENT_CONTENT_TYPE_TEAM = "team";
193+
public static final String CONTRACT_ELEMENT_CONTENT_TYPE_ASSET = "asset";
194+
public static final String CONTRACT_ELEMENT_CONTENT_TYPE_ASSET_GROUP = "asset-group";
195+
public static final String CONTRACT_ELEMENT_CONTENT_TYPE_TEAM = "team";
196196

197197
public static final List<String> CONTRACT_ELEMENT_CONTENT_KEY_NOT_DYNAMIC =
198198
List.of(

0 commit comments

Comments
 (0)