RED-9393: user stats endpoint
added endpoint
This commit is contained in:
parent
05a1a7de54
commit
21ed61bc61
@ -1,14 +1,16 @@
|
||||
package com.iqser.red.persistence.service.v1.external.api.impl.controller;
|
||||
|
||||
import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_USER_STATS;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.DossierService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusManagementService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.users.UserService;
|
||||
import com.iqser.red.service.persistence.service.v1.api.external.model.UserStats;
|
||||
@ -24,33 +26,32 @@ public class UserStatsController implements UserStatsResource {
|
||||
|
||||
private final UserService userService;
|
||||
private final DossierService dossierService;
|
||||
private final FileStatusManagementService fileStatusManagementService;
|
||||
private final FileStatusPersistenceService fileStatusPersistenceService;
|
||||
|
||||
|
||||
@Override
|
||||
@PreAuthorize("hasAuthority('" + READ_USER_STATS + "')")
|
||||
public UserStats getUserStats(String userId) {
|
||||
|
||||
if (userService.getUserById(userId) == null) {
|
||||
return null;
|
||||
}
|
||||
List<DossierEntity> allDossiers = dossierService.getAllDossiers();
|
||||
List<FileEntity> allFiels = fileStatusPersistenceService.getAllFiles()
|
||||
List<FileEntity> allFiles = fileStatusPersistenceService.getAllFiles()
|
||||
.stream()
|
||||
.filter(fileEntity -> fileEntity.getAssignee() != null)
|
||||
.filter(file -> file.getAssignee().equals(userId))
|
||||
.collect(Collectors.toList());
|
||||
int numberOfDossierOwnerships = allDossiers.stream()
|
||||
.filter(fileEntity -> fileEntity.getOwnerId() != null)
|
||||
.filter(dossier -> dossier.getOwnerId().equals(userId))
|
||||
.collect(Collectors.toList()).size();
|
||||
int numberOfDossierMemberships = allDossiers.stream()
|
||||
.filter(fileEntity -> fileEntity.getMemberIds() != null)
|
||||
.filter(dossier -> dossier.getMemberIds().contains(userId))
|
||||
.collect(Collectors.toList()).size();
|
||||
int numberOfAssignedFiles = allFiels.size();
|
||||
return UserStats.builder()
|
||||
.numberOfDossierOwnerships(numberOfDossierOwnerships)
|
||||
.numberOfDossierMemberships(numberOfDossierMemberships)
|
||||
.numberOfAssignedFiles(numberOfAssignedFiles)
|
||||
.build();
|
||||
int numberOfAssignedFiles = allFiles.size();
|
||||
return new UserStats(numberOfDossierMemberships, numberOfDossierOwnerships, numberOfAssignedFiles);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -4,10 +4,10 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class UserStats {
|
||||
|
||||
|
||||
@ -171,6 +171,10 @@ public final class ActionRoles {
|
||||
// RSS
|
||||
public static final String GET_RSS = "red-get-rss";
|
||||
|
||||
// USER STATS
|
||||
|
||||
public static final String READ_USER_STATS = "red-get-user-stats";
|
||||
|
||||
// Multitenancy
|
||||
public static final String CREATE_TENANT = "red-create-tenant";
|
||||
public static final String GET_TENANTS = "red-get-tenants";
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user