Skip to content

Commit 35b761e

Browse files
committed
Update timestamp
1 parent d183542 commit 35b761e

3 files changed

Lines changed: 24 additions & 4 deletions

File tree

internal/datastore/src/letter-queue-repository.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ export default class LetterQueueRepository {
8686
async getLetters(
8787
supplierId: string,
8888
limit: number,
89-
): Promise<PendingLetterBase[]> {
89+
): Promise<PendingLetter[]> {
9090
const result = await this.ddbClient.send(
9191
new QueryCommand({
9292
TableName: this.config.letterQueueTableName,
@@ -95,12 +95,11 @@ export default class LetterQueueRepository {
9595
ExpressionAttributeValues: {
9696
":supplierId": supplierId,
9797
},
98-
ProjectionExpression: "supplierId, letterId, specificationId, groupId",
9998
Limit: limit,
10099
}),
101100
);
102101

103-
return z.array(PendingLetterSchemaBase).parse(result.Items);
102+
return z.array(PendingLetterSchema).parse(result.Items);
104103
}
105104

106105
async updateLetterTimestamp(

lambdas/api-handler/src/services/__tests__/letter-operations.test.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ describe("getPendingLetters", () => {
4949
jest.clearAllMocks();
5050
});
5151

52-
it("returns letters from the letter queue repository mapped to LetterBase", async () => {
52+
it("returns letters from the letter queue repository", async () => {
5353
const mockRepo = {
5454
getLetters: jest.fn().mockResolvedValue([
5555
{
@@ -65,11 +65,24 @@ describe("getPendingLetters", () => {
6565
groupId: "g1",
6666
},
6767
]),
68+
updateLetterTimestamp: jest.fn()
6869
};
6970

7071
const result = await getPendingLetters("supplier1", 10, mockRepo as any);
7172

7273
expect(mockRepo.getLetters).toHaveBeenCalledWith("supplier1", 10);
74+
expect(mockRepo.updateLetterTimestamp).toHaveBeenNthCalledWith(
75+
1,
76+
"supplier1",
77+
"id1",
78+
600,
79+
);
80+
expect(mockRepo.updateLetterTimestamp).toHaveBeenNthCalledWith(
81+
2,
82+
"supplier1",
83+
"id2",
84+
600,
85+
);
7386
expect(result).toEqual([
7487
{ id: "id1", status: "PENDING", specificationId: "s1", groupId: "g1" },
7588
{ id: "id2", status: "PENDING", specificationId: "s1", groupId: "g1" },

lambdas/api-handler/src/services/letter-operations.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {
22
LetterBase,
33
LetterQueueRepository,
44
LetterRepository,
5+
PendingLetter,
56
PendingLetterBase,
67
} from "@internal/datastore";
78
import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
@@ -51,6 +52,13 @@ export const getPendingLetters = async (
5152
letterQueueRepo: LetterQueueRepository,
5253
): Promise<LetterBase[]> => {
5354
const pendingLetters = await letterQueueRepo.getLetters(supplierId, limit);
55+
for (const letter of pendingLetters) {
56+
letterQueueRepo.updateLetterTimestamp(
57+
letter.supplierId,
58+
letter.letterId,
59+
600,
60+
);
61+
}
5462
return pendingLetters.map((letter) => mapPendingLetterToLetterBase(letter));
5563
};
5664

0 commit comments

Comments
 (0)