Skip to content

Commit 462d81d

Browse files
hernaldourbinaoleg-odysseus
authored andcommitted
ATL-8: Updating username logic
1 parent 1fe7db0 commit 462d81d

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

src/main/java/org/ohdsi/webapi/statistic/service/StatisticService.java

+14-14
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,8 @@
2121
import java.text.SimpleDateFormat;
2222
import java.time.LocalDate;
2323
import java.time.ZoneId;
24-
import java.util.HashMap;
25-
import java.util.List;
26-
import java.util.Map;
27-
import java.util.Optional;
28-
import java.util.Set;
24+
import java.util.*;
25+
import java.util.regex.Matcher;
2926
import java.util.regex.Pattern;
3027
import java.util.stream.Collectors;
3128
import java.util.stream.Stream;
@@ -77,6 +74,7 @@ public class StatisticService {
7774
private static final String ENDPOINT_REGEXP =
7875
"^.*(\\d{4}-\\d{2}-\\d{2})T\\d{2}:\\d{2}:\\d{2}.*-\\s({METHOD_PLACEHOLDER}\\s.*{ENDPOINT_PLACEHOLDER})\\s-.*$";
7976

77+
private static final Pattern PLP_USER_REGEXP = Pattern.compile("- ([a-zA-Z0-9_]+) \\d+:\\d+:\\d+:\\d+:\\d+:\\d+:\\d+:\\d+");
8078
private static final String COHORT_GENERATION_NAME = "Cohort Generation";
8179

8280
private static final String CHARACTERIZATION_GENERATION_NAME = "Characterization Generation";
@@ -89,6 +87,8 @@ public class StatisticService {
8987

9088
private static final String PLP_GENERATION_NAME = "Prediction Generation";
9189

90+
private static final String PLP_USERNAME = "Username";
91+
9292
private static final Map<String, Pattern> patternMap = new HashMap<>();
9393

9494
static {
@@ -98,6 +98,7 @@ public class StatisticService {
9898
patternMap.put(IR_GENERATION_NAME, IR_GENERATION_REGEXP);
9999
patternMap.put(PLE_GENERATION_NAME, PLE_GENERATION_REGEXP);
100100
patternMap.put(PLP_GENERATION_NAME, PLP_GENERATION_REGEXP);
101+
patternMap.put(PLP_USERNAME, PLP_USER_REGEXP);
101102
}
102103

103104
public StatisticService() {
@@ -147,23 +148,22 @@ private List<AccessTrendDto> extractAccessTrends(Path path, List<EndpointDto> en
147148
.map(endpointPair -> {
148149
String method = endpointPair.getMethod();
149150
String endpoint = endpointPair.getUrlPattern().replaceAll("\\{\\}", ".*");
150-
String userId = endpointPair.getUserId();
151151
String regexpStr = ENDPOINT_REGEXP.replace("{METHOD_PLACEHOLDER}", method);
152152
regexpStr = regexpStr.replace("{ENDPOINT_PLACEHOLDER}", endpoint);
153-
regexpStr = regexpStr.replace("{USERID_PLACEHOLDER}", userId);
154153

155154
return Pattern.compile(regexpStr);
156155
})
157156
.collect(Collectors.toList());
158157
try (Stream<String> stream = Files.lines(path)) {
159158
return stream
160-
.map(str ->
161-
patterns.stream()
159+
.map(str -> {
160+
Matcher userMatcher = PLP_USER_REGEXP.matcher(str);
161+
return patterns.stream()
162162
.map(pattern -> pattern.matcher(str))
163-
.filter(matcher -> matcher.matches())
164-
.map(matcher -> new AccessTrendDto(matcher.group(2), LocalDate.parse(matcher.group(1)), matcher.group(3)))
165-
.findFirst()
166-
)
163+
.filter(Matcher::matches)
164+
.map(matcher -> new AccessTrendDto(matcher.group(2), LocalDate.parse(matcher.group(1)), showUserInformation && userMatcher.find() ? userMatcher.group(1) : null))
165+
.findFirst();
166+
})
167167
.filter(Optional::isPresent)
168168
.map(Optional::get)
169169
.collect(Collectors.toList());
@@ -178,7 +178,7 @@ private Optional<SourceExecutionDto> getMatchedExecution(String str, String sour
178178
.map(entry -> new ImmutablePair<>(entry.getKey(), entry.getValue().matcher(str)))
179179
.filter(pair -> pair.getValue().matches())
180180
.filter(pair -> sourceKey == null || (sourceKey != null && sourceKey.equals(pair.getValue().group(2))))
181-
.map(pair -> new SourceExecutionDto(pair.getValue().group(2), pair.getKey(), LocalDate.parse(pair.getValue().group(1)), pair.getValue().group(3)))
181+
.map(pair -> new SourceExecutionDto(pair.getValue().group(2), pair.getKey(), LocalDate.parse(pair.getValue().group(1)), showUserInformation ? pair.getValue().group(1) : null))
182182
.findFirst();
183183
}
184184

0 commit comments

Comments
 (0)