Skip to content

Commit 8109000

Browse files
authored
Merge pull request #365 from qa-guru/QAGDEV-681
QAGDEV-681 - Подключение проекта к S3
2 parents 3f0343b + cf7438f commit 8109000

29 files changed

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

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)