Skip to content

Commit d800d42

Browse files
committed
fix:Token problem solved
1 parent 748af64 commit d800d42

13 files changed

Lines changed: 355 additions & 126 deletions

File tree

.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ JWT_SECRET=ExammeSecretKeyThatIsVeryLongAndComplexForSecurityPurposesAnd256BitsL
88
JWT_EXPIRATION=86400000
99

1010
# Gemini API Configuration
11-
GEMINI_API_KEY=AIzaSyClzMjHpG7DBO_iCBWa_FcLRiBv9epOJhM
11+
GEMINI_API_KEY=AIzaSyBy6CE06_Wt7f48SM6t5dOt-X9i0r1EkyI
1212

1313
# Server Configuration
1414
SERVER_PORT=8080

models.txt

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+

2+
name
3+
----
4+
models/gemini-2.5-flash
5+
models/gemini-2.5-pro
6+
models/gemini-2.0-flash
7+
models/gemini-2.0-flash-001
8+
models/gemini-2.0-flash-lite-001
9+
models/gemini-2.0-flash-lite
10+
models/gemini-2.5-flash-preview-tts
11+
models/gemini-2.5-pro-preview-tts
12+
models/gemma-4-26b-a4b-it
13+
models/gemma-4-31b-it
14+
models/gemini-flash-latest
15+
models/gemini-flash-lite-latest
16+
models/gemini-pro-latest
17+
models/gemini-2.5-flash-lite
18+
models/gemini-2.5-flash-image
19+
models/gemini-3-pro-preview
20+
models/gemini-3-flash-preview
21+
models/gemini-3.1-pro-preview
22+
models/gemini-3.1-pro-preview-customtools
23+
models/gemini-3.1-flash-lite-preview
24+
models/gemini-3.1-flash-lite
25+
models/gemini-3-pro-image-preview
26+
models/nano-banana-pro-preview
27+
models/gemini-3.1-flash-image-preview
28+
models/lyria-3-clip-preview
29+
models/lyria-3-pro-preview
30+
models/gemini-3.1-flash-tts-preview
31+
models/gemini-robotics-er-1.5-preview
32+
models/gemini-robotics-er-1.6-preview
33+
models/gemini-2.5-computer-use-preview-10-2025
34+
models/deep-research-max-preview-04-2026
35+
models/deep-research-preview-04-2026
36+
models/deep-research-pro-preview-12-2025
37+
models/gemini-embedding-001
38+
models/gemini-embedding-2-preview
39+
models/gemini-embedding-2
40+
models/aqa
41+
models/imagen-4.0-generate-001
42+
models/imagen-4.0-ultra-generate-001
43+
models/imagen-4.0-fast-generate-001
44+
models/veo-2.0-generate-001
45+
models/veo-3.0-generate-001
46+
models/veo-3.0-fast-generate-001
47+
models/veo-3.1-generate-preview
48+
models/veo-3.1-fast-generate-preview
49+
models/veo-3.1-lite-generate-preview
50+
models/gemini-2.5-flash-native-audio-latest
51+
models/gemini-2.5-flash-native-audio-preview-09-2025
52+
models/gemini-2.5-flash-native-audio-preview-12-2025
53+
models/gemini-3.1-flash-live-preview
54+
55+

pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<version>0.0.1-SNAPSHOT</version>
1414
<properties>
1515
<java.version>17</java.version>
16+
<lombok.version>1.18.38</lombok.version>
1617
</properties>
1718
<dependencies>
1819
<dependency>
@@ -106,6 +107,11 @@
106107
<artifactId>spring-security-test</artifactId>
107108
<scope>test</scope>
108109
</dependency>
110+
<dependency>
111+
<groupId>io.github.cdimascio</groupId>
112+
<artifactId>dotenv-java</artifactId>
113+
<version>3.0.0</version>
114+
</dependency>
109115
</dependencies>
110116

111117
<build>
@@ -127,6 +133,7 @@
127133
<artifactId>maven-compiler-plugin</artifactId>
128134
<version>3.13.0</version>
129135
<configuration>
136+
<release>${java.version}</release>
130137
<parameters>true</parameters>
131138
<annotationProcessorPaths>
132139
<path>

src/main/java/com/examme/examme/ExammeApplication.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,24 @@
11
package com.examme.examme;
22

3+
import io.github.cdimascio.dotenv.Dotenv;
34
import org.springframework.boot.SpringApplication;
45
import org.springframework.boot.autoconfigure.SpringBootApplication;
56

6-
7-
8-
97
@SpringBootApplication
108
public class ExammeApplication {
119

1210
public static void main(String[] args) {
11+
Dotenv dotenv = Dotenv.configure()
12+
.directory("./")
13+
.ignoreIfMissing()
14+
.load();
15+
16+
dotenv.entries().forEach(entry -> {
17+
if (System.getProperty(entry.getKey()) == null) {
18+
System.setProperty(entry.getKey(), entry.getValue());
19+
}
20+
});
21+
1322
SpringApplication.run(ExammeApplication.class, args);
1423
}
1524

src/main/java/com/examme/examme/controller/InvitationController.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.examme.examme.controller;
22

33
import com.examme.examme.dto.common.ApiResponse;
4+
import com.examme.examme.dto.response.group.InvitationResponseDto;
45
import com.examme.examme.service.StudentInvitationService;
56
import io.swagger.v3.oas.annotations.Operation;
67
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -9,6 +10,8 @@
910
import org.springframework.http.ResponseEntity;
1011
import org.springframework.web.bind.annotation.*;
1112

13+
import java.util.List;
14+
1215
@Tag(name = "Invitations")
1316
@RestController
1417
@RequestMapping("/api/invitations")
@@ -19,6 +22,12 @@ public class InvitationController {
1922

2023
private final StudentInvitationService studentInvitationService;
2124

25+
@Operation(summary = "List my group invitations")
26+
@GetMapping
27+
public ResponseEntity<List<InvitationResponseDto>> list() {
28+
return ResponseEntity.ok(studentInvitationService.listMine());
29+
}
30+
2231
@Operation(summary = "Accept group invitation")
2332
@PostMapping("/{invitationId}/accept")
2433
public ResponseEntity<ApiResponse> accept(@PathVariable("invitationId") Long invitationId) {
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package com.examme.examme.dto.response.group;
2+
3+
import com.examme.examme.entity.enums.InvitationStatus;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Data;
6+
import lombok.NoArgsConstructor;
7+
8+
import java.time.LocalDateTime;
9+
10+
@Data
11+
@NoArgsConstructor
12+
@AllArgsConstructor
13+
public class InvitationResponseDto {
14+
private Long id;
15+
private Long groupId;
16+
private String groupName;
17+
private String teacherEmail;
18+
private InvitationStatus status;
19+
private LocalDateTime invitedAt;
20+
21+
public static InvitationResponseDtoBuilder builder() {
22+
return new InvitationResponseDtoBuilder();
23+
}
24+
25+
public static class InvitationResponseDtoBuilder {
26+
private Long id;
27+
private Long groupId;
28+
private String groupName;
29+
private String teacherEmail;
30+
private InvitationStatus status;
31+
private LocalDateTime invitedAt;
32+
33+
public InvitationResponseDtoBuilder id(Long id) {
34+
this.id = id;
35+
return this;
36+
}
37+
38+
public InvitationResponseDtoBuilder groupId(Long groupId) {
39+
this.groupId = groupId;
40+
return this;
41+
}
42+
43+
public InvitationResponseDtoBuilder groupName(String groupName) {
44+
this.groupName = groupName;
45+
return this;
46+
}
47+
48+
public InvitationResponseDtoBuilder teacherEmail(String teacherEmail) {
49+
this.teacherEmail = teacherEmail;
50+
return this;
51+
}
52+
53+
public InvitationResponseDtoBuilder status(InvitationStatus status) {
54+
this.status = status;
55+
return this;
56+
}
57+
58+
public InvitationResponseDtoBuilder invitedAt(LocalDateTime invitedAt) {
59+
this.invitedAt = invitedAt;
60+
return this;
61+
}
62+
63+
public InvitationResponseDto build() {
64+
return new InvitationResponseDto(id, groupId, groupName, teacherEmail, status, invitedAt);
65+
}
66+
}
67+
}

src/main/java/com/examme/examme/repository/GroupInvitationRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,7 @@ public interface GroupInvitationRepository extends JpaRepository<GroupInvitation
1818
@Query("SELECT i FROM GroupInvitation i JOIN FETCH i.group JOIN FETCH i.student WHERE i.id = :id")
1919
Optional<GroupInvitation> findFetchedById(@Param("id") Long id);
2020

21+
java.util.List<GroupInvitation> findAllByStudentOrderByCreatedAtDesc(User student);
22+
2123
void deleteAllByStudent(User student);
2224
}

src/main/java/com/examme/examme/service/ExamPackageService.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@
3232
@RequiredArgsConstructor
3333
public class ExamPackageService {
3434

35-
private static final int MAX_TEXT_CHARS = 120_000;
35+
private static final int MAX_TEXT_CHARS = 15_000;
3636

3737
private final ExamPackageRepository examPackageRepository;
3838
private final StudyGroupRepository studyGroupRepository;
3939
private final UserRepository userRepository;
4040
private final FileProcessingUtil fileProcessingUtil;
41-
private final GeminiQuestionGeneratorService geminiQuestionGeneratorService;
41+
private final GroqQuestionGeneratorService groqQuestionGeneratorService;
4242

4343
@Transactional
4444
public ExamPackageDetailDto create(Long groupId, MultipartFile file, int questionCount, Difficulty difficulty, String description)
@@ -62,7 +62,7 @@ public ExamPackageDetailDto create(Long groupId, MultipartFile file, int questio
6262
extracted = extracted.substring(0, MAX_TEXT_CHARS);
6363
}
6464

65-
List<QuizQuestionResponseDto> generated = geminiQuestionGeneratorService.generateFromLectureText(
65+
List<QuizQuestionResponseDto> generated = groqQuestionGeneratorService.generateFromLectureText(
6666
extracted, questionCount, difficulty, description == null ? "" : description);
6767

6868
String title = deriveTitle(file.getOriginalFilename());

src/main/java/com/examme/examme/service/GeminiQuestionGeneratorService.java

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

0 commit comments

Comments
 (0)