From 893a4719bc19cd7a03ddc537be510bd2bd5ed147 Mon Sep 17 00:00:00 2001 From: Michael Kimberlin Date: Tue, 12 Nov 2024 23:18:54 -0600 Subject: [PATCH 1/2] Refactor merit report to utilize cache for lookup by email --- .../memberprofile/MemberProfileServices.java | 4 + .../MemberProfileServicesImpl.java | 14 +++ .../services/reports/CSVProcessor.java | 8 +- .../services/reports/CompensationHistory.java | 66 ++++++------- .../services/reports/CurrentInformation.java | 95 +++++++++---------- .../services/reports/PositionHistory.java | 87 ++++++++--------- .../services/reports/ReportDataCollation.java | 23 +++-- .../reports/ReportDataController.java | 9 +- 8 files changed, 156 insertions(+), 150 deletions(-) diff --git a/server/src/main/java/com/objectcomputing/checkins/services/memberprofile/MemberProfileServices.java b/server/src/main/java/com/objectcomputing/checkins/services/memberprofile/MemberProfileServices.java index 211418808c..a3ed021069 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/memberprofile/MemberProfileServices.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/memberprofile/MemberProfileServices.java @@ -1,5 +1,6 @@ package com.objectcomputing.checkins.services.memberprofile; +import io.micronaut.cache.annotation.Cacheable; import jakarta.validation.constraints.NotNull; import java.util.List; @@ -9,6 +10,9 @@ public interface MemberProfileServices { MemberProfile getById(UUID id); + @Cacheable + MemberProfile findByWorkEmail(@NotNull String workEmail); + Set findByValues(String firstName, String lastName, String title, UUID pdlId, String workEmail, UUID supervisorId, Boolean terminated); diff --git a/server/src/main/java/com/objectcomputing/checkins/services/memberprofile/MemberProfileServicesImpl.java b/server/src/main/java/com/objectcomputing/checkins/services/memberprofile/MemberProfileServicesImpl.java index 9d1321dd38..667606949a 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/memberprofile/MemberProfileServicesImpl.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/memberprofile/MemberProfileServicesImpl.java @@ -13,6 +13,7 @@ import com.objectcomputing.checkins.services.role.RoleServices; import com.objectcomputing.checkins.services.team.member.TeamMemberServices; import io.micronaut.cache.annotation.CacheConfig; +import io.micronaut.cache.annotation.CacheInvalidate; import io.micronaut.cache.annotation.Cacheable; import io.micronaut.core.annotation.Nullable; import jakarta.inject.Named; @@ -55,6 +56,7 @@ public MemberProfileServicesImpl(MemberProfileRepository memberProfileRepository } @Override + @Cacheable public MemberProfile getById(@NotNull UUID id) { Optional optional = memberProfileRepository.findById(id); if (optional.isEmpty()) { @@ -67,6 +69,14 @@ public MemberProfile getById(@NotNull UUID id) { return memberProfile; } + @Cacheable + @Override + public MemberProfile findByWorkEmail(@NotNull String workEmail) { + return memberProfileRepository.findByWorkEmail(workEmail).orElseThrow(() -> + new NotFoundException("Member not found") + ); + } + @Override public Set findByValues(@Nullable String firstName, @Nullable String lastName, @@ -86,6 +96,7 @@ public Set findByValues(@Nullable String firstName, } @Override + @CacheInvalidate(cacheNames = {"member-cache"}) public MemberProfile saveProfile(MemberProfile memberProfile) { MemberProfile emailProfile = memberProfileRepository.findByWorkEmail(memberProfile.getWorkEmail()).orElse(null); @@ -152,6 +163,7 @@ public void emailAssignment(MemberProfile member, boolean isPDL) { } @Override + @CacheInvalidate(cacheNames = {"member-cache"}) public boolean deleteProfile(@NotNull UUID id) { if (!currentUserServices.isAdmin()) { throw new PermissionException("Requires admin privileges"); @@ -183,6 +195,7 @@ public boolean deleteProfile(@NotNull UUID id) { } @Override + @Cacheable(parameters = {"firstName", "lastName"}) public MemberProfile findByName(@NotNull String firstName, @NotNull String lastName) { List searchResult = memberProfileRepository.search(firstName, null, lastName, null, null, null, null, null, null); @@ -222,6 +235,7 @@ public List getSubordinatesForId(UUID id) { } @Override + @CacheInvalidate(cacheNames = {"member-cache"}) public MemberProfile updateProfile(MemberProfile memberProfile) { return memberProfileRepository.update(memberProfile); } diff --git a/server/src/main/java/com/objectcomputing/checkins/services/reports/CSVProcessor.java b/server/src/main/java/com/objectcomputing/checkins/services/reports/CSVProcessor.java index b75cd91d34..b169c0ff42 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/reports/CSVProcessor.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/reports/CSVProcessor.java @@ -1,8 +1,8 @@ package com.objectcomputing.checkins.services.reports; -import com.objectcomputing.checkins.services.memberprofile.MemberProfileRepository; import com.objectcomputing.checkins.exceptions.BadArgException; +import com.objectcomputing.checkins.services.memberprofile.MemberProfileServices; import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVParser; @@ -18,7 +18,7 @@ abstract class CSVProcessor { - public void load(MemberProfileRepository memberProfileRepository, + public void load(MemberProfileServices memberProfileServices, ByteBuffer dataSource) throws IOException, BadArgException { ByteArrayInputStream stream = new ByteArrayInputStream(dataSource.array()); @@ -30,10 +30,10 @@ public void load(MemberProfileRepository memberProfileRepository, .setNullString("") .build() .parse(input); - loadImpl(memberProfileRepository, csvParser); + loadImpl(memberProfileServices, csvParser); } - protected abstract void loadImpl(MemberProfileRepository memberProfileRepository, CSVParser csvParser) throws BadArgException; + protected abstract void loadImpl(MemberProfileServices memberProfileServices, CSVParser csvParser) throws BadArgException; protected LocalDate parseDate(String date) { List formatStrings = List.of("yyyy", "M/d/yyyy"); diff --git a/server/src/main/java/com/objectcomputing/checkins/services/reports/CompensationHistory.java b/server/src/main/java/com/objectcomputing/checkins/services/reports/CompensationHistory.java index e7cc69e186..15a1cca597 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/reports/CompensationHistory.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/reports/CompensationHistory.java @@ -1,9 +1,10 @@ package com.objectcomputing.checkins.services.reports; +import com.objectcomputing.checkins.exceptions.NotFoundException; import com.objectcomputing.checkins.services.memberprofile.MemberProfile; -import com.objectcomputing.checkins.services.memberprofile.MemberProfileRepository; import com.objectcomputing.checkins.exceptions.BadArgException; +import com.objectcomputing.checkins.services.memberprofile.MemberProfileServices; import io.micronaut.core.annotation.Introspected; import org.apache.commons.csv.CSVParser; import org.apache.commons.csv.CSVRecord; @@ -12,10 +13,7 @@ import org.slf4j.LoggerFactory; import java.time.LocalDate; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; -import java.util.Optional; +import java.util.*; public class CompensationHistory extends CSVProcessor { @@ -32,41 +30,39 @@ public record Compensation( private final List history = new ArrayList<>(); @Override - protected void loadImpl(MemberProfileRepository memberProfileRepository, + protected void loadImpl(MemberProfileServices memberProfileServices, CSVParser csvParser) throws BadArgException { - history.clear(); - for (CSVRecord csvRecord : csvParser) { - try { - String emailAddress = csvRecord.get("emailAddress"); - Optional memberProfile = - memberProfileRepository.findByWorkEmail(emailAddress); - if (memberProfile.isPresent()) { - String startDate = csvRecord.get("startDate"); - LocalDate date = parseDate(startDate); - if (date == null) { - LOG.error("Unable to parse date: {}", startDate); - } else { - String value = csvRecord.get("compensation"); - Compensation comp = new Compensation( - memberProfile.get().getId(), - date, - value == null ? null : value.replaceAll("[^\\d\\.,]", ""), - csvRecord.get("totalComp") - ); - history.add(comp); + history.clear(); + for (CSVRecord csvRecord : csvParser) { + String emailAddress = null; + try { + emailAddress = csvRecord.get("emailAddress"); + MemberProfile memberProfile = memberProfileServices.findByWorkEmail(emailAddress); + String startDate = csvRecord.get("startDate"); + LocalDate date = parseDate(startDate); + if (date == null) { + LOG.error("Unable to parse date: {}", startDate); + } else { + String value = csvRecord.get("compensation"); + Compensation comp = new Compensation( + memberProfile.getId(), + date, + value == null ? null : value.replaceAll("[^\\d\\.,]", ""), + csvRecord.get("totalComp") + ); + history.add(comp); + } + } catch (NotFoundException nfe) { + LOG.error("Unable to find a profile for {}", emailAddress); + } catch (IllegalArgumentException ex) { + throw new BadArgException("Unable to parse the compensation history"); } - } else { - LOG.error("Unable to find a profile for {}", emailAddress); - } - } catch(IllegalArgumentException ex) { - throw new BadArgException("Unable to parse the compensation history"); } - } } public List getHistory(UUID memberId) { - return history.stream() - .filter(entry -> entry.memberId().equals(memberId)) - .toList(); + return history.stream() + .filter(entry -> entry.memberId().equals(memberId)) + .toList(); } } diff --git a/server/src/main/java/com/objectcomputing/checkins/services/reports/CurrentInformation.java b/server/src/main/java/com/objectcomputing/checkins/services/reports/CurrentInformation.java index 2391b0a534..081cf10d9a 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/reports/CurrentInformation.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/reports/CurrentInformation.java @@ -2,9 +2,9 @@ import com.objectcomputing.checkins.exceptions.NotFoundException; import com.objectcomputing.checkins.services.memberprofile.MemberProfile; -import com.objectcomputing.checkins.services.memberprofile.MemberProfileRepository; import com.objectcomputing.checkins.exceptions.BadArgException; +import com.objectcomputing.checkins.services.memberprofile.MemberProfileServices; import io.micronaut.core.annotation.Introspected; import org.apache.commons.csv.CSVParser; import org.apache.commons.csv.CSVRecord; @@ -12,61 +12,56 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; -import java.util.Optional; +import java.util.*; public class CurrentInformation extends CSVProcessor { - @Introspected - public record Information( - UUID memberId, - float salary, - String range, - String nationalRange, - String biography, - String commitments - ) { - } + @Introspected + public record Information( + UUID memberId, + float salary, + String range, + String nationalRange, + String biography, + String commitments + ) { + } - private static final Logger LOG = LoggerFactory.getLogger(CurrentInformation.class); - private final List information = new ArrayList<>(); + private static final Logger LOG = LoggerFactory.getLogger(CurrentInformation.class); + private final List information = new ArrayList<>(); - @Override - protected void loadImpl(MemberProfileRepository memberProfileRepository, - CSVParser csvParser) throws BadArgException { - information.clear(); - for (CSVRecord csvRecord : csvParser) { - try { - String emailAddress = csvRecord.get("emailAddress"); - Optional memberProfile = - memberProfileRepository.findByWorkEmail(emailAddress); - if (memberProfile.isPresent()) { - Information comp = new Information( - memberProfile.get().getId(), - Float.parseFloat(csvRecord.get("salary") - .replaceAll("[^\\d\\.,]", "")), - csvRecord.get("range"), - csvRecord.get("nationalRange"), - csvRecord.get("biography"), - csvRecord.get("commitments") - ); - information.add(comp); - } else { - LOG.error("Unable to find a profile for {}", emailAddress); + @Override + protected void loadImpl(MemberProfileServices memberProfileServices, + CSVParser csvParser) throws BadArgException { + information.clear(); + for (CSVRecord csvRecord : csvParser) { + String emailAddress = null; + try { + emailAddress = csvRecord.get("emailAddress"); + MemberProfile memberProfile = memberProfileServices.findByWorkEmail(emailAddress); + Information comp = new Information( + memberProfile.getId(), + Float.parseFloat(csvRecord.get("salary") + .replaceAll("[^\\d\\.,]", "")), + csvRecord.get("range"), + csvRecord.get("nationalRange"), + csvRecord.get("biography"), + csvRecord.get("commitments") + ); + information.add(comp); + } catch (NotFoundException nfe) { + LOG.error("Unable to find a profile for {}", emailAddress); + } catch (IllegalArgumentException ex) { + throw new BadArgException("Unable to parse the current information"); + } } - } catch(IllegalArgumentException ex) { - throw new BadArgException("Unable to parse the current information"); - } } - } - public Information getInformation(UUID memberId) { - // There should only be one entry per member. - return information.stream() - .filter(entry -> entry.memberId().equals(memberId)) - .findFirst() - .orElseThrow(() -> new NotFoundException("Current Information not found for member: " + memberId)); - } + public Information getInformation(UUID memberId) { + // There should only be one entry per member. + return information.stream() + .filter(entry -> entry.memberId().equals(memberId)) + .findFirst() + .orElseThrow(() -> new NotFoundException("Current Information not found for member: " + memberId)); + } } diff --git a/server/src/main/java/com/objectcomputing/checkins/services/reports/PositionHistory.java b/server/src/main/java/com/objectcomputing/checkins/services/reports/PositionHistory.java index e3426680d3..87ab04d2ab 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/reports/PositionHistory.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/reports/PositionHistory.java @@ -1,9 +1,11 @@ package com.objectcomputing.checkins.services.reports; +import com.objectcomputing.checkins.exceptions.NotFoundException; import com.objectcomputing.checkins.services.memberprofile.MemberProfile; import com.objectcomputing.checkins.services.memberprofile.MemberProfileRepository; import com.objectcomputing.checkins.exceptions.BadArgException; +import com.objectcomputing.checkins.services.memberprofile.MemberProfileServices; import io.micronaut.core.annotation.Introspected; import org.apache.commons.csv.CSVParser; import org.apache.commons.csv.CSVRecord; @@ -12,57 +14,52 @@ import org.slf4j.LoggerFactory; import java.time.LocalDate; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; -import java.util.Optional; +import java.util.*; public class PositionHistory extends CSVProcessor { - @Introspected - public record Position( - UUID memberId, - LocalDate date, - String title - ) { - } + @Introspected + public record Position( + UUID memberId, + LocalDate date, + String title + ) { + } - private static final Logger LOG = LoggerFactory.getLogger(PositionHistory.class); - private final List history = new ArrayList<>(); + private static final Logger LOG = LoggerFactory.getLogger(PositionHistory.class); + private final List history = new ArrayList<>(); - @Override - protected void loadImpl(MemberProfileRepository memberProfileRepository, - CSVParser csvParser) throws BadArgException { - history.clear(); - for (CSVRecord csvRecord : csvParser) { - try { - String emailAddress = csvRecord.get("emailAddress"); - Optional memberProfile = - memberProfileRepository.findByWorkEmail(emailAddress); - if (memberProfile.isPresent()) { - String csvDate = csvRecord.get("date"); - LocalDate date = parseDate(csvDate); - if (date == null) { - LOG.error("Unable to parse date: {}", csvDate); - } else { - Position position = new Position( - memberProfile.get().getId(), - date, - csvRecord.get("title")); - history.add(position); - } - } else { - LOG.error("Unable to find a profile for {}", emailAddress); + @Override + protected void loadImpl(MemberProfileServices memberProfileServices, + CSVParser csvParser) throws BadArgException { + history.clear(); + for (CSVRecord csvRecord : csvParser) { + String emailAddress = null; + try { + emailAddress = csvRecord.get("emailAddress"); + MemberProfile memberProfile = memberProfileServices.findByWorkEmail(emailAddress); + String csvDate = csvRecord.get("date"); + LocalDate date = parseDate(csvDate); + if (date == null) { + LOG.error("Unable to parse date: {}", csvDate); + } else { + Position position = new Position( + memberProfile.getId(), + date, + csvRecord.get("title")); + history.add(position); + } + } catch (NotFoundException nfe) { + LOG.error("Unable to find a profile for {}", emailAddress); + } catch (IllegalArgumentException ex) { + throw new BadArgException("Unable to parse the position history"); + } } - } catch(IllegalArgumentException ex) { - throw new BadArgException("Unable to parse the position history"); - } } - } - public List getHistory(UUID memberId) { - return history.stream() - .filter(entry -> entry.memberId().equals(memberId)) - .toList(); - } + public List getHistory(UUID memberId) { + return history.stream() + .filter(entry -> entry.memberId().equals(memberId)) + .toList(); + } } diff --git a/server/src/main/java/com/objectcomputing/checkins/services/reports/ReportDataCollation.java b/server/src/main/java/com/objectcomputing/checkins/services/reports/ReportDataCollation.java index 969aa5aea5..3578b415bd 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/reports/ReportDataCollation.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/reports/ReportDataCollation.java @@ -1,6 +1,7 @@ package com.objectcomputing.checkins.services.reports; import com.objectcomputing.checkins.exceptions.NotFoundException; +import com.objectcomputing.checkins.services.memberprofile.MemberProfileServices; import com.objectcomputing.checkins.services.memberprofile.MemberProfileUtils; import com.objectcomputing.checkins.services.kudos.kudos_recipient.KudosRecipientRepository; import com.objectcomputing.checkins.services.kudos.kudos_recipient.KudosRecipient; @@ -65,7 +66,7 @@ private enum FeedbackType { private PositionHistory positionHistory; private KudosRepository kudosRepository; private KudosRecipientRepository kudosRecipientRepository; - private MemberProfileRepository memberProfileRepository; + private MemberProfileServices memberProfileServices; private ReviewPeriodServices reviewPeriodServices; private ReportDataServices reportDataServices; private FeedbackTemplateServices feedbackTemplateServices; @@ -78,7 +79,7 @@ public ReportDataCollation( UUID memberId, UUID reviewPeriodId, KudosRepository kudosRepository, KudosRecipientRepository kudosRecipientRepository, - MemberProfileRepository memberProfileRepository, + MemberProfileServices memberProfileServices, ReviewPeriodServices reviewPeriodServices, ReportDataServices reportDataServices, FeedbackTemplateServices feedbackTemplateServices, @@ -93,7 +94,7 @@ public ReportDataCollation( this.positionHistory = new PositionHistory(); this.kudosRepository = kudosRepository; this.kudosRecipientRepository = kudosRecipientRepository; - this.memberProfileRepository = memberProfileRepository; + this.memberProfileServices = memberProfileServices; this.reviewPeriodServices = reviewPeriodServices; this.reportDataServices = reportDataServices; this.feedbackTemplateServices = feedbackTemplateServices; @@ -125,7 +126,7 @@ public List getKudos() { LocalDate created = kudos.getDateCreated(); if (dateInRange(created, startDate, endDate)) { MemberProfile senderProfile = - memberProfileRepository.findById(kudos.getSenderId()).orElse(null); + memberProfileServices.getById(kudos.getSenderId()); String sender = senderProfile == null ? "Unknown" : MemberProfileUtils.getFullName(senderProfile); @@ -139,9 +140,7 @@ public List getKudos() { /// Get the member name, title, and start date among others. public MemberProfile getMemberProfile() { - return memberProfileRepository.findById(memberId).orElseThrow(() -> - new NotFoundException("Member not found") - ); + return memberProfileServices.getById(memberId); } /// Get the compensation history for the designated member. @@ -149,7 +148,7 @@ public List getCompensationHistory() { try { ByteBuffer buffer = reportDataServices.get( ReportDataServices.DataType.compensationHistory); - compensationHistory.load(memberProfileRepository, buffer); + compensationHistory.load(memberProfileServices, buffer); } catch(IOException ex) { } return compensationHistory.getHistory(memberId); @@ -160,7 +159,7 @@ public CurrentInformation.Information getCurrentInformation() { try { ByteBuffer buffer = reportDataServices.get( ReportDataServices.DataType.currentInformation); - currentInformation.load(memberProfileRepository, buffer); + currentInformation.load(memberProfileServices, buffer); } catch(IOException ex) { } return currentInformation.getInformation(memberId); @@ -171,7 +170,7 @@ public List getPositionHistory() { try { ByteBuffer buffer = reportDataServices.get( ReportDataServices.DataType.positionHistory); - positionHistory.load(memberProfileRepository, buffer); + positionHistory.load(memberProfileServices, buffer); } catch(IOException ex) { } return positionHistory.getHistory(memberId); @@ -282,8 +281,8 @@ private List getFeedbackType(FeedbackType type) { for (FeedbackRequest request: requests) { if (request.getTemplateId().equals(templateId)) { UUID recipientId = request.getRecipientId(); - MemberProfile recipient = memberProfileRepository.findById( - recipientId).orElse(null); + MemberProfile recipient = memberProfileServices.getById( + recipientId); String recipientName = (recipient == null ? recipientId.toString() : MemberProfileUtils.getFullName(recipient)); diff --git a/server/src/main/java/com/objectcomputing/checkins/services/reports/ReportDataController.java b/server/src/main/java/com/objectcomputing/checkins/services/reports/ReportDataController.java index d616748ce4..15647cede2 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/reports/ReportDataController.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/reports/ReportDataController.java @@ -1,5 +1,6 @@ package com.objectcomputing.checkins.services.reports; +import com.objectcomputing.checkins.services.memberprofile.MemberProfileServices; import com.objectcomputing.checkins.services.permissions.Permission; import com.objectcomputing.checkins.services.permissions.RequiredPermission; import com.objectcomputing.checkins.services.kudos.KudosRepository; @@ -43,7 +44,7 @@ public class ReportDataController { private final ReportDataServices reportDataServices; private final KudosRepository kudosRepository; private final KudosRecipientRepository kudosRecipientRepository; - private final MemberProfileRepository memberProfileRepository; + private final MemberProfileServices memberProfileServices; private final ReviewPeriodServices reviewPeriodServices; private final FeedbackTemplateServices feedbackTemplateServices; private final FeedbackRequestServices feedbackRequestServices; @@ -54,7 +55,7 @@ public class ReportDataController { public ReportDataController(ReportDataServices reportDataServices, KudosRepository kudosRepository, KudosRecipientRepository kudosRecipientRepository, - MemberProfileRepository memberProfileRepository, + MemberProfileServices memberProfileServices, ReviewPeriodServices reviewPeriodServices, FeedbackTemplateServices feedbackTemplateServices, FeedbackRequestServices feedbackRequestServices, @@ -64,7 +65,7 @@ public ReportDataController(ReportDataServices reportDataServices, this.reportDataServices = reportDataServices; this.kudosRepository = kudosRepository; this.kudosRecipientRepository = kudosRecipientRepository; - this.memberProfileRepository = memberProfileRepository; + this.memberProfileServices = memberProfileServices; this.reviewPeriodServices = reviewPeriodServices; this.feedbackTemplateServices = feedbackTemplateServices; this.feedbackRequestServices = feedbackRequestServices; @@ -124,7 +125,7 @@ public List get(@NotNull List memberIds, memberId, reviewPeriodId, kudosRepository, kudosRecipientRepository, - memberProfileRepository, + memberProfileServices, reviewPeriodServices, reportDataServices, feedbackTemplateServices, From 41300415f10c378496fe396f5b66663b7675bd92 Mon Sep 17 00:00:00 2001 From: Michael Kimberlin Date: Tue, 12 Nov 2024 23:32:12 -0600 Subject: [PATCH 2/2] Removed unnecessary annotation --- .../checkins/services/memberprofile/MemberProfileServices.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/server/src/main/java/com/objectcomputing/checkins/services/memberprofile/MemberProfileServices.java b/server/src/main/java/com/objectcomputing/checkins/services/memberprofile/MemberProfileServices.java index a3ed021069..5643e30769 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/memberprofile/MemberProfileServices.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/memberprofile/MemberProfileServices.java @@ -1,6 +1,5 @@ package com.objectcomputing.checkins.services.memberprofile; -import io.micronaut.cache.annotation.Cacheable; import jakarta.validation.constraints.NotNull; import java.util.List; @@ -10,7 +9,6 @@ public interface MemberProfileServices { MemberProfile getById(UUID id); - @Cacheable MemberProfile findByWorkEmail(@NotNull String workEmail); Set findByValues(String firstName, String lastName, String title,