diff --git a/src/interfaces/prompt/promptMessagesProps.ts b/src/interfaces/prompt/promptMessagesProps.ts
new file mode 100644
index 0000000..a60b436
--- /dev/null
+++ b/src/interfaces/prompt/promptMessagesProps.ts
@@ -0,0 +1,8 @@
+interface PromptMessagesProps {
+ id: string;
+ answer: string;
+ is_save: boolean;
+ question: string;
+}
+
+export default PromptMessagesProps;
diff --git a/src/interfaces/prompt/storageMessage.ts b/src/interfaces/prompt/storageMessage.ts
new file mode 100644
index 0000000..61e3ef6
--- /dev/null
+++ b/src/interfaces/prompt/storageMessage.ts
@@ -0,0 +1,7 @@
+interface StorageMessage {
+ id: string;
+ answer: string;
+ question: string;
+}
+
+export default StorageMessage;
From 0496f79c7d8144f4fa5860e891e2eb53d4435ace Mon Sep 17 00:00:00 2001
From: dorimu0 <121004915+dorimu0@users.noreply.github.com>
Date: Fri, 29 Mar 2024 10:11:22 +0900
Subject: [PATCH 3/5] =?UTF-8?q?=F0=9F=92=84=20style=20:=20Add=20userPrompt?=
=?UTF-8?q?=20svgs=20and=20modify=20css?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- Manage svgs with index files
- Define height using a CSS file
Related issue: #92
---
public/svgs/prompt/delete.svg | 1 +
public/svgs/prompt/drive.svg | 1 +
public/svgs/prompt/index.ts | 6 ++++++
src/styles/variable.css | 12 ++++++++++++
4 files changed, 20 insertions(+)
create mode 100644 public/svgs/prompt/delete.svg
create mode 100644 public/svgs/prompt/drive.svg
create mode 100644 public/svgs/prompt/index.ts
diff --git a/public/svgs/prompt/delete.svg b/public/svgs/prompt/delete.svg
new file mode 100644
index 0000000..c9469be
--- /dev/null
+++ b/public/svgs/prompt/delete.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/svgs/prompt/drive.svg b/public/svgs/prompt/drive.svg
new file mode 100644
index 0000000..df6303c
--- /dev/null
+++ b/public/svgs/prompt/drive.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/svgs/prompt/index.ts b/public/svgs/prompt/index.ts
new file mode 100644
index 0000000..c7d81b8
--- /dev/null
+++ b/public/svgs/prompt/index.ts
@@ -0,0 +1,6 @@
+const icons = {
+ delete: '/svgs/prompt/delete.svg',
+ drive: '/svgs/prompt/drive.svg',
+};
+
+export default icons;
diff --git a/src/styles/variable.css b/src/styles/variable.css
index bf2a3be..66f9bea 100644
--- a/src/styles/variable.css
+++ b/src/styles/variable.css
@@ -1,3 +1,15 @@
+.mainContainer {
+ min-height: calc(100% - 110px);
+}
+
.navbar {
height: calc(100% - 36px);
}
+
+.feedbackContainer {
+ height: calc(100% - 116px);
+}
+
+.subContainer {
+ height: calc(100% - 120px);
+}
From 2229c52e2c7f6072d726dbf44152ca4fd0f8da76 Mon Sep 17 00:00:00 2001
From: dorimu0 <121004915+dorimu0@users.noreply.github.com>
Date: Fri, 29 Mar 2024 10:18:22 +0900
Subject: [PATCH 4/5] =?UTF-8?q?=E2=9C=A8=20feat=20:=20Add=20api=20function?=
=?UTF-8?q?s=20for=20subComponents=20in=20userPrompt?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- Add promptChat, storage related API request functions
- Add an interface for the response value
Related issue: #92
---
src/api/prompts/getMessage.ts | 21 +++++++++++++++++++++
src/api/prompts/getPrompt.ts | 21 +++++++++++++++++++++
src/api/prompts/patchMessage.ts | 20 ++++++++++++++++++++
src/api/prompts/postPrompt.ts | 19 +++++++++++++++++++
src/interfaces/prompt/index.ts | 5 +++++
src/interfaces/prompt/promptMessages.ts | 11 +++++++++++
6 files changed, 97 insertions(+)
create mode 100644 src/api/prompts/getMessage.ts
create mode 100644 src/api/prompts/getPrompt.ts
create mode 100644 src/api/prompts/patchMessage.ts
create mode 100644 src/api/prompts/postPrompt.ts
create mode 100644 src/interfaces/prompt/index.ts
create mode 100644 src/interfaces/prompt/promptMessages.ts
diff --git a/src/api/prompts/getMessage.ts b/src/api/prompts/getMessage.ts
new file mode 100644
index 0000000..b8cdd16
--- /dev/null
+++ b/src/api/prompts/getMessage.ts
@@ -0,0 +1,21 @@
+import {StorageMessage} from '@/src/interfaces/prompt';
+import req from '../apiUtils';
+
+const getMessage = async (
+ cId: number,
+ id: number,
+ pageNumber: number,
+ limitNumber: number
+): Promise
=> {
+ const response = await req(
+ `/class/${cId}/prompts/${id}/messages/saved?page=${pageNumber}&limit=${limitNumber}`,
+ 'get',
+ 'nest'
+ );
+
+ console.log(response);
+
+ return response.data.messages;
+};
+
+export default getMessage;
diff --git a/src/api/prompts/getPrompt.ts b/src/api/prompts/getPrompt.ts
new file mode 100644
index 0000000..33b1cdc
--- /dev/null
+++ b/src/api/prompts/getPrompt.ts
@@ -0,0 +1,21 @@
+import req from '../apiUtils';
+import {PromptMessages} from '@/src/interfaces/prompt';
+
+const getPrompt = async (
+ cId: number,
+ id: number,
+ pageNumber: number,
+ limitNumber: number
+): Promise => {
+ const response = await req(
+ `/class/${cId}/prompts/${id}?page=${pageNumber}&limit=${limitNumber}`,
+ 'get',
+ 'nest'
+ );
+
+ console.log(response);
+
+ return response.data;
+};
+
+export default getPrompt;
diff --git a/src/api/prompts/patchMessage.ts b/src/api/prompts/patchMessage.ts
new file mode 100644
index 0000000..503d044
--- /dev/null
+++ b/src/api/prompts/patchMessage.ts
@@ -0,0 +1,20 @@
+import req from '../apiUtils';
+
+const patchMessage = async (
+ cId: number,
+ id: number,
+ mId: number,
+ isSave: boolean
+) => {
+ const response = await req(
+ `/class/${cId}/prompts/${id}/messages/${mId}?is_save=${isSave}`,
+ 'patch',
+ 'nest'
+ );
+
+ console.log(response);
+
+ return response;
+};
+
+export default patchMessage;
diff --git a/src/api/prompts/postPrompt.ts b/src/api/prompts/postPrompt.ts
new file mode 100644
index 0000000..07e646b
--- /dev/null
+++ b/src/api/prompts/postPrompt.ts
@@ -0,0 +1,19 @@
+import req from '../apiUtils';
+
+const postPrompt = async (cId: number, id: number, message: string) => {
+ const body = {
+ message: message,
+ };
+ const response = await req(
+ `/class/${cId}/prompts/${id}`,
+ 'post',
+ 'nest',
+ body
+ );
+
+ console.log(response);
+
+ return response;
+};
+
+export default postPrompt;
diff --git a/src/interfaces/prompt/index.ts b/src/interfaces/prompt/index.ts
new file mode 100644
index 0000000..b53d156
--- /dev/null
+++ b/src/interfaces/prompt/index.ts
@@ -0,0 +1,5 @@
+import PromptMessages from './promptMessages';
+import PromptMessagesProps from './promptMessagesProps';
+import StorageMessage from './storageMessage';
+
+export type {PromptMessages, PromptMessagesProps, StorageMessage};
diff --git a/src/interfaces/prompt/promptMessages.ts b/src/interfaces/prompt/promptMessages.ts
new file mode 100644
index 0000000..1195227
--- /dev/null
+++ b/src/interfaces/prompt/promptMessages.ts
@@ -0,0 +1,11 @@
+interface PromptMessages {
+ id: string;
+ messages: {
+ id: string;
+ answer: string;
+ is_save: boolean;
+ question: string;
+ }[];
+}
+
+export default PromptMessages;
From e7d633d71eb8cdb822c87236c75cea5d3fc3a865 Mon Sep 17 00:00:00 2001
From: dorimu0 <121004915+dorimu0@users.noreply.github.com>
Date: Fri, 29 Mar 2024 10:39:26 +0900
Subject: [PATCH 5/5] =?UTF-8?q?=E2=9C=85=20test=20:=20Write=20API=20reques?=
=?UTF-8?q?t=20function=20test=20code?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Test code for the sub_component's API request function
Related issue: #93
---
__tests__/api/prompt/getMessage.test.ts | 37 +++++++++++++++++++++++
__tests__/api/prompt/getPrompt.test.ts | 20 ++++++++++++
__tests__/api/prompt/patchMessage.test.ts | 20 ++++++++++++
__tests__/api/prompt/postPrompt.test.ts | 19 ++++++++++++
4 files changed, 96 insertions(+)
create mode 100644 __tests__/api/prompt/getMessage.test.ts
create mode 100644 __tests__/api/prompt/getPrompt.test.ts
create mode 100644 __tests__/api/prompt/patchMessage.test.ts
create mode 100644 __tests__/api/prompt/postPrompt.test.ts
diff --git a/__tests__/api/prompt/getMessage.test.ts b/__tests__/api/prompt/getMessage.test.ts
new file mode 100644
index 0000000..2c07e76
--- /dev/null
+++ b/__tests__/api/prompt/getMessage.test.ts
@@ -0,0 +1,37 @@
+import getMessage from '@/src/api/prompts/getMessage';
+import {StorageMessage} from '@/src/interfaces/prompt';
+import req from '@/src/api/apiUtils';
+
+jest.mock('@/src/api/apiUtils');
+
+describe('getMessage function', () => {
+ it('should return messages', async () => {
+ const mockMessages: StorageMessage[] = [
+ {
+ id: '1',
+ answer: 'Test answer 1',
+ question: 'Test question 1',
+ },
+ {
+ id: '2',
+ answer: 'Test answer 2',
+ question: 'Test question 2',
+ },
+ ];
+
+ (req as jest.Mock).mockResolvedValue({
+ data: {
+ messages: mockMessages,
+ },
+ });
+
+ const result = await getMessage(1, 1, 1, 2);
+ expect(result).toEqual(mockMessages);
+ });
+
+ it('should throw an error if the request fails', async () => {
+ (req as jest.Mock).mockRejectedValue(new Error('Request failed'));
+
+ await expect(getMessage(1, 1, 1, 2)).rejects.toThrow('Request failed');
+ });
+});
diff --git a/__tests__/api/prompt/getPrompt.test.ts b/__tests__/api/prompt/getPrompt.test.ts
new file mode 100644
index 0000000..66894ea
--- /dev/null
+++ b/__tests__/api/prompt/getPrompt.test.ts
@@ -0,0 +1,20 @@
+import getPrompt from '@/src/api/prompts/getPrompt';
+import req from '@/src/api/apiUtils';
+
+jest.mock('@/src/api/apiUtils');
+
+describe('getPrompt', () => {
+ it('should call the correct endpoint and return data', async () => {
+ const mockData = {message: 'test'};
+ (req as jest.Mock).mockResolvedValue({data: mockData});
+
+ const result = await getPrompt(1, 2, 3, 4);
+
+ expect(req).toHaveBeenCalledWith(
+ '/class/1/prompts/2?page=3&limit=4',
+ 'get',
+ 'nest'
+ );
+ expect(result).toEqual(mockData);
+ });
+});
diff --git a/__tests__/api/prompt/patchMessage.test.ts b/__tests__/api/prompt/patchMessage.test.ts
new file mode 100644
index 0000000..7db6532
--- /dev/null
+++ b/__tests__/api/prompt/patchMessage.test.ts
@@ -0,0 +1,20 @@
+import patchMessage from '@/src/api/prompts/patchMessage';
+import req from '@/src/api/apiUtils';
+
+jest.mock('@/src/api/apiUtils');
+
+describe('patchMessage', () => {
+ it('should call the correct endpoint and return response', async () => {
+ const mockResponse = {status: 200};
+ (req as jest.Mock).mockResolvedValue(mockResponse);
+
+ const result = await patchMessage(1, 2, 3, true);
+
+ expect(req).toHaveBeenCalledWith(
+ '/class/1/prompts/2/messages/3?is_save=true',
+ 'patch',
+ 'nest'
+ );
+ expect(result).toEqual(mockResponse);
+ });
+});
diff --git a/__tests__/api/prompt/postPrompt.test.ts b/__tests__/api/prompt/postPrompt.test.ts
new file mode 100644
index 0000000..fd2ebb8
--- /dev/null
+++ b/__tests__/api/prompt/postPrompt.test.ts
@@ -0,0 +1,19 @@
+import postPrompt from '@/src/api/prompts/postPrompt';
+import req from '@/src/api/apiUtils';
+
+jest.mock('@/src/api/apiUtils');
+
+describe('postPrompt', () => {
+ it('should call the correct endpoint with the correct body and return response', async () => {
+ const mockResponse = {status: 200};
+ (req as jest.Mock).mockResolvedValue(mockResponse);
+
+ const message = 'test message';
+ const result = await postPrompt(1, 2, message);
+
+ expect(req).toHaveBeenCalledWith('/class/1/prompts/2', 'post', 'nest', {
+ message,
+ });
+ expect(result).toEqual(mockResponse);
+ });
+});