Skip to content
This repository was archived by the owner on Feb 13, 2024. It is now read-only.

Commit c691054

Browse files
author
Jason Sherman
committed
touch up the activity log configuration
Signed-off-by: Jason Sherman <jsherman@parcsystems.ca>
1 parent 57631f7 commit c691054

File tree

2 files changed

+121
-121
lines changed

2 files changed

+121
-121
lines changed

backend/business-partner-agent/src/main/java/org/hyperledger/bpa/config/ActivityLogConfig.java

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*/
1818
package org.hyperledger.bpa.config;
1919

20-
import lombok.NoArgsConstructor;
20+
import lombok.Getter;
2121
import org.hyperledger.aries.api.connection.ConnectionState;
2222
import org.hyperledger.aries.api.present_proof.PresentationExchangeState;
2323

@@ -27,7 +27,7 @@
2727
import java.util.List;
2828

2929
@Singleton
30-
@NoArgsConstructor
30+
@Getter
3131
public class ActivityLogConfig {
3232
/*
3333
* For now, we are not sure what to do with this configuration. Will each
@@ -36,64 +36,64 @@ public class ActivityLogConfig {
3636
* AcaPyConfig, which flags are set to auto respond...
3737
*/
3838

39-
@Inject
40-
AcaPyConfig acaPyConfig;
39+
private static List<ConnectionState> CONNECTION_STATES_TASKS = List.of(ConnectionState.REQUEST);
4140

42-
public List<ConnectionState> getConnectionStatesForActivities() {
43-
List<ConnectionState> results = new ArrayList<>(getConnectionStatesCompleted());
44-
results.addAll(getConnectionStatesForTasks());
45-
results.add(ConnectionState.INVITATION);
46-
return List.copyOf(results);
47-
}
41+
private static List<ConnectionState> CONNECTION_STATES_COMPLETED = List.of(ConnectionState.ACTIVE,
42+
ConnectionState.RESPONSE,
43+
ConnectionState.COMPLETED,
44+
ConnectionState.PING_RESPONSE,
45+
ConnectionState.PING_NO_RESPONSE);
4846

49-
public List<ConnectionState> getConnectionStatesForTasks() {
50-
if (this.isConnectionRequestTask()) {
51-
return connectionStates(ConnectionState.REQUEST);
52-
}
53-
return List.of();
54-
}
47+
private static List<PresentationExchangeState> PRESENTATION_EXCHANGE_STATES_TASKS = List.of(PresentationExchangeState.REQUEST_RECEIVED);
5548

56-
public List<ConnectionState> getConnectionStatesCompleted() {
57-
return connectionStates(ConnectionState.ACTIVE,
58-
ConnectionState.RESPONSE,
59-
ConnectionState.COMPLETED,
60-
ConnectionState.PING_RESPONSE,
61-
ConnectionState.PING_NO_RESPONSE);
62-
}
49+
private static List<PresentationExchangeState> PRESENTATION_EXCHANGE_STATES_COMPLETED = List.of(PresentationExchangeState.VERIFIED,
50+
PresentationExchangeState.PRESENTATION_ACKED);
6351

64-
public boolean isConnectionRequestTask() {
65-
return !acaPyConfig.getAutoAcceptRequests();
66-
}
52+
private List<ConnectionState> connectionStatesForActivities;
53+
private List<ConnectionState> connectionStatesForCompleted;
54+
private List<ConnectionState> connectionStatesForTasks;
55+
private List<PresentationExchangeState> presentationExchangeStatesForActivities;
56+
private List<PresentationExchangeState> presentationExchangeStatesForCompleted;
57+
private List<PresentationExchangeState> presentationExchangeStatesForTasks;
6758

68-
public List<PresentationExchangeState> getPresentationExchangeStatesForActivities() {
69-
List<PresentationExchangeState> results = new ArrayList<>(getPresentationExchangeStatesCompleted());
70-
results.addAll(getPresentationExchangeStatesForTasks());
71-
results.add(PresentationExchangeState.REQUEST_SENT);
72-
return List.copyOf(results);
73-
}
59+
private AcaPyConfig acaPyConfig;
60+
61+
@Inject
62+
ActivityLogConfig(AcaPyConfig acaPyConfig) {
63+
this.acaPyConfig = acaPyConfig;
64+
// 1. set the tasks lists first as they depend on aca py configuration
65+
connectionStatesForTasks = this.isConnectionRequestTask() ? CONNECTION_STATES_TASKS : List.of();
66+
presentationExchangeStatesForTasks = this.isPresentationExchangeTask() ? PRESENTATION_EXCHANGE_STATES_TASKS : List.of();
67+
68+
// 2. set the completed state lists
69+
connectionStatesForCompleted = CONNECTION_STATES_COMPLETED;
70+
presentationExchangeStatesForCompleted = PRESENTATION_EXCHANGE_STATES_COMPLETED;
7471

75-
public List<PresentationExchangeState> getPresentationExchangeStatesForTasks() {
76-
if (this.isPresentationExchangeTask()) {
77-
return presentationExchangeStates(PresentationExchangeState.REQUEST_RECEIVED);
78-
}
79-
return List.of();
72+
// 3. build the activity lists based on task and completed lists
73+
connectionStatesForActivities = this.buildConnectionStatesForActivities();
74+
presentationExchangeStatesForActivities = this.buildPresentationExchangeStatesForActivities();
8075
}
8176

82-
public List<PresentationExchangeState> getPresentationExchangeStatesCompleted() {
83-
return presentationExchangeStates(PresentationExchangeState.VERIFIED,
84-
PresentationExchangeState.PRESENTATION_ACKED);
77+
private List<ConnectionState> buildConnectionStatesForActivities() {
78+
List<ConnectionState> results = new ArrayList<>(this.getConnectionStatesForCompleted());
79+
results.addAll(this.getConnectionStatesForTasks());
80+
results.add(ConnectionState.INVITATION);
81+
return List.copyOf(results);
8582
}
8683

87-
public boolean isPresentationExchangeTask() {
88-
return !acaPyConfig.getAutoRespondPresentationRequest();
84+
private boolean isConnectionRequestTask() {
85+
return !this.acaPyConfig.getAutoAcceptRequests();
8986
}
9087

91-
private List<ConnectionState> connectionStates(ConnectionState... states) {
92-
return List.of(states);
88+
public List<PresentationExchangeState> buildPresentationExchangeStatesForActivities() {
89+
List<PresentationExchangeState> results = new ArrayList<>(this.getPresentationExchangeStatesForCompleted());
90+
results.addAll(this.getPresentationExchangeStatesForTasks());
91+
results.add(PresentationExchangeState.REQUEST_SENT);
92+
return List.copyOf(results);
9393
}
9494

95-
private List<PresentationExchangeState> presentationExchangeStates(PresentationExchangeState... states) {
96-
return List.of(states);
95+
private boolean isPresentationExchangeTask() {
96+
return !this.acaPyConfig.getAutoRespondPresentationRequest();
9797
}
9898

9999
}

backend/business-partner-agent/src/main/java/org/hyperledger/bpa/impl/ActivityManager.java

Lines changed: 75 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public void addPartnerRequestReceivedTask(@NonNull Partner partner) {
9696
Optional<Activity> existing = activityRepository.findByLinkIdAndTypeAndRole(partner.getId(),
9797
ActivityType.CONNECTION_REQUEST,
9898
ActivityRole.CONNECTION_REQUEST_RECIPIENT);
99-
if (!existing.isPresent()) {
99+
if (existing.isEmpty()) {
100100
Activity a = Activity.builder()
101101
.linkId(partner.getId())
102102
.partner(partner)
@@ -114,23 +114,23 @@ public void completePartnerRequestTask(@NonNull Partner partner) {
114114
activityRepository.findByLinkIdAndTypeAndRole(partner.getId(),
115115
ActivityType.CONNECTION_REQUEST,
116116
ActivityRole.CONNECTION_REQUEST_RECIPIENT).ifPresentOrElse(activity -> {
117-
// set to completed and mark accepted
118-
activity.setState(ActivityState.CONNECTION_REQUEST_ACCEPTED);
119-
activity.setCompleted(true);
120-
activityRepository.update(activity);
121-
eventPublisher.publishEventAsync(TaskCompletedEvent.builder().activity(activity).build());
122-
}, () -> {
123-
// add in a completed activity
124-
Activity a = Activity.builder()
125-
.linkId(partner.getId())
126-
.partner(partner)
127-
.type(ActivityType.CONNECTION_REQUEST)
128-
.role(ActivityRole.CONNECTION_REQUEST_RECIPIENT)
129-
.state(ActivityState.CONNECTION_REQUEST_ACCEPTED)
130-
.completed(true)
131-
.build();
132-
activityRepository.save(a);
133-
});
117+
// set to completed and mark accepted
118+
activity.setState(ActivityState.CONNECTION_REQUEST_ACCEPTED);
119+
activity.setCompleted(true);
120+
activityRepository.update(activity);
121+
eventPublisher.publishEventAsync(TaskCompletedEvent.builder().activity(activity).build());
122+
}, () -> {
123+
// add in a completed activity
124+
Activity a = Activity.builder()
125+
.linkId(partner.getId())
126+
.partner(partner)
127+
.type(ActivityType.CONNECTION_REQUEST)
128+
.role(ActivityRole.CONNECTION_REQUEST_RECIPIENT)
129+
.state(ActivityState.CONNECTION_REQUEST_ACCEPTED)
130+
.completed(true)
131+
.build();
132+
activityRepository.save(a);
133+
});
134134
}
135135

136136
public void deletePartnerActivities(@NonNull Partner partner) {
@@ -141,7 +141,7 @@ public void addPartnerAddedActivity(@NonNull Partner partner) {
141141
Optional<Activity> existing = activityRepository.findByLinkIdAndTypeAndRole(partner.getId(),
142142
ActivityType.CONNECTION_REQUEST,
143143
ActivityRole.CONNECTION_REQUEST_SENDER);
144-
if (!existing.isPresent()) {
144+
if (existing.isEmpty()) {
145145
Activity a = Activity.builder()
146146
.linkId(partner.getId())
147147
.partner(partner)
@@ -158,21 +158,21 @@ public void addPartnerAcceptedActivity(@NonNull Partner partner) {
158158
activityRepository.findByLinkIdAndTypeAndRole(partner.getId(),
159159
ActivityType.CONNECTION_REQUEST,
160160
ActivityRole.CONNECTION_REQUEST_SENDER).ifPresentOrElse(activity -> {
161-
activity.setState(ActivityState.CONNECTION_REQUEST_ACCEPTED);
162-
activity.setCompleted(true);
163-
activityRepository.update(activity);
164-
}, () -> {
165-
// add in a completed activity
166-
Activity a = Activity.builder()
167-
.linkId(partner.getId())
168-
.partner(partner)
169-
.type(ActivityType.CONNECTION_REQUEST)
170-
.role(ActivityRole.CONNECTION_REQUEST_SENDER)
171-
.state(ActivityState.CONNECTION_REQUEST_ACCEPTED)
172-
.completed(true)
173-
.build();
174-
activityRepository.save(a);
175-
});
161+
activity.setState(ActivityState.CONNECTION_REQUEST_ACCEPTED);
162+
activity.setCompleted(true);
163+
activityRepository.update(activity);
164+
}, () -> {
165+
// add in a completed activity
166+
Activity a = Activity.builder()
167+
.linkId(partner.getId())
168+
.partner(partner)
169+
.type(ActivityType.CONNECTION_REQUEST)
170+
.role(ActivityRole.CONNECTION_REQUEST_SENDER)
171+
.state(ActivityState.CONNECTION_REQUEST_ACCEPTED)
172+
.completed(true)
173+
.build();
174+
activityRepository.save(a);
175+
});
176176
}
177177

178178
public void addPresentationExchangeTask(@NonNull PartnerProof partnerProof) {
@@ -185,7 +185,7 @@ public void addPresentationExchangeTask(@NonNull PartnerProof partnerProof) {
185185
ActivityType.PRESENTATION_EXCHANGE,
186186
role);
187187

188-
if (!existing.isPresent()) {
188+
if (existing.isEmpty()) {
189189
Activity a = Activity.builder()
190190
.linkId(partnerProof.getId())
191191
.partner(partner)
@@ -213,24 +213,24 @@ public void completePresentationExchangeTask(@NonNull PartnerProof partnerProof)
213213
activityRepository.findByLinkIdAndTypeAndRole(partnerProof.getId(),
214214
ActivityType.PRESENTATION_EXCHANGE,
215215
role).ifPresentOrElse(activity -> {
216-
// set to completed and mark accepted
217-
activity.setState(state);
218-
activity.setCompleted(true);
219-
activityRepository.update(activity);
216+
// set to completed and mark accepted
217+
activity.setState(state);
218+
activity.setCompleted(true);
219+
activityRepository.update(activity);
220220

221-
eventPublisher.publishEventAsync(TaskCompletedEvent.builder().activity(activity).build());
222-
}, () -> {
223-
// add in a completed activity
224-
Activity a = Activity.builder()
225-
.linkId(partnerProof.getId())
226-
.partner(partner)
227-
.type(ActivityType.PRESENTATION_EXCHANGE)
228-
.role(role)
229-
.state(state)
230-
.completed(true)
231-
.build();
232-
activityRepository.save(a);
233-
});
221+
eventPublisher.publishEventAsync(TaskCompletedEvent.builder().activity(activity).build());
222+
}, () -> {
223+
// add in a completed activity
224+
Activity a = Activity.builder()
225+
.linkId(partnerProof.getId())
226+
.partner(partner)
227+
.type(ActivityType.PRESENTATION_EXCHANGE)
228+
.role(role)
229+
.state(state)
230+
.completed(true)
231+
.build();
232+
activityRepository.save(a);
233+
});
234234
});
235235
}
236236

@@ -242,11 +242,11 @@ public void declinePresentationExchangeTask(@NonNull PartnerProof partnerProof)
242242
activityRepository.findByLinkIdAndTypeAndRole(partnerProof.getId(),
243243
ActivityType.PRESENTATION_EXCHANGE,
244244
role).ifPresent(activity -> {
245-
activity.setState(ActivityState.PRESENTATION_EXCHANGE_DECLINED);
246-
activity.setCompleted(true);
247-
activityRepository.update(activity);
248-
eventPublisher.publishEventAsync(TaskCompletedEvent.builder().activity(activity).build());
249-
});
245+
activity.setState(ActivityState.PRESENTATION_EXCHANGE_DECLINED);
246+
activity.setCompleted(true);
247+
activityRepository.update(activity);
248+
eventPublisher.publishEventAsync(TaskCompletedEvent.builder().activity(activity).build());
249+
});
250250
});
251251
}
252252

@@ -255,9 +255,9 @@ public void deletePresentationExchangeTask(@NonNull PartnerProof partnerProof) {
255255
activityRepository.findByLinkIdAndTypeAndRole(partnerProof.getId(),
256256
ActivityType.PRESENTATION_EXCHANGE,
257257
role).ifPresent(activity -> {
258-
activityRepository.delete(activity);
259-
eventPublisher.publishEventAsync(TaskCompletedEvent.builder().activity(activity).build());
260-
});
258+
activityRepository.delete(activity);
259+
eventPublisher.publishEventAsync(TaskCompletedEvent.builder().activity(activity).build());
260+
});
261261
}
262262

263263
private ActivityItem convert(Activity activity) {
@@ -275,23 +275,23 @@ private ActivityItem convert(Activity activity) {
275275

276276
private ActivityState getPresentationExchangeState(PartnerProof partnerProof) {
277277
switch (partnerProof.getState()) {
278-
case VERIFIED:
279-
case PRESENTATION_ACKED:
280-
return ActivityState.PRESENTATION_EXCHANGE_ACCEPTED;
281-
case REQUEST_SENT:
282-
case PRESENTATIONS_SENT:
283-
return ActivityState.PRESENTATION_EXCHANGE_SENT;
284-
case REQUEST_RECEIVED:
285-
case PRESENTATION_RECEIVED:
286-
return ActivityState.PRESENTATION_EXCHANGE_RECEIVED;
287-
default:
288-
switch (partnerProof.getRole()) {
289-
case VERIFIER:
278+
case VERIFIED:
279+
case PRESENTATION_ACKED:
280+
return ActivityState.PRESENTATION_EXCHANGE_ACCEPTED;
281+
case REQUEST_SENT:
282+
case PRESENTATIONS_SENT:
283+
return ActivityState.PRESENTATION_EXCHANGE_SENT;
284+
case REQUEST_RECEIVED:
285+
case PRESENTATION_RECEIVED:
290286
return ActivityState.PRESENTATION_EXCHANGE_RECEIVED;
291-
case PROVER:
292287
default:
293-
return ActivityState.PRESENTATION_EXCHANGE_SENT;
294-
}
288+
switch (partnerProof.getRole()) {
289+
case VERIFIER:
290+
return ActivityState.PRESENTATION_EXCHANGE_RECEIVED;
291+
case PROVER:
292+
default:
293+
return ActivityState.PRESENTATION_EXCHANGE_SENT;
294+
}
295295
}
296296
}
297297

0 commit comments

Comments
 (0)