Skip to content

Commit 683af6a

Browse files
committed
QAGDEV-681 - Подключение проекта к S3
1 parent edc0e02 commit 683af6a

29 files changed

+626
-173
lines changed

.env.development

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,13 @@ VITE_AVATAR_UPLOAD_URI=/upload/avatar
66
VITE_AVATAR_DELETE_URI=/upload/avatar
77
VITE_TRAINING_UPLOAD_URI=/upload/training/:id
88
VITE_TRAINING_DELETE_URI=/upload/training/:id
9-
VITE_HOMEWORK_FILE_UPLOAD_URI=/homework/:homeWorkId/file
10-
VITE_HOMEWORK_FILE_GET_URI=/homework/:homeWorkId/file/:fileId
11-
VITE_HOMEWORK_FILE_DELETE_URI=/homework/:homeWorkId/file
9+
VITE_HOMEWORK_FILE_UPLOAD_URI=/homework/student/homework/:homeWorkId/file
10+
VITE_HOMEWORK_FILE_GET_URI=/homework/student/homework/:homeWorkId/file/:fileId
11+
VITE_HOMEWORK_FILE_DELETE_URI=/homework/student/homework/:homeWorkId/file/:fileId
12+
VITE_LECTURE_FILE_UPLOAD_URI=/lecture/:lectureId/file
13+
VITE_LECTURE_FILE_GET_URI=/lecture/:lectureId/file/:fileId
14+
VITE_LECTURE_FILE_DELETE_URI=/lecture/:lectureId/file/:fileId
15+
VITE_LECTURE_HOMEWORK_FILE_UPLOAD_URI=/lecture/homework/:lectureId/file
16+
VITE_LECTURE_HOMEWORK_FILE_GET_URI=/lecture/homework/:lectureId/file/:fileId
17+
VITE_LECTURE_HOMEWORK_FILE_DELETE_URI=/lecture/homework/:lectureId/file/:fileId
1218
VITE_APP_ENDPOINT="http://app-stage.qa.guru:8080"

.env.production

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ VITE_AVATAR_UPLOAD_URI=/api/upload/avatar
66
VITE_AVATAR_DELETE_URI=/api/upload/avatar
77
VITE_TRAINING_UPLOAD_URI=/api/upload/training/:id
88
VITE_TRAINING_DELETE_URI=/api/upload/training/:id
9-
VITE_HOMEWORK_FILE_UPLOAD_URI=/api/homework/:homeWorkId/file
10-
VITE_HOMEWORK_FILE_GET_URI=/api/homework/:homeWorkId/file/:fileId
11-
VITE_HOMEWORK_FILE_DELETE_URI=/api/homework/:homeWorkId/file
9+
VITE_HOMEWORK_FILE_UPLOAD_URI=/api/homework/student/homework/:homeWorkId/file
10+
VITE_HOMEWORK_FILE_GET_URI=/api/homework/student/:homeWorkId/file/:fileId
11+
VITE_HOMEWORK_FILE_DELETE_URI=/api/homework/student/:homeWorkId/file/:fileId
12+
VITE_LECTURE_FILE_UPLOAD_URI=/api/lecture/:lectureId/file
13+
VITE_LECTURE_FILE_GET_URI=/api/lecture/:lectureId/file/:fileId
14+
VITE_LECTURE_FILE_DELETE_URI=/api/lecture/:lectureId/file/:fileId
15+
VITE_LECTURE_HOMEWORK_FILE_UPLOAD_URI=/api/lecture/homework/:lectureId/file
16+
VITE_LECTURE_HOMEWORK_FILE_GET_URI=/api/lecture/homework/:lectureId/file/:fileId
17+
VITE_LECTURE_HOMEWORK_FILE_DELETE_URI=/api/lecture/homework/:lectureId/file/:fileId

src/api/graphql/homework/create-homework-to-check.graphql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ mutation createHomeWorkToCheck(
1717
answer
1818
status
1919
training {
20+
id
2021
techStack
2122
}
2223
student {

src/api/graphql/homework/homework-by-lecture-and-training.graphql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ query homeWorkByLectureAndTraining($lectureId: ID!, $trainingId: ID!) {
99
answer
1010
status
1111
training {
12+
id
1213
techStack
1314
}
1415
student {

src/api/graphql/homework/send-homework-to-check.graphql

Lines changed: 0 additions & 36 deletions
This file was deleted.

src/api/graphql/homework/update-homework.graphql

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ mutation updateHomework($id: ID!, $content: String!) {
99
answer
1010
status
1111
training {
12+
id
1213
techStack
1314
}
1415
student {
@@ -29,6 +30,13 @@ mutation updateHomework($id: ID!, $content: String!) {
2930
rating
3031
}
3132
}
33+
filesHomeWork {
34+
id
35+
creationDate
36+
fileName
37+
contentType
38+
size
39+
}
3240
creationDate
3341
startCheckingDate
3442
endCheckingDate

src/api/graphql/lecture/lecture.graphql

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,13 @@ query lecture($id: ID!) {
1414
subject
1515
description
1616
content
17+
files {
18+
id
19+
homeWork
20+
creationDate
21+
fileName
22+
contentType
23+
size
24+
}
1725
}
1826
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
import axios, { type AxiosResponse } from "axios";
2+
import {
3+
LECTURE_FILE_UPLOAD_URI,
4+
LECTURE_FILE_GET_URI,
5+
LECTURE_FILE_DELETE_URI,
6+
} from "config";
7+
import { createUrlWithParams } from "shared/utils";
8+
9+
export interface LectureFileResponse {
10+
id: string;
11+
fileName: string;
12+
contentType: string;
13+
size: number;
14+
creationDate: string;
15+
}
16+
17+
export default class LectureFileService {
18+
static uploadFile(
19+
lectureId: string,
20+
file: File
21+
): Promise<AxiosResponse<LectureFileResponse>> {
22+
const formData = new FormData();
23+
formData.append("file", file);
24+
25+
const uploadFileUrl = createUrlWithParams(LECTURE_FILE_UPLOAD_URI, {
26+
lectureId,
27+
});
28+
29+
return axios({
30+
method: "POST",
31+
url: uploadFileUrl,
32+
headers: { "Content-Type": "multipart/form-data" },
33+
data: formData,
34+
});
35+
}
36+
37+
static getFile(
38+
lectureId: string,
39+
fileId: string
40+
): Promise<AxiosResponse<Blob>> {
41+
const getFileUrl = createUrlWithParams(LECTURE_FILE_GET_URI, {
42+
lectureId,
43+
fileId,
44+
});
45+
46+
return axios({
47+
method: "GET",
48+
url: getFileUrl,
49+
responseType: "blob",
50+
});
51+
}
52+
53+
static deleteFile(
54+
lectureId: string,
55+
fileId: string
56+
): Promise<AxiosResponse<void>> {
57+
const deleteUrl = createUrlWithParams(LECTURE_FILE_DELETE_URI, {
58+
lectureId,
59+
fileId,
60+
});
61+
62+
return axios({
63+
method: "DELETE",
64+
url: deleteUrl,
65+
});
66+
}
67+
}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import axios, { type AxiosResponse } from "axios";
2+
import {
3+
LECTURE_HOMEWORK_FILE_UPLOAD_URI,
4+
LECTURE_HOMEWORK_FILE_GET_URI,
5+
LECTURE_HOMEWORK_FILE_DELETE_URI,
6+
} from "config";
7+
import { createUrlWithParams } from "shared/utils";
8+
9+
export interface LectureHomeworkFileResponse {
10+
id: string;
11+
fileName: string;
12+
contentType: string;
13+
size: number;
14+
creationDate: string;
15+
}
16+
17+
export default class LectureHomeworkFileService {
18+
static uploadFile(
19+
lectureId: string,
20+
file: File
21+
): Promise<AxiosResponse<LectureHomeworkFileResponse>> {
22+
const formData = new FormData();
23+
formData.append("file", file);
24+
25+
const uploadFileUrl = createUrlWithParams(
26+
LECTURE_HOMEWORK_FILE_UPLOAD_URI,
27+
{
28+
lectureId,
29+
}
30+
);
31+
32+
return axios({
33+
method: "POST",
34+
url: uploadFileUrl,
35+
headers: { "Content-Type": "multipart/form-data" },
36+
data: formData,
37+
});
38+
}
39+
40+
static getFile(
41+
lectureId: string,
42+
fileId: string
43+
): Promise<AxiosResponse<Blob>> {
44+
const getFileUrl = createUrlWithParams(LECTURE_HOMEWORK_FILE_GET_URI, {
45+
lectureId,
46+
fileId,
47+
});
48+
49+
return axios({
50+
method: "GET",
51+
url: getFileUrl,
52+
responseType: "blob",
53+
});
54+
}
55+
56+
static deleteFile(
57+
lectureId: string,
58+
fileId: string
59+
): Promise<AxiosResponse<void>> {
60+
const deleteUrl = createUrlWithParams(LECTURE_HOMEWORK_FILE_DELETE_URI, {
61+
lectureId,
62+
fileId,
63+
});
64+
65+
return axios({
66+
method: "DELETE",
67+
url: deleteUrl,
68+
});
69+
}
70+
}

src/config.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,14 @@ export const HOMEWORK_FILE_UPLOAD_URI = import.meta.env
1111
export const HOMEWORK_FILE_GET_URI = import.meta.env.VITE_HOMEWORK_FILE_GET_URI;
1212
export const HOMEWORK_FILE_DELETE_URI = import.meta.env
1313
.VITE_HOMEWORK_FILE_DELETE_URI;
14+
export const LECTURE_FILE_UPLOAD_URI = import.meta.env
15+
.VITE_LECTURE_FILE_UPLOAD_URI;
16+
export const LECTURE_FILE_GET_URI = import.meta.env.VITE_LECTURE_FILE_GET_URI;
17+
export const LECTURE_FILE_DELETE_URI = import.meta.env
18+
.VITE_LECTURE_FILE_DELETE_URI;
19+
export const LECTURE_HOMEWORK_FILE_UPLOAD_URI = import.meta.env
20+
.VITE_LECTURE_HOMEWORK_FILE_UPLOAD_URI;
21+
export const LECTURE_HOMEWORK_FILE_GET_URI = import.meta.env
22+
.VITE_LECTURE_HOMEWORK_FILE_GET_URI;
23+
export const LECTURE_HOMEWORK_FILE_DELETE_URI = import.meta.env
24+
.VITE_LECTURE_HOMEWORK_FILE_DELETE_URI;

0 commit comments

Comments
 (0)