Skip to content

Commit 3486376

Browse files
committed
Adjusted Kudos page to use new public kudos API
1 parent 243c433 commit 3486376

File tree

4 files changed

+47
-4
lines changed

4 files changed

+47
-4
lines changed

server/src/main/java/com/objectcomputing/checkins/services/kudos/KudosRepository.java

+1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ public interface KudosRepository extends CrudRepository<Kudos, UUID> {
6464
FROM kudos
6565
WHERE publiclyVisible IS TRUE
6666
AND (CAST(:since as date) IS NULL OR dateapproved >= :since)
67+
AND dateapproved IS NOT NULL
6768
ORDER BY datecreated DESC""", nativeQuery = true)
6869
List<Kudos> getPublic(@Nullable LocalDate since);
6970
}

server/src/test/java/com/objectcomputing/checkins/services/kudos/KudosControllerTest.java

+24
Original file line numberDiff line numberDiff line change
@@ -728,4 +728,28 @@ void testGetPublicKudosSince() {
728728
assertEquals(2, body.size());
729729
assertEquals(List.of(kudos.getId(), kudos3.getId()), List.of(body.get(0).getId(), body.get(1).getId()));
730730
}
731+
732+
@Test
733+
void testGetsOnlyApprovedPublicKudos() {
734+
UUID recipientId = recipientMembers.getFirst().getId();
735+
MemberProfile bob = memberWithoutBoss("bob");
736+
UUID someOtherRecipientId = bob.getId();
737+
738+
Kudos kudos = createApprovedKudos(senderId);
739+
Kudos kudos2 = createApprovedKudos(senderId);
740+
Kudos kudos3 = createApprovedKudos(senderId);
741+
Kudos kudos4= createPublicKudos(senderId);
742+
createKudosRecipient(kudos.getId(), recipientId);
743+
createKudosRecipient(kudos2.getId(), recipientId);
744+
createKudosRecipient(kudos3.getId(), someOtherRecipientId);
745+
createKudosRecipient(kudos4.getId(), someOtherRecipientId);
746+
747+
MutableHttpRequest<Object> request = HttpRequest.GET("/public").basicAuth(bob.getWorkEmail(), MEMBER_ROLE);
748+
final HttpResponse<List<KudosResponseDTO>> response = client.exchange(request, Argument.listOf(KudosResponseDTO.class));
749+
750+
assertEquals(OK, response.getStatus());
751+
List<KudosResponseDTO> body = response.body();
752+
assertEquals(3, body.size());
753+
assertEquals(List.of(kudos.getId(), kudos2.getId(), kudos3.getId()), List.of(body.get(0).getId(), body.get(1).getId(), body.get(2).getId()));
754+
}
731755
}

web-ui/src/api/kudos.js

+11
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,17 @@ export const getRecentKudos = async cookie => {
4646
});
4747
};
4848

49+
export const getPublicKudos = async (cookie, since) => {
50+
return resolve({
51+
url: `${kudosUrl}/public`,
52+
params: {
53+
since
54+
},
55+
responseType: 'json',
56+
headers: { 'X-CSRF-Header': cookie, Accept: 'application/json' }
57+
});
58+
};
59+
4960
export const getAllKudos = async (cookie, isPending) => {
5061
return resolve({
5162
url: kudosUrl,

web-ui/src/pages/KudosPage.jsx

+11-4
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
selectCurrentUser,
1313
selectHasCreateKudosPermission
1414
} from '../context/selectors';
15-
import { getReceivedKudos, getSentKudos, getAllKudos } from '../api/kudos';
15+
import { getReceivedKudos, getSentKudos, getPublicKudos } from '../api/kudos';
1616
import { UPDATE_TOAST } from '../context/actions';
1717
import KudosCard from '../components/kudos_card/KudosCard';
1818

@@ -81,8 +81,9 @@ const KudosPage = () => {
8181
const [publicKudosLoading, setPublicKudosLoading] = useState(true);
8282
const [dateRange, setDateRange] = useState(DateRange.THREE_MONTHS);
8383

84-
const isInRange = requestDate => {
84+
const getOldestDate = useCallback(() => {
8585
const oldestDate = new Date();
86+
oldestDate.setHours(0, 0, 0, 0);
8687
switch (dateRange) {
8788
case DateRange.SIX_MONTHS:
8889
oldestDate.setMonth(oldestDate.getMonth() - 6);
@@ -96,6 +97,11 @@ const KudosPage = () => {
9697
default:
9798
oldestDate.setMonth(oldestDate.getMonth() - 3);
9899
}
100+
return oldestDate;
101+
}, [dateRange]);
102+
103+
const isInRange = requestDate => {
104+
const oldestDate = getOldestDate();
99105

100106
if (Array.isArray(requestDate)) {
101107
requestDate = new Date(requestDate.join('/'));
@@ -124,10 +130,11 @@ const KudosPage = () => {
124130

125131
const loadPublicKudos = useCallback(async () => {
126132
setPublicKudosLoading(true);
127-
const res = await getAllKudos(csrf);
133+
const oldestDate = getOldestDate();
134+
const res = await getPublicKudos(csrf, oldestDate === true ? undefined : oldestDate?.toISOString().split('T')[0]);
128135
if (res?.payload?.data && !res.error) {
129136
setPublicKudosLoading(false);
130-
return res.payload.data.filter(k => isInRange(k.dateCreated));
137+
return res.payload.data;
131138
}
132139
}, [csrf, dispatch, currentUser.id, dateRange]);
133140

0 commit comments

Comments
 (0)