oep service
service- ciourseservice, customuserdetailsservice,enrollmentservice, userserv
package com.example.OepAchievers.Service;
import com.example.OepAchievers.Model.Course;
import com.example.OepAchievers.Repository.CourseRepository;
import jakarta.persistence.EntityNotFoundException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class CourseService {
@Autowired
private CourseRepository courseRepository;
public Course createCourse(Course course) {
return courseRepository.save(course);
}
public Course getCourseById(Long id) {
return courseRepository.findById(id).get();
// .orElseThrow(() -> new EntityNotFoundException("Course not found"));
}
public List<Course> getPublishedCourses() {
return courseRepository.findByStatus(Course.CourseStatus.PUBLISHED);
}
}
package com.example.OepAchievers.Service;
import com.example.OepAchievers.Model.CustomUsers;
import com.example.OepAchievers.Model.User;
import com.example.OepAchievers.Repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import java.util.Optional;
@Service
public class CustomUserDetailsService implements UserDetailsService {
@Autowired
private UserRepository userRepository;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
Optional<User> user=userRepository.findByUsername(username);
return new CustomUsers(user.get());
}
}
package com.example.OepAchievers.Service;
import com.example.OepAchievers.Model.Enrollment;
import com.example.OepAchievers.Repository.EnrollmentRepository;
import jakarta.persistence.EntityNotFoundException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class EnrollmentService {
@Autowired
private EnrollmentRepository enrollmentRepository;
public Enrollment enroll(Enrollment enrollment) {
if (enrollmentRepository.existsByStudentIdAndCourseId(
enrollment.getStudent().getId(),
enrollment.getCourse().getId())) {
throw new RuntimeException("Student already enrolled in this course");
}
return enrollmentRepository.save(enrollment);
}
public List<Enrollment> getStudentEnrollments(Long studentId) {
return enrollmentRepository.findByStudentId(studentId);
}
public void updateProgress(Long enrollmentId, Double progress) {
Enrollment enrollment = enrollmentRepository.findById(enrollmentId)
.orElseThrow(() -> new EntityNotFoundException("Enrollment not found"));
enrollment.setProgress(progress);
if (progress >= 100.0) {
enrollment.setStatus(Enrollment.EnrollmentStatus.COMPLETED);
}
enrollmentRepository.save(enrollment);
}
}
package com.example.OepAchievers.Service;
import com.example.OepAchievers.Model.User;
import com.example.OepAchievers.Repository.UserRepository;
import jakarta.persistence.EntityNotFoundException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.NoOpPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
@Service
public class UserServ {
@Autowired
private UserRepository userRepository;
@Autowired
private PasswordEncoder passwordEncoder;
public User createUser(User user) {
if (userRepository.existsByEmail(user.getEmail())) {
throw new RuntimeException("Email already exists");
}
user.setPassword(passwordEncoder.encode(user.getPassword()));
userRepository.save(user);
return user;
}
public User getUserById(Long id) {
return userRepository.findById(id)
.orElseThrow(() -> new EntityNotFoundException("User not found"));
}
public User getUserByUsername(String username){
return userRepository.findByUsername(username).orElseThrow(()->new RuntimeException("NO USER FOUND"));
}
public void saveUser(User user) {
user.setPassword(passwordEncoder.encode(user.getPassword()));
user.setEmail(user.getEmail());
userRepository.save(user);
}
}