diff --git a/.env b/.env
new file mode 100644
index 00000000..1666c252
--- /dev/null
+++ b/.env
@@ -0,0 +1 @@
+JWT_SECRET=sFAt7RSBoe6nJ7cSuMFiRtqSLNLkWOfmrSzH0iKFLKvFHSG2VJ6Xn/uzFDDFqENR
diff --git a/compose.yml b/compose.yml
index ebc03525..b9058024 100644
--- a/compose.yml
+++ b/compose.yml
@@ -13,43 +13,28 @@ services:
networks:
- postgres
restart: unless-stopped
- pgadmin:
- container_name: elearning-pgui
- image: dpage/pgadmin4
- environment:
- PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-pgadmin4@pgadmin.org}
- PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
- PGADMIN_CONFIG_SERVER_MODE: 'False'
- volumes:
- - pgadmin:/var/lib/pgadmin
- ports:
- - "5050:80"
- networks:
- - postgres
- restart: unless-stopped
- api:
- image: thuanvn2002/elearning-be:latest
- ports:
- - "8082:8082"
- environment:
- - SPRING_PROFILES_ACTIVE=prod
- networks:
- - postgres
- depends_on:
- - postgres
- ui:
- image: thuanvn2002/elearning-fe:latest
- ports:
- - "80:80"
- networks:
- - postgres
- restart: unless-stopped
+# api:
+# image: thuanvn2002/elearning-be:latest
+# ports:
+# - "8082:8082"
+# environment:
+# - SPRING_PROFILES_ACTIVE=prod
+# networks:
+# - postgres
+# depends_on:
+# - postgres
+# ui:
+# image: thuanvn2002/elearning-fe:latest
+# ports:
+# - "80:80"
+# networks:
+# - postgres
+# restart: unless-stopped
networks:
postgres:
driver: bridge
volumes:
db_data:
- pgadmin:
diff --git a/pom.xml b/pom.xml
index b2d0a95d..b7bb68ec 100644
--- a/pom.xml
+++ b/pom.xml
@@ -121,6 +121,12 @@
springdoc-openapi-starter-webmvc-ui
${springdoc.version}
+
+ me.paulschwarz
+ spring-dotenv
+ 3.0.0
+
+
diff --git a/src/main/java/com/backend/elearning/configuration/DatabaseAutoConfig.java b/src/main/java/com/backend/elearning/configuration/DatabaseAutoConfig.java
index 4725e8ae..4ad3b468 100644
--- a/src/main/java/com/backend/elearning/configuration/DatabaseAutoConfig.java
+++ b/src/main/java/com/backend/elearning/configuration/DatabaseAutoConfig.java
@@ -1,24 +1,13 @@
package com.backend.elearning.configuration;
-import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.data.domain.AuditorAware;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
import java.util.Optional;
@Configuration
-@EnableJpaAuditing(auditorAwareRef = "auditorAware")
+@EnableJpaAuditing
public class DatabaseAutoConfig {
- @Bean
- public AuditorAware auditorAware() {
- return () -> {
- Authentication auth = SecurityContextHolder.getContext().getAuthentication();
- if (auth == null) return Optional.of("");
- return Optional.of(auth.getName());
- };
- }
+
}
diff --git a/src/main/java/com/backend/elearning/domain/answer/Answer.java b/src/main/java/com/backend/elearning/domain/answer/Answer.java
index d58cc3d2..af949842 100644
--- a/src/main/java/com/backend/elearning/domain/answer/Answer.java
+++ b/src/main/java/com/backend/elearning/domain/answer/Answer.java
@@ -13,7 +13,6 @@
@Getter
@Setter
@Builder
-@EntityListeners(value = CustomAuditingEntityListener.class)
public class Answer extends AbstractAuditEntity {
@Id
diff --git a/src/main/java/com/backend/elearning/domain/auth/AuthenticationService.java b/src/main/java/com/backend/elearning/domain/auth/AuthenticationService.java
index e4131196..0f2516dd 100644
--- a/src/main/java/com/backend/elearning/domain/auth/AuthenticationService.java
+++ b/src/main/java/com/backend/elearning/domain/auth/AuthenticationService.java
@@ -169,8 +169,6 @@ public AuthenticationVm register(RegistrationPostVm request) {
.build();
student.setVerificationCode(generateVerificationCode());
student.setVerificationCodeExpiresAt(LocalDateTime.now().plusMinutes(15));
- student.setCreatedAt(LocalDateTime.now());
- student.setUpdatedAt(LocalDateTime.now());
studentRepository.saveAndFlush(student);
sendVerificationEmail(student);
String token = jwtUtil.issueToken(student.getEmail(), ERole.ROLE_STUDENT.name());
@@ -253,7 +251,6 @@ public void updatePassword(AuthenticationPostVm request) {
.findByEmail(email)
.orElseThrow(() -> new NotFoundException(Constants.ERROR_CODE.USER_NOT_FOUND, request.email()));
student.setPassword(passwordEncoder.encode(request.password()));
- student.setUpdatedAt(LocalDateTime.now());
studentRepository.save(student);
} catch (Exception e) {
throw new BadRequestException(e.getMessage());
diff --git a/src/main/java/com/backend/elearning/domain/category/Category.java b/src/main/java/com/backend/elearning/domain/category/Category.java
index 28ccd8ef..638bc6be 100644
--- a/src/main/java/com/backend/elearning/domain/category/Category.java
+++ b/src/main/java/com/backend/elearning/domain/category/Category.java
@@ -16,7 +16,6 @@
@Getter
@Setter
@Builder
-@EntityListeners(value = CustomAuditingEntityListener.class)
public class Category extends AbstractAuditEntity {
@Id
diff --git a/src/main/java/com/backend/elearning/domain/category/CategoryServiceImpl.java b/src/main/java/com/backend/elearning/domain/category/CategoryServiceImpl.java
index b7601d0a..5617bcf1 100644
--- a/src/main/java/com/backend/elearning/domain/category/CategoryServiceImpl.java
+++ b/src/main/java/com/backend/elearning/domain/category/CategoryServiceImpl.java
@@ -64,8 +64,6 @@ public CategoryVM create(CategoryPostVM categoryPostVM) {
.description(categoryPostVM.description())
.publish(categoryPostVM.isPublish())
.build();
- category.setCreatedAt(LocalDateTime.now());
- category.setUpdatedAt(LocalDateTime.now());
if (categoryPostVM.parentId() != null) {
Category parent = categoryRepository.findById(categoryPostVM.parentId()).orElseThrow(() ->
new NotFoundException(Constants.ERROR_CODE.CATEGORY_NOT_FOUND, categoryPostVM.parentId()));
@@ -103,7 +101,6 @@ public void update(CategoryPostVM categoryPutVM, Integer categoryId) {
category.setName(categoryPutVM.name());
category.setDescription(categoryPutVM.description());
category.setPublish(categoryPutVM.isPublish());
- category.setUpdatedAt(LocalDateTime.now());
if (categoryPutVM.parentId() == null) {
category.setParent(null);
} else {
diff --git a/src/main/java/com/backend/elearning/domain/classroom/ClassroomServiceImpl.java b/src/main/java/com/backend/elearning/domain/classroom/ClassroomServiceImpl.java
index 7dbb8e96..9cae3d3e 100644
--- a/src/main/java/com/backend/elearning/domain/classroom/ClassroomServiceImpl.java
+++ b/src/main/java/com/backend/elearning/domain/classroom/ClassroomServiceImpl.java
@@ -107,7 +107,6 @@ private List getByClassroom(Classroom classroom) {
referenceGetVM.setId(reference.getId());
referenceGetVM.setType(EventType.reference);
referenceGetVM.setDescription(reference.getDescription());
- referenceGetVM.setCreatedAt(reference.getCreatedAt());
List files = referenceFileService.getByReferenceId(reference.getId());
referenceGetVM.setFiles(files);
events.add(referenceGetVM);
@@ -122,7 +121,6 @@ private List getByClassroom(Classroom classroom) {
exerciseGetVM.setDescription(exercise.getDescription());
exerciseGetVM.setDeadline(convertLocalDateTimeToString(exercise.getSubmission_deadline()));
exerciseGetVM.setType(EventType.exercise);
- exerciseGetVM.setCreatedAt(exercise.getCreatedAt());
List files = exerciseFileService.getByExerciseId(exercise.getId());
exerciseGetVM.setFiles(files);
events.add(exerciseGetVM);
diff --git a/src/main/java/com/backend/elearning/domain/common/AbstractAuditEntity.java b/src/main/java/com/backend/elearning/domain/common/AbstractAuditEntity.java
index 74282209..71e94e17 100644
--- a/src/main/java/com/backend/elearning/domain/common/AbstractAuditEntity.java
+++ b/src/main/java/com/backend/elearning/domain/common/AbstractAuditEntity.java
@@ -5,17 +5,16 @@
import jakarta.persistence.MappedSuperclass;
import lombok.Getter;
import lombok.Setter;
-import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.CreatedDate;
-import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
+import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import java.time.LocalDateTime;
@MappedSuperclass
@Getter
@Setter
-@EntityListeners(CustomAuditingEntityListener.class)
+@EntityListeners(AuditingEntityListener.class)
public class AbstractAuditEntity {
@CreatedDate
diff --git a/src/main/java/com/backend/elearning/domain/common/CustomAuditingEntityListener.java b/src/main/java/com/backend/elearning/domain/common/CustomAuditingEntityListener.java
index ca5e7530..02590e39 100644
--- a/src/main/java/com/backend/elearning/domain/common/CustomAuditingEntityListener.java
+++ b/src/main/java/com/backend/elearning/domain/common/CustomAuditingEntityListener.java
@@ -15,6 +15,4 @@ public CustomAuditingEntityListener(ObjectFactory handler) {
public CustomAuditingEntityListener() {
}
-
-
}
diff --git a/src/main/java/com/backend/elearning/domain/coupon/Coupon.java b/src/main/java/com/backend/elearning/domain/coupon/Coupon.java
index 0560a41c..b6d6aac2 100644
--- a/src/main/java/com/backend/elearning/domain/coupon/Coupon.java
+++ b/src/main/java/com/backend/elearning/domain/coupon/Coupon.java
@@ -1,4 +1,5 @@
package com.backend.elearning.domain.coupon;
+import com.backend.elearning.domain.common.AbstractAuditEntity;
import com.backend.elearning.domain.order.Order;
import jakarta.persistence.*;
import lombok.*;
@@ -14,7 +15,7 @@
@Setter
@Getter
@Builder
-public class Coupon {
+public class Coupon extends AbstractAuditEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
diff --git a/src/main/java/com/backend/elearning/domain/course/Course.java b/src/main/java/com/backend/elearning/domain/course/Course.java
index 8d40e457..f3145e83 100644
--- a/src/main/java/com/backend/elearning/domain/course/Course.java
+++ b/src/main/java/com/backend/elearning/domain/course/Course.java
@@ -24,7 +24,6 @@
@Getter
@Setter
@Builder
-@EntityListeners(value = CustomAuditingEntityListener.class)
public class Course extends AbstractAuditEntity {
@Id
@@ -44,7 +43,7 @@ public class Course extends AbstractAuditEntity {
private String[] targetAudiences;
- @Column(length = 1000)
+ @Column(columnDefinition = "TEXT")
private String description;
private String imageId;
diff --git a/src/main/java/com/backend/elearning/domain/course/CourseServiceImpl.java b/src/main/java/com/backend/elearning/domain/course/CourseServiceImpl.java
index 4aa833e9..e7734364 100644
--- a/src/main/java/com/backend/elearning/domain/course/CourseServiceImpl.java
+++ b/src/main/java/com/backend/elearning/domain/course/CourseServiceImpl.java
@@ -146,8 +146,6 @@ public CourseVM create(CoursePostVM coursePostVM) {
if (!course.isFree()) {
course.setPrice(coursePostVM.price());
}
- course.setCreatedAt(LocalDateTime.now());
- course.setUpdatedAt(LocalDateTime.now());
return CourseVM.fromModel(courseRepository.save(course), new ArrayList<>(),0, 0.0,0,"", null, false, 0L);
}
@@ -178,7 +176,6 @@ public CourseVM update(CoursePostVM coursePutVM, Long userId, Long courseId) {
oldCourse.setTargetAudiences(coursePutVM.targetAudiences());
oldCourse.setFree(coursePutVM.free());
oldCourse.setStatus(CourseStatus.UNPUBLISHED);
- oldCourse.setUpdatedAt(LocalDateTime.now());
if (!coursePutVM.free()) {
oldCourse.setPrice(coursePutVM.price());
}
diff --git a/src/main/java/com/backend/elearning/domain/excercise/ExerciseServiceImpl.java b/src/main/java/com/backend/elearning/domain/excercise/ExerciseServiceImpl.java
index 77e1b73d..97f80b1e 100644
--- a/src/main/java/com/backend/elearning/domain/excercise/ExerciseServiceImpl.java
+++ b/src/main/java/com/backend/elearning/domain/excercise/ExerciseServiceImpl.java
@@ -38,8 +38,6 @@ public ExerciseVM create(ExercisePostVM exercisePostVM) {
.classroom(classroom)
.build();
- exercise.setCreatedAt(LocalDateTime.now());
- exercise.setUpdatedAt(LocalDateTime.now());
Exercise savedExercise = exerciseRepository.saveAndFlush(exercise);
return ExerciseVM.fromModel(savedExercise);
}
@@ -50,7 +48,6 @@ public ExerciseVM update(ExercisePostVM exercisePostVM, Long referenceId) {
Exercise exercise = exerciseRepository.findById(referenceId).orElseThrow();
exercise.setTitle(exercisePostVM.title());
exercise.setDescription(exercisePostVM.description());
- exercise.setUpdatedAt(LocalDateTime.now());
exercise.setSubmission_deadline(deadline);
Exercise savedExercise = exerciseRepository.saveAndFlush(exercise);
return ExerciseVM.fromModel(savedExercise);
diff --git a/src/main/java/com/backend/elearning/domain/exerciseFile/ExerciseFile.java b/src/main/java/com/backend/elearning/domain/exerciseFile/ExerciseFile.java
index a3cd9383..c12cc04a 100644
--- a/src/main/java/com/backend/elearning/domain/exerciseFile/ExerciseFile.java
+++ b/src/main/java/com/backend/elearning/domain/exerciseFile/ExerciseFile.java
@@ -1,5 +1,6 @@
package com.backend.elearning.domain.exerciseFile;
+import com.backend.elearning.domain.common.AbstractAuditEntity;
import com.backend.elearning.domain.excercise.Exercise;
import com.backend.elearning.domain.reference.Reference;
import com.backend.elearning.domain.student.Student;
diff --git a/src/main/java/com/backend/elearning/domain/lecture/Lecture.java b/src/main/java/com/backend/elearning/domain/lecture/Lecture.java
index a73847bd..c93713cd 100644
--- a/src/main/java/com/backend/elearning/domain/lecture/Lecture.java
+++ b/src/main/java/com/backend/elearning/domain/lecture/Lecture.java
@@ -14,7 +14,6 @@
@Setter
@Builder
@ToString
-@EntityListeners(value = CustomAuditingEntityListener.class)
public class Lecture extends AbstractAuditEntity {
@Id
diff --git a/src/main/java/com/backend/elearning/domain/lecture/LectureServiceImpl.java b/src/main/java/com/backend/elearning/domain/lecture/LectureServiceImpl.java
index 3dcf73ee..13c772bb 100644
--- a/src/main/java/com/backend/elearning/domain/lecture/LectureServiceImpl.java
+++ b/src/main/java/com/backend/elearning/domain/lecture/LectureServiceImpl.java
@@ -37,8 +37,6 @@ public LectureVm create(LecturePostVM lecturePostVM) {
.number(lecturePostVM.number())
.section(section)
.build();
- lecture.setCreatedAt(LocalDateTime.now());
- lecture.setUpdatedAt(LocalDateTime.now());
Lecture savedLecture = lectureRepository.save(lecture);
LectureVm lectureVm = new LectureVm(savedLecture);
return lectureVm;
@@ -58,7 +56,6 @@ public LectureVm update(LecturePostVM lecturePutVM, Long lectureId) {
lecture.setLectureDetails(lecturePutVM.lectureDetails());
lecture.setDuration(lecturePutVM.duration());
Lecture savedLecture = lectureRepository.saveAndFlush(lecture);
- lecture.setUpdatedAt(LocalDateTime.now());
LectureVm lectureVm = new LectureVm(savedLecture);
return lectureVm;
}
diff --git a/src/main/java/com/backend/elearning/domain/meeting/MeetingServiceImpl.java b/src/main/java/com/backend/elearning/domain/meeting/MeetingServiceImpl.java
index 8178c22d..0e746801 100644
--- a/src/main/java/com/backend/elearning/domain/meeting/MeetingServiceImpl.java
+++ b/src/main/java/com/backend/elearning/domain/meeting/MeetingServiceImpl.java
@@ -30,8 +30,6 @@ public MeetingVM create(MeetingPostVM meetingPostVM) {
.endTime(endTime)
.classroom(classroom)
.build();
- meeting.setCreatedAt(LocalDateTime.now());
- meeting.setUpdatedAt(LocalDateTime.now());
Meeting savedMeeting = meetingRepository.saveAndFlush(meeting);
return MeetingVM.fromModel(savedMeeting);
}
@@ -44,7 +42,6 @@ public MeetingVM update(MeetingPostVM meetingPostVM, Long meetingId) {
meeting.setCode(meetingPostVM.code());
meeting.setStartTime(startTime);
meeting.setEndTime(endTime);
- meeting.setUpdatedAt(LocalDateTime.now());
Meeting updatedMeeting = meetingRepository.saveAndFlush(meeting);
return MeetingVM.fromModel(updatedMeeting);
}
diff --git a/src/main/java/com/backend/elearning/domain/note/Note.java b/src/main/java/com/backend/elearning/domain/note/Note.java
index c531cece..eb5673c6 100644
--- a/src/main/java/com/backend/elearning/domain/note/Note.java
+++ b/src/main/java/com/backend/elearning/domain/note/Note.java
@@ -1,5 +1,6 @@
package com.backend.elearning.domain.note;
+import com.backend.elearning.domain.common.AbstractAuditEntity;
import com.backend.elearning.domain.lecture.Lecture;
import com.backend.elearning.domain.student.Student;
import jakarta.persistence.*;
@@ -12,7 +13,7 @@
@Setter
@Getter
@Builder
-public class Note {
+public class Note extends AbstractAuditEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
diff --git a/src/main/java/com/backend/elearning/domain/order/Order.java b/src/main/java/com/backend/elearning/domain/order/Order.java
index 8d042fee..e56a97e5 100644
--- a/src/main/java/com/backend/elearning/domain/order/Order.java
+++ b/src/main/java/com/backend/elearning/domain/order/Order.java
@@ -1,5 +1,6 @@
package com.backend.elearning.domain.order;
+import com.backend.elearning.domain.common.AbstractAuditEntity;
import com.backend.elearning.domain.coupon.Coupon;
import com.backend.elearning.domain.student.Student;
import jakarta.persistence.*;
@@ -16,7 +17,7 @@
@Setter
@Getter
@Builder
-public class Order {
+public class Order extends AbstractAuditEntity {
@Id
@@ -31,7 +32,6 @@ public class Order {
@JoinColumn(name = "coupon_id")
private Coupon coupon;
- private LocalDateTime createdAt;
@Enumerated(EnumType.STRING)
private EOrderStatus status;
diff --git a/src/main/java/com/backend/elearning/domain/order/impl/OrderServiceImpl.java b/src/main/java/com/backend/elearning/domain/order/impl/OrderServiceImpl.java
index 43bf6001..6e160eeb 100644
--- a/src/main/java/com/backend/elearning/domain/order/impl/OrderServiceImpl.java
+++ b/src/main/java/com/backend/elearning/domain/order/impl/OrderServiceImpl.java
@@ -63,7 +63,6 @@ public Long createOrder(OrderPostDto orderPostDto) {
Order order = Order.builder()
.status(EOrderStatus.PENDING)
.student(student)
- .createdAt(LocalDateTime.now())
.build();
if (coupon != null) {
order.setCoupon(coupon);
diff --git a/src/main/java/com/backend/elearning/domain/promotion/Promotion.java b/src/main/java/com/backend/elearning/domain/promotion/Promotion.java
index 9de962a2..2ad52f9b 100644
--- a/src/main/java/com/backend/elearning/domain/promotion/Promotion.java
+++ b/src/main/java/com/backend/elearning/domain/promotion/Promotion.java
@@ -1,5 +1,6 @@
package com.backend.elearning.domain.promotion;
+import com.backend.elearning.domain.common.AbstractAuditEntity;
import com.backend.elearning.domain.course.Course;
import jakarta.persistence.*;
import lombok.*;
@@ -15,7 +16,7 @@
@Getter
@Setter
@Builder
-public class Promotion {
+public class Promotion extends AbstractAuditEntity {
@Id
diff --git a/src/main/java/com/backend/elearning/domain/questionLecture/QuestionLectureServiceImpl.java b/src/main/java/com/backend/elearning/domain/questionLecture/QuestionLectureServiceImpl.java
index 9eb6b4bc..2911fe27 100644
--- a/src/main/java/com/backend/elearning/domain/questionLecture/QuestionLectureServiceImpl.java
+++ b/src/main/java/com/backend/elearning/domain/questionLecture/QuestionLectureServiceImpl.java
@@ -51,8 +51,6 @@ public QuestionLectureVM create(QuestionLecturePostVM questionLecturePostVM) {
.lecture(lecture)
.student(student)
.build();
- questionLecture.setCreatedAt(LocalDateTime.now());
- questionLecture.setUpdatedAt(LocalDateTime.now());
QuestionLecture savedQuestionLecture = questionLectureRepo.saveAndFlush(questionLecture);
return QuestionLectureVM.fromModel(savedQuestionLecture);
@@ -64,7 +62,6 @@ public QuestionLectureVM update(QuestionLecturePostVM questionLecturePostVM, Lon
QuestionLecture questionLecture = questionLectureRepo.findById(questionLectureId).orElseThrow();
questionLecture.setTitle(questionLecturePostVM.title());
questionLecture.setDescription(questionLecturePostVM.description());
- questionLecture.setUpdatedAt(LocalDateTime.now());
QuestionLecture savedQuestionLecture = questionLectureRepo.saveAndFlush(questionLecture);
return QuestionLectureVM.fromModel(savedQuestionLecture);
diff --git a/src/main/java/com/backend/elearning/domain/questionLecture/studentAnswer/StudentAnswerServiceImpl.java b/src/main/java/com/backend/elearning/domain/questionLecture/studentAnswer/StudentAnswerServiceImpl.java
index 02b51bf6..763d9173 100644
--- a/src/main/java/com/backend/elearning/domain/questionLecture/studentAnswer/StudentAnswerServiceImpl.java
+++ b/src/main/java/com/backend/elearning/domain/questionLecture/studentAnswer/StudentAnswerServiceImpl.java
@@ -37,8 +37,6 @@ public AnswerLecture create(StudentAnswerPostVM studentAnswerPostVM) {
.student(student)
.questionLecture(questionLecture)
.build();
- studentAnswer.setCreatedAt(LocalDateTime.now());
- studentAnswer.setUpdatedAt(LocalDateTime.now());
StudentAnswer savedStudentAnswer = studentAnswerRepo.saveAndFlush(studentAnswer);
return AnswerLecture.fromModelStudent(savedStudentAnswer);
@@ -48,7 +46,6 @@ public AnswerLecture create(StudentAnswerPostVM studentAnswerPostVM) {
public AnswerLecture update(StudentAnswerPostVM studentAnswerPostVM, Long studentAnswerId) {
StudentAnswer studentAnswer = studentAnswerRepo.findById(studentAnswerId).orElseThrow() ;
studentAnswer.setContent(studentAnswerPostVM.content());
- studentAnswer.setUpdatedAt(LocalDateTime.now());
StudentAnswer savedStudentAnswer = studentAnswerRepo.saveAndFlush(studentAnswer);
return AnswerLecture.fromModelStudent(savedStudentAnswer);
}
diff --git a/src/main/java/com/backend/elearning/domain/questionLecture/userAnswer/UserAnswerServiceImpl.java b/src/main/java/com/backend/elearning/domain/questionLecture/userAnswer/UserAnswerServiceImpl.java
index b03f5aae..9664e311 100644
--- a/src/main/java/com/backend/elearning/domain/questionLecture/userAnswer/UserAnswerServiceImpl.java
+++ b/src/main/java/com/backend/elearning/domain/questionLecture/userAnswer/UserAnswerServiceImpl.java
@@ -35,8 +35,6 @@ public AnswerLecture create(UserAnswerPostVM userAnswerPostVM) {
.user(user)
.questionLecture(questionLecture)
.build();
- userAnswer.setCreatedAt(LocalDateTime.now());
- userAnswer.setUpdatedAt(LocalDateTime.now());
UserAnswer savedUserAnswer = userAnswerRepo.saveAndFlush(userAnswer);
return AnswerLecture.fromModelUser(savedUserAnswer);
@@ -46,7 +44,6 @@ public AnswerLecture create(UserAnswerPostVM userAnswerPostVM) {
public AnswerLecture update(UserAnswerPostVM userAnswerPostVM, Long userAnswerId) {
UserAnswer userAnswer = userAnswerRepo.findById(userAnswerId).orElseThrow();
userAnswer.setContent(userAnswerPostVM.content());
- userAnswer.setUpdatedAt(LocalDateTime.now());
UserAnswer savedUserAnswer = userAnswerRepo.saveAndFlush(userAnswer);
return AnswerLecture.fromModelUser(savedUserAnswer);
}
diff --git a/src/main/java/com/backend/elearning/domain/quiz/Quiz.java b/src/main/java/com/backend/elearning/domain/quiz/Quiz.java
index 002b8eb4..25034dd8 100644
--- a/src/main/java/com/backend/elearning/domain/quiz/Quiz.java
+++ b/src/main/java/com/backend/elearning/domain/quiz/Quiz.java
@@ -17,7 +17,6 @@
@Getter
@Setter
@Builder
-@EntityListeners(value = CustomAuditingEntityListener.class)
public class Quiz extends AbstractAuditEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
diff --git a/src/main/java/com/backend/elearning/domain/quiz/QuizServiceImpl.java b/src/main/java/com/backend/elearning/domain/quiz/QuizServiceImpl.java
index 7e4664a8..1037f1a7 100644
--- a/src/main/java/com/backend/elearning/domain/quiz/QuizServiceImpl.java
+++ b/src/main/java/com/backend/elearning/domain/quiz/QuizServiceImpl.java
@@ -33,8 +33,6 @@ public QuizVM create(QuizPostVM quizPostVM) {
.description(quizPostVM.description())
.section(section)
.build();
- quiz.setCreatedAt(LocalDateTime.now());
- quiz.setUpdatedAt(LocalDateTime.now());
Quiz savedQuiz = quizRepository.save(quiz);
return new QuizVM(savedQuiz);
}
@@ -50,7 +48,6 @@ public QuizVM update(QuizPostVM quizPutVM, Long quizId) {
quiz.setTitle(quizPutVM.title());
quiz.setDescription(quizPutVM.description());
quiz.setNumber(quizPutVM.number());
- quiz.setUpdatedAt(LocalDateTime.now());
Quiz savedQuiz = quizRepository.saveAndFlush(quiz);
return new QuizVM(savedQuiz);
}
diff --git a/src/main/java/com/backend/elearning/domain/reference/ReferenceServiceImpl.java b/src/main/java/com/backend/elearning/domain/reference/ReferenceServiceImpl.java
index 187fd0b4..c0402259 100644
--- a/src/main/java/com/backend/elearning/domain/reference/ReferenceServiceImpl.java
+++ b/src/main/java/com/backend/elearning/domain/reference/ReferenceServiceImpl.java
@@ -28,8 +28,6 @@ public ReferenceVM create(ReferencePostVM referencePostVM) {
.classroom(classroom)
.build();
- reference.setCreatedAt(LocalDateTime.now());
- reference.setUpdatedAt(LocalDateTime.now());
Reference savedReference = referenceRepository.saveAndFlush(reference);
return ReferenceVM.fromModel(savedReference);
}
@@ -38,7 +36,6 @@ public ReferenceVM create(ReferencePostVM referencePostVM) {
public ReferenceVM update(ReferencePostVM referencePostVM, Long referenceId) {
Reference reference = referenceRepository.findById(referenceId).orElseThrow();
reference.setDescription(referencePostVM.description());
- reference.setUpdatedAt(LocalDateTime.now());
Reference savedReference = referenceRepository.saveAndFlush(reference);
return ReferenceVM.fromModel(savedReference);
}
diff --git a/src/main/java/com/backend/elearning/domain/review/Review.java b/src/main/java/com/backend/elearning/domain/review/Review.java
index e60b391d..22a90410 100644
--- a/src/main/java/com/backend/elearning/domain/review/Review.java
+++ b/src/main/java/com/backend/elearning/domain/review/Review.java
@@ -1,5 +1,6 @@
package com.backend.elearning.domain.review;
+import com.backend.elearning.domain.common.AbstractAuditEntity;
import com.backend.elearning.domain.course.Course;
import com.backend.elearning.domain.student.Student;
import jakarta.persistence.*;
@@ -14,7 +15,7 @@
@AllArgsConstructor
@NoArgsConstructor
@Builder
-public class Review {
+public class Review extends AbstractAuditEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@@ -37,10 +38,4 @@ public class Review {
@JoinColumn(name = "student_id")
private Student student;
- @Column(name = "created_at")
- protected LocalDateTime createdAt;
-
-
- @Column(name = "updated_at")
- protected LocalDateTime updatedAt;
}
diff --git a/src/main/java/com/backend/elearning/domain/review/ReviewServiceImpl.java b/src/main/java/com/backend/elearning/domain/review/ReviewServiceImpl.java
index 8f489724..8619fce0 100644
--- a/src/main/java/com/backend/elearning/domain/review/ReviewServiceImpl.java
+++ b/src/main/java/com/backend/elearning/domain/review/ReviewServiceImpl.java
@@ -59,8 +59,6 @@ public ReviewVM createReviewForProduct(ReviewPostVM reviewPost) {
.course(course)
.content(reviewPost.content())
.ratingStar(reviewPost.ratingStar())
- .createdAt(LocalDateTime.now())
- .updatedAt(LocalDateTime.now())
.build();
Review savedReview = reviewRepository.save(review);
diff --git a/src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroom.java b/src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroom.java
similarity index 71%
rename from src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroom.java
rename to src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroom.java
index 73ed3973..2e660c31 100644
--- a/src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroom.java
+++ b/src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroom.java
@@ -1,7 +1,7 @@
-package com.backend.elearning.domain.review_classroom;
+package com.backend.elearning.domain.reviewClassroom;
import com.backend.elearning.domain.classroom.Classroom;
-import com.backend.elearning.domain.course.Course;
+import com.backend.elearning.domain.common.AbstractAuditEntity;
import com.backend.elearning.domain.student.Student;
import jakarta.persistence.*;
import lombok.*;
@@ -15,7 +15,7 @@
@AllArgsConstructor
@NoArgsConstructor
@Builder
-public class ReviewClassroom {
+public class ReviewClassroom extends AbstractAuditEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@@ -35,11 +35,4 @@ public class ReviewClassroom {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "student_id")
private Student student;
-
- @Column(name = "created_at")
- protected LocalDateTime createdAt;
-
-
- @Column(name = "updated_at")
- protected LocalDateTime updatedAt;
}
diff --git a/src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomController.java b/src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomController.java
similarity index 96%
rename from src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomController.java
rename to src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomController.java
index 5501e99a..dcd5c217 100644
--- a/src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomController.java
+++ b/src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomController.java
@@ -1,4 +1,4 @@
-package com.backend.elearning.domain.review_classroom;
+package com.backend.elearning.domain.reviewClassroom;
import jakarta.validation.Valid;
import org.springframework.http.ResponseEntity;
diff --git a/src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomGetVM.java b/src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomGetVM.java
similarity index 83%
rename from src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomGetVM.java
rename to src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomGetVM.java
index 3a907d06..ba7c1348 100644
--- a/src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomGetVM.java
+++ b/src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomGetVM.java
@@ -1,6 +1,5 @@
-package com.backend.elearning.domain.review_classroom;
+package com.backend.elearning.domain.reviewClassroom;
-import com.backend.elearning.domain.review.Review;
import com.backend.elearning.utils.DateTimeUtils;
public record ReviewClassroomGetVM (
diff --git a/src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomPostVM.java b/src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomPostVM.java
similarity index 84%
rename from src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomPostVM.java
rename to src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomPostVM.java
index 93dc1f0c..de55302c 100644
--- a/src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomPostVM.java
+++ b/src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomPostVM.java
@@ -1,4 +1,4 @@
-package com.backend.elearning.domain.review_classroom;
+package com.backend.elearning.domain.reviewClassroom;
import jakarta.validation.constraints.NotNull;
diff --git a/src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomRepo.java b/src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomRepo.java
similarity index 81%
rename from src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomRepo.java
rename to src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomRepo.java
index e6f87abe..ea2cf293 100644
--- a/src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomRepo.java
+++ b/src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomRepo.java
@@ -1,8 +1,5 @@
-package com.backend.elearning.domain.review_classroom;
+package com.backend.elearning.domain.reviewClassroom;
-import com.backend.elearning.domain.review.Review;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
diff --git a/src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomService.java b/src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomService.java
similarity index 85%
rename from src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomService.java
rename to src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomService.java
index 26e2e222..67ecba6a 100644
--- a/src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomService.java
+++ b/src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomService.java
@@ -1,4 +1,4 @@
-package com.backend.elearning.domain.review_classroom;
+package com.backend.elearning.domain.reviewClassroom;
diff --git a/src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomServiceImpl.java b/src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomServiceImpl.java
similarity index 92%
rename from src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomServiceImpl.java
rename to src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomServiceImpl.java
index 5c80da6d..1fae7593 100644
--- a/src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomServiceImpl.java
+++ b/src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomServiceImpl.java
@@ -1,9 +1,7 @@
-package com.backend.elearning.domain.review_classroom;
+package com.backend.elearning.domain.reviewClassroom;
import com.backend.elearning.domain.classroom.Classroom;
import com.backend.elearning.domain.classroom.ClassroomRepository;
-import com.backend.elearning.domain.review.Review;
-import com.backend.elearning.domain.review.ReviewVM;
import com.backend.elearning.domain.student.Student;
import com.backend.elearning.domain.student.StudentRepository;
import com.backend.elearning.exception.NotFoundException;
@@ -40,8 +38,6 @@ public ReviewClassroomVM create(ReviewClassroomPostVM reviewPost) {
.classroom(classroom)
.content(reviewPost.content())
.ratingStar(reviewPost.ratingStar())
- .createdAt(LocalDateTime.now())
- .updatedAt(LocalDateTime.now())
.build();
ReviewClassroom savedReview = reviewClassroomRepo.save(review);
return ReviewClassroomVM.fromModel(savedReview);
diff --git a/src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomVM.java b/src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomVM.java
similarity index 87%
rename from src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomVM.java
rename to src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomVM.java
index e46381e0..3e2747e2 100644
--- a/src/main/java/com/backend/elearning/domain/review_classroom/ReviewClassroomVM.java
+++ b/src/main/java/com/backend/elearning/domain/reviewClassroom/ReviewClassroomVM.java
@@ -1,7 +1,5 @@
-package com.backend.elearning.domain.review_classroom;
+package com.backend.elearning.domain.reviewClassroom;
-import com.backend.elearning.domain.review.Review;
-import com.backend.elearning.domain.review.ReviewVM;
import com.backend.elearning.domain.student.Student;
import com.backend.elearning.domain.user.UserGetVM;
import com.backend.elearning.utils.DateTimeUtils;
diff --git a/src/main/java/com/backend/elearning/domain/section/Section.java b/src/main/java/com/backend/elearning/domain/section/Section.java
index c7c3e17e..55efbc5f 100644
--- a/src/main/java/com/backend/elearning/domain/section/Section.java
+++ b/src/main/java/com/backend/elearning/domain/section/Section.java
@@ -19,7 +19,6 @@
@Setter
@ToString
@Builder
-@EntityListeners(value = CustomAuditingEntityListener.class)
public class Section extends AbstractAuditEntity {
@Id
diff --git a/src/main/java/com/backend/elearning/domain/student/Student.java b/src/main/java/com/backend/elearning/domain/student/Student.java
index 53c203de..3d855efe 100644
--- a/src/main/java/com/backend/elearning/domain/student/Student.java
+++ b/src/main/java/com/backend/elearning/domain/student/Student.java
@@ -20,13 +20,12 @@
import java.util.List;
@Entity
-@Table(name = "student")
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@Builder
-@EntityListeners(value = CustomAuditingEntityListener.class)
+@Table(name = "student")
public class Student extends AbstractAuditEntity implements UserDetails {
@Id
diff --git a/src/main/java/com/backend/elearning/domain/student/StudentServiceImpl.java b/src/main/java/com/backend/elearning/domain/student/StudentServiceImpl.java
index b6eb847d..279bfd66 100644
--- a/src/main/java/com/backend/elearning/domain/student/StudentServiceImpl.java
+++ b/src/main/java/com/backend/elearning/domain/student/StudentServiceImpl.java
@@ -59,8 +59,6 @@ public UserVm updateProfileStudent(StudentPutVM studentPutVM) {
student.setEmail(studentPutVM.email());
student.setFirstName(studentPutVM.firstName());
student.setLastName(studentPutVM.lastName());
- student.setCreatedAt(LocalDateTime.now());
- student.setUpdatedAt(LocalDateTime.now());
if (studentPutVM.gender() != null) {
student.setGender(EGender.valueOf(studentPutVM.gender()));
}
diff --git a/src/main/java/com/backend/elearning/domain/topic/Topic.java b/src/main/java/com/backend/elearning/domain/topic/Topic.java
index a0c493f4..354ec55d 100644
--- a/src/main/java/com/backend/elearning/domain/topic/Topic.java
+++ b/src/main/java/com/backend/elearning/domain/topic/Topic.java
@@ -16,7 +16,6 @@
@Getter
@Setter
@Builder
-@EntityListeners(value = CustomAuditingEntityListener.class)
public class Topic extends AbstractAuditEntity {
@Id
diff --git a/src/main/java/com/backend/elearning/domain/topic/TopicServiceImpl.java b/src/main/java/com/backend/elearning/domain/topic/TopicServiceImpl.java
index 1db8c32a..70e16267 100644
--- a/src/main/java/com/backend/elearning/domain/topic/TopicServiceImpl.java
+++ b/src/main/java/com/backend/elearning/domain/topic/TopicServiceImpl.java
@@ -73,8 +73,6 @@ public TopicVM create(TopicPostVM topicPostVM) {
.description(topicPostVM.description())
.publish(topicPostVM.isPublish())
.build();
- topic.setCreatedAt(LocalDateTime.now());
- topic.setUpdatedAt(LocalDateTime.now());
topicRepository.saveAndFlush(topic);
if (!topicPostVM.categories().isEmpty()) {
for (String catName: topicPostVM.categories()) {
@@ -112,7 +110,6 @@ public void update(TopicPostVM topicPostVM, Integer topicId) {
topic.setName(topicPostVM.name());
topic.setPublish(topicPostVM.isPublish());
topic.setDescription(topicPostVM.description());
- topic.setUpdatedAt(LocalDateTime.now());
Set newCategories = new HashSet<>(categoryRepository.findAllByNameIn(topicPostVM.categories()));
topic.setCategories(newCategories);
log.info(String.valueOf(newCategories.size()));
diff --git a/src/main/java/com/backend/elearning/domain/user/User.java b/src/main/java/com/backend/elearning/domain/user/User.java
index d4a7c815..185ba189 100644
--- a/src/main/java/com/backend/elearning/domain/user/User.java
+++ b/src/main/java/com/backend/elearning/domain/user/User.java
@@ -22,7 +22,6 @@
@Getter
@Setter
@Builder
-@EntityListeners(value = CustomAuditingEntityListener.class)
public class User extends AbstractAuditEntity implements UserDetails {
@Id
diff --git a/src/main/java/com/backend/elearning/domain/user/UserPutVm.java b/src/main/java/com/backend/elearning/domain/user/UserPutVm.java
index e8194875..cb147e12 100644
--- a/src/main/java/com/backend/elearning/domain/user/UserPutVm.java
+++ b/src/main/java/com/backend/elearning/domain/user/UserPutVm.java
@@ -2,10 +2,7 @@
import com.backend.elearning.utils.EnumPattern;
import jakarta.validation.constraints.Email;
-import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-import org.hibernate.validator.constraints.Length;
public record UserPutVm(
Long id,
diff --git a/src/main/java/com/backend/elearning/domain/user/UserServiceImpl.java b/src/main/java/com/backend/elearning/domain/user/UserServiceImpl.java
index a63ab8dc..e73e9767 100644
--- a/src/main/java/com/backend/elearning/domain/user/UserServiceImpl.java
+++ b/src/main/java/com/backend/elearning/domain/user/UserServiceImpl.java
@@ -101,8 +101,6 @@ public UserVm create(UserPostVm userPostVm) {
.role(userPostVm.role())
.gender(userPostVm.gender())
.build();
- user.setCreatedAt(LocalDateTime.now());
- user.setUpdatedAt(LocalDateTime.now());
User savedUser = userRepository.saveAndFlush(user);
return UserVm.fromModel(savedUser);
}
@@ -123,7 +121,6 @@ public UserVm update(UserPutVm userPutVm, Long userId) {
user.setGender(userPutVm.gender());
user.setRole(userPutVm.role());
user.setDateOfBirth(LocalDate.of(userPutVm.year(), userPutVm.month(), userPutVm.day()));
- user.setUpdatedAt(LocalDateTime.now());
Optional.ofNullable(userPutVm.photo())
.filter(photo -> !photo.isEmpty() && !photo.isBlank())
.ifPresent(user::setPhoto);
diff --git a/src/main/java/com/backend/elearning/security/JWTAuthenticationFilter.java b/src/main/java/com/backend/elearning/security/JWTAuthenticationFilter.java
index 704733b8..f7922caa 100644
--- a/src/main/java/com/backend/elearning/security/JWTAuthenticationFilter.java
+++ b/src/main/java/com/backend/elearning/security/JWTAuthenticationFilter.java
@@ -15,6 +15,9 @@
import java.io.IOException;
+import static com.backend.elearning.utils.Constants.AUTH.AUTHORIZATION_HEADER;
+import static com.backend.elearning.utils.Constants.AUTH.BEARER_TOKEN;
+
@Component
@Slf4j
public class JWTAuthenticationFilter extends OncePerRequestFilter {
@@ -30,9 +33,9 @@ public JWTAuthenticationFilter(JWTUtil jwtUtil,
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
- String authHeader = request.getHeader("Authorization");
+ String authHeader = request.getHeader(AUTHORIZATION_HEADER);
- if (authHeader == null || !authHeader.startsWith("Bearer ")) {
+ if (authHeader == null || !authHeader.startsWith(BEARER_TOKEN)) {
filterChain.doFilter(request, response);
return;
}
diff --git a/src/main/java/com/backend/elearning/security/JWTUtil.java b/src/main/java/com/backend/elearning/security/JWTUtil.java
index 630932c8..9af31047 100644
--- a/src/main/java/com/backend/elearning/security/JWTUtil.java
+++ b/src/main/java/com/backend/elearning/security/JWTUtil.java
@@ -4,6 +4,7 @@
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.security.Keys;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.security.Key;
import java.time.Instant;
@@ -11,23 +12,24 @@
import java.util.Date;
import java.util.List;
import java.util.Map;
+import static com.backend.elearning.utils.Constants.AUTH.SCOPES;
@Service
public class JWTUtil {
- private static final String SECRET_KEY =
- "foobar_123456789_foobar_123456789_foobar_123456789_foobar_123456789";
+ @Value("${jwt.secret}")
+ private String SECRET_KEY;
public String issueToken(String subject) {
return issueToken(subject, Map.of());
}
public String issueToken(String subject, String ...scopes) {
- return issueToken(subject, Map.of("scopes", scopes));
+ return issueToken(subject, Map.of(SCOPES, scopes));
}
public String issueToken(String subject, List scopes) {
- return issueToken(subject, Map.of("scopes", scopes));
+ return issueToken(subject, Map.of(SCOPES, scopes));
}
diff --git a/src/main/java/com/backend/elearning/security/UserDetailsServiceImpl.java b/src/main/java/com/backend/elearning/security/UserDetailsServiceImpl.java
index cb1c72c7..a1b86154 100644
--- a/src/main/java/com/backend/elearning/security/UserDetailsServiceImpl.java
+++ b/src/main/java/com/backend/elearning/security/UserDetailsServiceImpl.java
@@ -5,7 +5,6 @@
import com.backend.elearning.domain.user.User;
import com.backend.elearning.domain.user.UserRepository;
import com.backend.elearning.exception.NotFoundException;
-import com.backend.elearning.utils.Constants;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
@@ -17,8 +16,11 @@
@Service
@RequiredArgsConstructor
public class UserDetailsServiceImpl implements UserDetailsService {
- private final UserRepository userRepository ;
+
+ private final UserRepository userRepository;
+
private final StudentRepository studentRepository;
+
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
Optional user = userRepository.findByEmail(username);
diff --git a/src/main/java/com/backend/elearning/utils/Constants.java b/src/main/java/com/backend/elearning/utils/Constants.java
index ed8b46a6..cf757a5c 100644
--- a/src/main/java/com/backend/elearning/utils/Constants.java
+++ b/src/main/java/com/backend/elearning/utils/Constants.java
@@ -2,6 +2,13 @@
public final class Constants {
+
+ public final class AUTH {
+ public static final String AUTHORIZATION_HEADER = "Authorization";
+ public static final String BEARER_TOKEN = "Bearer ";
+ public static final String SCOPES = "scopes";
+ }
+
public final class ERROR_CODE {
public static final String USER_NOT_FOUND = "USER_NOT_FOUND";
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 5fa8abe8..83f9a0f0 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -49,4 +49,7 @@ payment:
returnUrl: "http://localhost:5173/vn-pay-callback"
version: "2.1.0"
command: "pay"
- orderType: "bill"
\ No newline at end of file
+ orderType: "bill"
+
+jwt:
+ secret: ${JWT_SECRET}
\ No newline at end of file
diff --git a/src/test/java/com/backend/elearning/controller/CategoryControllerTest.java b/src/test/java/com/backend/elearning/controller/CategoryControllerTest.java
index 6f787e3d..e74fe647 100644
--- a/src/test/java/com/backend/elearning/controller/CategoryControllerTest.java
+++ b/src/test/java/com/backend/elearning/controller/CategoryControllerTest.java
@@ -29,7 +29,6 @@
import java.util.List;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
-
@WebMvcTest(
controllers = CategoryController.class,
excludeAutoConfiguration = {
@@ -37,6 +36,8 @@
}
)
public class CategoryControllerTest {
+
+
@MockBean
private JWTUtil jwtUtil;
diff --git a/src/test/java/com/backend/elearning/service/ReviewServiceTest.java b/src/test/java/com/backend/elearning/service/ReviewServiceTest.java
index 94284326..852e68a2 100644
--- a/src/test/java/com/backend/elearning/service/ReviewServiceTest.java
+++ b/src/test/java/com/backend/elearning/service/ReviewServiceTest.java
@@ -71,8 +71,6 @@ void createReviewForProduct_shouldReturnReviewVM_whenReviewIsCreatedSuccessfully
.content(reviewPostVM.content())
.ratingStar(reviewPostVM.ratingStar())
.status(ReviewStatus.UNDER_REVIEW)
- .createdAt(LocalDateTime.now())
- .updatedAt(LocalDateTime.now())
.build();
Review savedReview = Review.builder()
@@ -82,8 +80,6 @@ void createReviewForProduct_shouldReturnReviewVM_whenReviewIsCreatedSuccessfully
.status(ReviewStatus.UNDER_REVIEW)
.content(reviewPostVM.content())
.ratingStar(reviewPostVM.ratingStar())
- .createdAt(reviewToSave.getCreatedAt())
- .updatedAt(reviewToSave.getUpdatedAt())
.build();
when(securityContext.getAuthentication()).thenReturn(authentication);
@@ -124,8 +120,6 @@ void updateReview_shouldReturnUpdatedReviewVM_whenReviewIsUpdatedSuccessfully()
.status(ReviewStatus.UNDER_REVIEW)
.course(course)
.ratingStar(5)
- .createdAt(LocalDateTime.now().minusDays(1))
- .updatedAt(LocalDateTime.now().minusDays(1))
.build();
Review updatedReview = Review.builder()
@@ -135,8 +129,6 @@ void updateReview_shouldReturnUpdatedReviewVM_whenReviewIsUpdatedSuccessfully()
.status(ReviewStatus.UNDER_REVIEW)
.content(reviewPostVM.content())
.ratingStar(reviewPostVM.ratingStar())
- .createdAt(existingReview.getCreatedAt())
- .updatedAt(LocalDateTime.now())
.build();
when(reviewRepository.findById(reviewId)).thenReturn(Optional.of(existingReview));
diff --git a/src/test/java/com/backend/elearning/service/UserServiceTest.java b/src/test/java/com/backend/elearning/service/UserServiceTest.java
index 870980f4..a95fb83b 100644
--- a/src/test/java/com/backend/elearning/service/UserServiceTest.java
+++ b/src/test/java/com/backend/elearning/service/UserServiceTest.java
@@ -168,7 +168,6 @@ void shouldUpdateUserDetails_whenValidUserPutVmAndUserIdProvided() {
assertEquals(userPutVm.active(), user.isActive());
assertEquals(userPutVm.role(), user.getRole());
assertEquals(LocalDate.of(userPutVm.year(), userPutVm.month(), userPutVm.day()), user.getDateOfBirth());
- assertNotNull(user.getUpdatedAt());
verify(userRepository).save(user);
}