Commit 3e163747 authored by Usman Siddiqui's avatar Usman Siddiqui

Merge branch 'course' into 'master'

Course

See merge request !4
parents 6ce91b86 7ae44194
mvnw 100755 → 100644
File mode changed from 100755 to 100644
package com.school.project.controller; package com.school.project.controller;
import com.fasterxml.jackson.databind.annotation.JsonAppend;
import com.school.project.dto.CourseDTO; import com.school.project.dto.course.CourseRegisterDTO;
import com.school.project.repository.modelRepositery.CourseRepository;
import com.school.project.service.course.CourseServiceImp; import com.school.project.service.course.CourseServiceImp;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
...@@ -20,10 +19,10 @@ public class CourseController { ...@@ -20,10 +19,10 @@ public class CourseController {
private CourseServiceImp courseServiceImp; private CourseServiceImp courseServiceImp;
@PostMapping("/save") @PostMapping("/save")
private ResponseEntity saveCourse(@RequestBody CourseDTO course) { private ResponseEntity saveCourse(@RequestBody CourseRegisterDTO course) {
try { try {
courseServiceImp.saveCourse(course); courseServiceImp.saveCourse(course);
return ResponseEntity.ok("Department Saved"); return ResponseEntity.ok("Course Saved");
} catch (Exception e) { } catch (Exception e) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Data Is Not Correct", e); throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Data Is Not Correct", e);
} }
......
package com.school.project.controller; package com.school.project.controller;
import com.school.project.dto.DepartmentDTO; import com.school.project.dto.department.DepartmentRegisterDTO;
import com.school.project.service.department.DepartmentServiceImp; import com.school.project.service.department.DepartmentServiceImp;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
...@@ -19,7 +19,7 @@ public class DepartmentController { ...@@ -19,7 +19,7 @@ public class DepartmentController {
private DepartmentServiceImp departmentServiceImp; private DepartmentServiceImp departmentServiceImp;
@PostMapping("/save") @PostMapping("/save")
private ResponseEntity saveDepartment(@RequestBody DepartmentDTO department){ private ResponseEntity saveDepartment(@RequestBody DepartmentRegisterDTO department){
try { try {
departmentServiceImp.saveDepartment(department); departmentServiceImp.saveDepartment(department);
return ResponseEntity.ok("Department Saved"); return ResponseEntity.ok("Department Saved");
......
...@@ -4,11 +4,10 @@ package com.school.project.controller; ...@@ -4,11 +4,10 @@ package com.school.project.controller;
import com.school.project.dto.userRegistration.AdminRegistrationDTO; import com.school.project.dto.userRegistration.AdminRegistrationDTO;
import com.school.project.dto.userRegistration.StudentRegistrationDTO; import com.school.project.dto.userRegistration.StudentRegistrationDTO;
import com.school.project.dto.userRegistration.TeacherRegistrationDTO; import com.school.project.dto.userRegistration.TeacherRegistrationDTO;
import com.school.project.dto.userRegistration.UserDTO; import com.school.project.dto.userRegistration.UserRegistrationDTO;
import com.school.project.service.userRegistration.admin.AdminRegistrationService; import com.school.project.service.userRegistration.admin.AdminRegistrationService;
import com.school.project.service.userRegistration.student.StudentRegistrationService; import com.school.project.service.userRegistration.student.StudentRegistrationService;
import com.school.project.service.userRegistration.teacher.TeacherRegistrationService; import com.school.project.service.userRegistration.teacher.TeacherRegistrationService;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
...@@ -32,9 +31,9 @@ public class RegistrationController { ...@@ -32,9 +31,9 @@ public class RegistrationController {
private AdminRegistrationService adminRegistrationService; private AdminRegistrationService adminRegistrationService;
@PostMapping("/student") @PostMapping("/student")
public ResponseEntity<UserDTO> registerStudent(@RequestBody StudentRegistrationDTO student) { public ResponseEntity<UserRegistrationDTO> registerStudent(@RequestBody StudentRegistrationDTO student) {
try { try {
UserDTO userDTO = studentRegistrationService.registerStudent(student); UserRegistrationDTO userDTO = studentRegistrationService.registerStudent(student);
return ResponseEntity.ok(userDTO); return ResponseEntity.ok(userDTO);
} catch (Exception e) { } catch (Exception e) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Data is not correct", e); throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Data is not correct", e);
...@@ -42,9 +41,9 @@ public class RegistrationController { ...@@ -42,9 +41,9 @@ public class RegistrationController {
} }
@PostMapping("/teacher") @PostMapping("/teacher")
public ResponseEntity<UserDTO> registerTeacher(@RequestBody TeacherRegistrationDTO teacher) { public ResponseEntity<UserRegistrationDTO> registerTeacher(@RequestBody TeacherRegistrationDTO teacher) {
try { try {
UserDTO userDTO = teacherRegistrationService.registerTeacher(teacher); UserRegistrationDTO userDTO = teacherRegistrationService.registerTeacher(teacher);
return ResponseEntity.ok(userDTO); return ResponseEntity.ok(userDTO);
} catch (Exception e) { } catch (Exception e) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Data is not correct", e); throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Data is not correct", e);
...@@ -52,9 +51,9 @@ public class RegistrationController { ...@@ -52,9 +51,9 @@ public class RegistrationController {
} }
@PostMapping("/admin") @PostMapping("/admin")
public ResponseEntity<UserDTO> registerAdmin(@RequestBody AdminRegistrationDTO admin) { public ResponseEntity<UserRegistrationDTO> registerAdmin(@RequestBody AdminRegistrationDTO admin) {
try { try {
UserDTO userDTO = adminRegistrationService.registerAdmin(admin); UserRegistrationDTO userDTO = adminRegistrationService.registerAdmin(admin);
return ResponseEntity.ok(userDTO); return ResponseEntity.ok(userDTO);
} catch (Exception e) { } catch (Exception e) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Data is not correct", e); throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Data is not correct", e);
......
package com.school.project.controller; package com.school.project.controller;
import com.school.project.model.Student; import com.school.project.dto.student.StudentCourseRegistrationDTO;
import com.school.project.dto.student.StudentCoursesDTO;
import com.school.project.dto.student.StudentViewDataDTO;
import com.school.project.service.courseRegistration.CourseRegistrationService;
import com.school.project.service.student.StudentServiceImpl; import com.school.project.service.student.StudentServiceImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.core.annotation.CurrentSecurityContext; import org.springframework.security.core.annotation.CurrentSecurityContext;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import java.security.Principal;
import org.springframework.web.bind.annotation.RestController; import java.util.List;
import java.util.Set;
@RestController @RestController
@RequestMapping("/student") @RequestMapping("/student")
...@@ -18,12 +22,25 @@ public class StudentController { ...@@ -18,12 +22,25 @@ public class StudentController {
@Autowired @Autowired
private StudentServiceImpl studentService; private StudentServiceImpl studentService;
@GetMapping("/data/{id}") @Autowired
public Student getUserDetails(@CurrentSecurityContext(expression = "authentication") private CourseRegistrationService courseRegistrationService;
Authentication authentication , @PathVariable("id") Long id) {
@GetMapping("")
public StudentViewDataDTO getUserDetails(@CurrentSecurityContext(expression = "authentication") Authentication authentication) {
return studentService.viewData(authentication.getName());
}
@GetMapping("/course")
public StudentCoursesDTO showCourses(Principal principal) {
return studentService.viewCourses(studentService.getUserId(principal.getName()));
}
@PostMapping("/course/register")
public void registerCourses(Principal principal, @RequestBody Set<StudentCourseRegistrationDTO> courses) {
Student student = studentService.viewData(id); courseRegistrationService.courseRegistration(studentService.getUserId(principal.getName()), courses);
// Student student = studentService.viewData(authentication.getName());
return student;
} }
} }
...@@ -6,6 +6,7 @@ import org.springframework.web.bind.annotation.GetMapping; ...@@ -6,6 +6,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.security.Principal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -15,15 +16,20 @@ public class UserController { ...@@ -15,15 +16,20 @@ public class UserController {
@GetMapping("/user") @GetMapping("/user")
public List<String> currentUserName(@CurrentSecurityContext(expression = "authentication") public List<String> currentUserName(@CurrentSecurityContext(expression = "authentication")
Authentication authentication) { Authentication authentication, Principal principal) {
List<String> data = new ArrayList<>(); List<String> data = new ArrayList<>();
data.add(authentication.getName()); data.add(authentication.getName());
data.add(String.valueOf(authentication.getAuthorities())); data.add(String.valueOf(authentication.getAuthorities()));
data.add(String.valueOf(authentication.getCredentials())); data.add(String.valueOf(authentication.getCredentials()));
data.add(String.valueOf(authentication.getDetails())); data.add(String.valueOf(authentication.getDetails()));
data.add(String.valueOf(authentication.getPrincipal())); data.add(String.valueOf(authentication.getPrincipal()));
data.add("\nNow Here Is Principal Details\n");
data.add(principal.getName());
return data; return data;
} }
} }
package com.school.project.dto; package com.school.project.dto.course;
import com.school.project.model.Student;
import com.school.project.model.Teacher;
import lombok.Data; import lombok.Data;
import java.util.List;
@Data @Data
public class CourseDTO { public class CourseRegisterDTO {
private String courseName; private String courseName;
......
package com.school.project.dto; package com.school.project.dto.department;
import lombok.Data; import lombok.Data;
@Data @Data
public class DepartmentDTO { public class DepartmentRegisterDTO {
private String name; private String name;
......
package com.school.project.dto.student;
import lombok.Data;
@Data
public class StudentCourseRegistrationDTO {
private String courseName;
}
package com.school.project.dto.student;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.school.project.model.Course;
import jdk.jfr.DataAmount;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.util.List;
import java.util.Set;
@Data
@EqualsAndHashCode(exclude = "courseList")
@ToString(exclude = "courseList")
public class StudentCoursesDTO {
private String studentName;
private String studentRollNumber;
private Set<Course> courseList;
}
package com.school.project.dto.student;
import lombok.Data;
@Data
public class StudentViewDataDTO {
private String name;
private String rollNumber;
private Long age;
}
...@@ -6,7 +6,7 @@ import lombok.Data; ...@@ -6,7 +6,7 @@ import lombok.Data;
@Data @Data
@AllArgsConstructor @AllArgsConstructor
public class UserDTO { public class UserRegistrationDTO {
private Long userId; private Long userId;
private String email; private String email;
......
package com.school.project.mapper;
import com.school.project.dto.student.StudentCoursesDTO;
import com.school.project.model.Student;
import org.springframework.stereotype.Component;
@Component
public class StudentCoursesMapper {
public StudentCoursesDTO modelToDto(Student student) {
StudentCoursesDTO coursesDTO = new StudentCoursesDTO();
coursesDTO.setStudentName(student.getName());
coursesDTO.setStudentRollNumber(student.getRollNumber());
coursesDTO.setCourseList(student.getCourseLists());
return coursesDTO;
}
}
package com.school.project.mapper;
import com.school.project.dto.student.StudentViewDataDTO;
import com.school.project.model.Student;
import org.mapstruct.Mapper;
import org.springframework.stereotype.Component;
@Component
public class StudentViewDataMapper {
public StudentViewDataDTO modelToDto(Student student) {
StudentViewDataDTO studentViewDataDTO = new StudentViewDataDTO();
studentViewDataDTO.setName(student.getName());
studentViewDataDTO.setRollNumber(student.getRollNumber());
studentViewDataDTO.setAge(student.getAge());
return studentViewDataDTO;
}
}
...@@ -2,18 +2,18 @@ package com.school.project.model; ...@@ -2,18 +2,18 @@ package com.school.project.model;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.sun.istack.NotNull; import com.sun.istack.NotNull;
import lombok.AllArgsConstructor; import lombok.*;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.RequiredArgsConstructor;
import javax.persistence.*; import javax.persistence.*;
import java.util.List; import java.util.List;
import java.util.Set;
@Data @Data
@Entity() @Entity()
@NoArgsConstructor @NoArgsConstructor
@Table(name = "Course") @Table(name = "Course")
@EqualsAndHashCode(exclude = {"studentList","teacherList"})
@ToString(exclude = {"studentList","teacherList"})
public class Course { public class Course {
@Id @Id
...@@ -28,12 +28,12 @@ public class Course { ...@@ -28,12 +28,12 @@ public class Course {
@Column(name = "courseCode",unique = true) @Column(name = "courseCode",unique = true)
private String courseCode; private String courseCode;
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "courseLists") @ManyToMany(fetch = FetchType.LAZY, mappedBy = "courseLists",cascade = CascadeType.MERGE)
@JsonIgnore @JsonIgnore
private List<Student> studentList; private Set<Student> studentList;
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "courseList") @ManyToMany(fetch = FetchType.LAZY, mappedBy = "courseList")
@JsonIgnore @JsonIgnore
private List<Teacher> teacherList; private Set<Teacher> teacherList;
} }
...@@ -5,17 +5,23 @@ import com.school.project.model.Course; ...@@ -5,17 +5,23 @@ import com.school.project.model.Course;
import com.school.project.model.userRegistration.User; import com.school.project.model.userRegistration.User;
import com.sun.istack.NotNull; import com.sun.istack.NotNull;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.ToString; import lombok.ToString;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import javax.persistence.*; import javax.persistence.*;
import java.util.List; import java.util.List;
import java.util.Set;
@Data @Data
@Entity() @Entity()
@NoArgsConstructor @NoArgsConstructor
@Table(name = "Student") @Table(name = "Student")
@EqualsAndHashCode(exclude = {"courseLists"})
@ToString(exclude = {"courseLists","studentAppUser"})
public class Student { public class Student {
@Id @Id
...@@ -36,18 +42,18 @@ public class Student { ...@@ -36,18 +42,18 @@ public class Student {
private Long age; private Long age;
@JsonIgnore @JsonIgnore
@ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE}) @ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.ALL})
@Fetch(value= FetchMode.SELECT)
@JoinTable( @JoinTable(
name = "studentsCourses", name = "studentsCourses",
joinColumns = {@JoinColumn(name = "student_id")}, joinColumns = {@JoinColumn(name = "student_id")},
inverseJoinColumns = {@JoinColumn(name = "course_id")} inverseJoinColumns = {@JoinColumn(name = "course_id")}
) )
private List<Course> courseLists; private Set<Course> courseLists;
@OneToOne @OneToOne(fetch = FetchType.LAZY)
@MapsId @MapsId
@JoinColumn(name = "student_id") @JoinColumn(name = "student_id")
@Lazy @JsonIgnore
@ToString.Exclude
private User studentAppUser; private User studentAppUser;
} }
...@@ -12,6 +12,7 @@ import org.springframework.context.annotation.Lazy; ...@@ -12,6 +12,7 @@ import org.springframework.context.annotation.Lazy;
import javax.persistence.*; import javax.persistence.*;
import java.util.List; import java.util.List;
import java.util.Set;
@Data @Data
@Entity @Entity
...@@ -43,13 +44,13 @@ public class Teacher { ...@@ -43,13 +44,13 @@ public class Teacher {
private Department department; private Department department;
@JsonIgnore @JsonIgnore
@ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.MERGE}) @ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.ALL})
@JoinTable( @JoinTable(
name = "teachersCourses", name = "teachersCourses",
joinColumns = {@JoinColumn(name = "teacher_id")}, joinColumns = {@JoinColumn(name = "teacher_id")},
inverseJoinColumns = {@JoinColumn(name = "course_id")} inverseJoinColumns = {@JoinColumn(name = "course_id")}
) )
private List<Course> courseList; private Set<Course> courseList;
@OneToOne(fetch = FetchType.LAZY) @OneToOne(fetch = FetchType.LAZY)
@MapsId @MapsId
......
...@@ -21,10 +21,10 @@ public class Admin { ...@@ -21,10 +21,10 @@ public class Admin {
@Column(name = "admin_name") @Column(name = "admin_name")
private String name; private String name;
@OneToOne @OneToOne(fetch = FetchType.LAZY)
@MapsId @MapsId
@JoinColumn(name = "admin_id") @JoinColumn(name = "admin_id")
@Lazy
@ToString.Exclude @ToString.Exclude
@JsonIgnore
private User adminAppUser; private User adminAppUser;
} }
package com.school.project.model.userRegistration; package com.school.project.model.userRegistration;
import com.fasterxml.jackson.annotation.JsonFilter;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.school.project.model.Student; import com.school.project.model.Student;
import com.school.project.model.Teacher; import com.school.project.model.Teacher;
...@@ -36,19 +35,22 @@ public class User { ...@@ -36,19 +35,22 @@ public class User {
@NotNull @NotNull
private Role role; private Role role;
@OneToOne(mappedBy = "studentAppUser", cascade = {CascadeType.MERGE}, fetch = FetchType.LAZY) @OneToOne(mappedBy = "studentAppUser", cascade = {CascadeType.ALL}, fetch = FetchType.LAZY)
@PrimaryKeyJoinColumn @PrimaryKeyJoinColumn
@ToString.Exclude @ToString.Exclude
@JsonIgnore
private Student studentUser; private Student studentUser;
@OneToOne(mappedBy = "teacherAppUser", cascade = {CascadeType.MERGE}, fetch = FetchType.LAZY) @OneToOne(mappedBy = "teacherAppUser", cascade = {CascadeType.ALL}, fetch = FetchType.LAZY)
@PrimaryKeyJoinColumn @PrimaryKeyJoinColumn
@ToString.Exclude @ToString.Exclude
@JsonIgnore
private Teacher teacherUser; private Teacher teacherUser;
@OneToOne(mappedBy = "adminAppUser", cascade = {CascadeType.MERGE}, fetch = FetchType.LAZY) @OneToOne(mappedBy = "adminAppUser", cascade = {CascadeType.ALL}, fetch = FetchType.LAZY)
@PrimaryKeyJoinColumn @PrimaryKeyJoinColumn
@ToString.Exclude @ToString.Exclude
@JsonIgnore
private Admin adminUser; private Admin adminUser;
} }
...@@ -4,4 +4,5 @@ import com.school.project.model.Course; ...@@ -4,4 +4,5 @@ import com.school.project.model.Course;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
public interface CourseRepository extends JpaRepository<Course,Long> { public interface CourseRepository extends JpaRepository<Course,Long> {
Course findByCourseName(String name);
} }
...@@ -4,4 +4,6 @@ import com.school.project.model.Student; ...@@ -4,4 +4,6 @@ import com.school.project.model.Student;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
public interface StudentRepository extends JpaRepository<Student,Long> { public interface StudentRepository extends JpaRepository<Student,Long> {
public Student findByStudentId(Long id);
} }
...@@ -49,11 +49,11 @@ public class OAuth2ServerConfiguration { ...@@ -49,11 +49,11 @@ public class OAuth2ServerConfiguration {
.and() .and()
.authorizeRequests() .authorizeRequests()
.antMatchers("/register/**").permitAll() .antMatchers("/register/**").permitAll()
.antMatchers("/department/**","/course/**","/student/").hasAuthority("ADMIN"); .antMatchers("/student/**").hasAuthority("STUDENT")
.antMatchers("/department/**", "/course/**").hasAuthority("ADMIN");
} }
} }
@Configuration @Configuration
@EnableAuthorizationServer @EnableAuthorizationServer
protected static class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter { protected static class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {
......
package com.school.project.service.course; package com.school.project.service.course;
import com.school.project.dto.CourseDTO;
import java.util.List; import com.school.project.dto.course.CourseRegisterDTO;
public interface CourseService { public interface CourseService {
public String saveCourse(CourseDTO courseDTO); public String saveCourse(CourseRegisterDTO courseDTO);
public List<CourseDTO> readAllCourse();
public CourseDTO readCourseById(Long id);
public CourseDTO updateCourseById(CourseDTO courseDTO, Long id);
public void deleteCourseById(Long id);
} }
package com.school.project.service.course; package com.school.project.service.course;
import com.school.project.dto.CourseDTO; import com.school.project.dto.course.CourseRegisterDTO;
import com.school.project.model.Course; import com.school.project.model.Course;
import com.school.project.repository.modelRepositery.CourseRepository; import com.school.project.repository.modelRepositery.CourseRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.List;
@Service @Service
public class CourseServiceImp implements CourseService { public class CourseServiceImp implements CourseService {
...@@ -16,7 +13,7 @@ public class CourseServiceImp implements CourseService { ...@@ -16,7 +13,7 @@ public class CourseServiceImp implements CourseService {
public CourseRepository courseRepository; public CourseRepository courseRepository;
@Override @Override
public String saveCourse(CourseDTO courseDTO) { public String saveCourse(CourseRegisterDTO courseDTO) {
Course newCourse = new Course(); Course newCourse = new Course();
newCourse.setCourseCode(courseDTO.getCourseCode()); newCourse.setCourseCode(courseDTO.getCourseCode());
...@@ -27,26 +24,6 @@ public class CourseServiceImp implements CourseService { ...@@ -27,26 +24,6 @@ public class CourseServiceImp implements CourseService {
return "Course Saved"; return "Course Saved";
} }
@Override
public List<CourseDTO> readAllCourse() {
return null;
}
@Override
public CourseDTO readCourseById(Long id) {
return null;
}
@Override
public CourseDTO updateCourseById(CourseDTO courseDTO, Long id) {
return null;
}
@Override
public void deleteCourseById(Long id) {
}
/* @Transactional /* @Transactional
@Override @Override
public List<CourseDTO> readAllCourse() { public List<CourseDTO> readAllCourse() {
......
package com.school.project.service.courseRegistration;
import com.school.project.dto.student.StudentCourseRegistrationDTO;
import org.springframework.stereotype.Service;
import java.util.Set;
@Service
public interface CourseRegistrationService {
public void courseRegistration(Long id, Set<StudentCourseRegistrationDTO> courses);
}
package com.school.project.service.courseRegistration;
import com.school.project.dto.student.StudentCourseRegistrationDTO;
import com.school.project.model.Course;
import com.school.project.model.Student;
import com.school.project.repository.modelRepositery.CourseRepository;
import com.school.project.repository.modelRepositery.StudentRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.List;
import java.util.Set;
@Service
public class CourseRegistrationServiceImpl implements CourseRegistrationService {
@Autowired
private StudentRepository studentRepository;
@Autowired
private CourseRepository courseRepository;
@Override
@Transactional
@Modifying
public void courseRegistration(Long id, Set<StudentCourseRegistrationDTO> courses) {
Student student = studentRepository.findByStudentId(id);
Set<Course> studentCourses = student.getCourseLists();
courses.forEach(course -> studentCourses.add(courseRepository.findByCourseName(course.getCourseName())));
student.setCourseLists(studentCourses);
studentRepository.save(student);
}
}
package com.school.project.service.department; package com.school.project.service.department;
import com.school.project.dto.DepartmentDTO; import com.school.project.dto.department.DepartmentRegisterDTO;
import java.util.List;
public interface DepartmentService { public interface DepartmentService {
public String saveDepartment(DepartmentDTO departmentDTO); public String saveDepartment(DepartmentRegisterDTO departmentDTO);
public List<DepartmentDTO> readDepartment();
public DepartmentDTO readDepartmentById(Long id);
public DepartmentDTO updateDepartment(DepartmentDTO departmentDTO, Long id);
public void deleteDepartmentById(Long id);
public DepartmentDTO findDepartmentByName(String departmentName);
} }
package com.school.project.service.department; package com.school.project.service.department;
import com.school.project.dto.DepartmentDTO; import com.school.project.dto.department.DepartmentRegisterDTO;
import com.school.project.model.Department; import com.school.project.model.Department;
import com.school.project.repository.modelRepositery.DepartmentRepository; import com.school.project.repository.modelRepositery.DepartmentRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
@Service @Service
public class DepartmentServiceImp implements DepartmentService { public class DepartmentServiceImp implements DepartmentService {
@Autowired(required = true) @Autowired(required = true)
private DepartmentRepository departmentRepository; private DepartmentRepository departmentRepository;
@Override @Override
public String saveDepartment(DepartmentDTO department) { public String saveDepartment(DepartmentRegisterDTO department) {
Department newDepartment = new Department(); Department newDepartment = new Department();
...@@ -25,45 +23,20 @@ public class DepartmentServiceImp implements DepartmentService { ...@@ -25,45 +23,20 @@ public class DepartmentServiceImp implements DepartmentService {
return "Department Saved"; return "Department Saved";
} }
@Override
public List<DepartmentDTO> readDepartment() {
return null;
}
@Override
public DepartmentDTO readDepartmentById(Long id) {
return null;
}
@Override
public DepartmentDTO updateDepartment(DepartmentDTO departmentDTO, Long id) {
return null;
}
@Override
public void deleteDepartmentById(Long id) {
}
@Override
public DepartmentDTO findDepartmentByName(String departmentName) {
return null;
}
/* @Override /* @Override
public List<DepartmentDTO> readDepartment() { public List<DepartmentRegisterDTO> readDepartment() {
return departmentMapper.departmentListModelToDTO(departmentRepository.findAll()); return departmentMapper.departmentListModelToDTO(departmentRepository.findAll());
} }
@Override @Override
public DepartmentDTO readDepartmentById(Long departmentId) { public DepartmentRegisterDTO readDepartmentById(Long departmentId) {
return departmentMapper.departmentModelToDTO(departmentRepository.findById(departmentId).get()); return departmentMapper.departmentModelToDTO(departmentRepository.findById(departmentId).get());
} }
@Override @Override
public DepartmentDTO updateDepartment(DepartmentDTO departmentDTO, Long departmentId) { public DepartmentRegisterDTO updateDepartment(DepartmentRegisterDTO departmentDTO, Long departmentId) {
DepartmentDTO dto = readDepartmentById(departmentId); DepartmentRegisterDTO dto = readDepartmentById(departmentId);
dto.setName(departmentDTO.getName()); dto.setName(departmentDTO.getName());
...@@ -78,7 +51,7 @@ public class DepartmentServiceImp implements DepartmentService { ...@@ -78,7 +51,7 @@ public class DepartmentServiceImp implements DepartmentService {
} }
@Override @Override
public DepartmentDTO findDepartmentByName(String departmentName) { public DepartmentRegisterDTO findDepartmentByName(String departmentName) {
return departmentMapper.departmentModelToDTO(departmentRepository.findByName(departmentName)); return departmentMapper.departmentModelToDTO(departmentRepository.findByName(departmentName));
} }
......
package com.school.project.service.student; package com.school.project.service.student;
import com.school.project.model.Student; import com.school.project.dto.student.StudentCoursesDTO;
import com.school.project.dto.student.StudentViewDataDTO;
public interface StudentService { public interface StudentService {
public Student viewData(String username); public StudentViewDataDTO viewData(String username);
public Student viewData(Long id);
public void courseRegistration(); public Long getUserId(String username);
public StudentCoursesDTO viewCourses(Long id);
} }
package com.school.project.service.student; package com.school.project.service.student;
import com.school.project.model.Student; import com.school.project.dto.student.StudentCoursesDTO;
import com.school.project.model.Teacher; import com.school.project.dto.student.StudentViewDataDTO;
import com.school.project.repository.modelRepositery.TeacherRepository; import com.school.project.mapper.StudentCoursesMapper;
import com.school.project.mapper.StudentViewDataMapper;
import com.school.project.model.userRegistration.User;
import com.school.project.repository.modelRepositery.StudentRepository;
import com.school.project.repository.userRegistration.UserRepository; import com.school.project.repository.userRegistration.UserRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Optional;
@Service @Service
public class StudentServiceImpl implements StudentService{ public class StudentServiceImpl implements StudentService {
@Autowired @Autowired
private TeacherRepository teacherRepository; private StudentRepository studentRepository;
@Autowired @Autowired
private UserRepository userRepository; private UserRepository userRepository;
@Autowired
private StudentViewDataMapper studentViewDataMapper;
@Autowired
private StudentCoursesMapper studentCoursesMapper;
@Override @Override
public Student viewData(String username) { public Long getUserId(String username) {
return null; User user = userRepository.findUserByEmail(username).get();
return user.getUserId();
} }
@Override @Override
public Student viewData(/*String username*/ Long id) { public StudentViewDataDTO viewData(String username) {
Teacher teacher = teacherRepository.findOneByTeacherId(id); User user = userRepository.findUserByEmail(username).get();
StudentViewDataDTO student = studentViewDataMapper.modelToDto(studentRepository.findByStudentId(user.getUserId()));
return null; return student;
} }
@Override @Override
public void courseRegistration() { public StudentCoursesDTO viewCourses(Long id) {
return studentCoursesMapper.modelToDto(studentRepository.findByStudentId(id));
} }
} }
package com.school.project.service.userRegistration.admin; package com.school.project.service.userRegistration.admin;
import com.school.project.dto.userRegistration.AdminRegistrationDTO; import com.school.project.dto.userRegistration.AdminRegistrationDTO;
import com.school.project.dto.userRegistration.UserDTO; import com.school.project.dto.userRegistration.UserRegistrationDTO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Service @Service
public interface AdminRegistrationService { public interface AdminRegistrationService {
public UserDTO registerAdmin(AdminRegistrationDTO admin); public UserRegistrationDTO registerAdmin(AdminRegistrationDTO admin);
} }
package com.school.project.service.userRegistration.admin; package com.school.project.service.userRegistration.admin;
import com.school.project.dto.userRegistration.AdminRegistrationDTO; import com.school.project.dto.userRegistration.AdminRegistrationDTO;
import com.school.project.dto.userRegistration.UserDTO; import com.school.project.dto.userRegistration.UserRegistrationDTO;
import com.school.project.model.userRegistration.Admin; import com.school.project.model.userRegistration.Admin;
import com.school.project.model.userRegistration.Role; import com.school.project.model.userRegistration.Role;
import com.school.project.model.userRegistration.User; import com.school.project.model.userRegistration.User;
...@@ -27,7 +27,7 @@ public class AdminRegistrationServiceImpl implements AdminRegistrationService { ...@@ -27,7 +27,7 @@ public class AdminRegistrationServiceImpl implements AdminRegistrationService {
@Autowired @Autowired
private PasswordEncoder passwordEncoder; private PasswordEncoder passwordEncoder;
public UserDTO registerAdmin(AdminRegistrationDTO admin) { public UserRegistrationDTO registerAdmin(AdminRegistrationDTO admin) {
User newUser = new User(); User newUser = new User();
...@@ -41,7 +41,9 @@ public class AdminRegistrationServiceImpl implements AdminRegistrationService { ...@@ -41,7 +41,9 @@ public class AdminRegistrationServiceImpl implements AdminRegistrationService {
newAdmin.setName(admin.getName()); newAdmin.setName(admin.getName());
newAdmin.setAdminAppUser(newUser); newAdmin.setAdminAppUser(newUser);
return new UserDTO(newUser.getUserId(), newUser.getEmail()); adminRegRepository.save(newAdmin);
return new UserRegistrationDTO(newUser.getUserId(), newUser.getEmail());
} }
......
package com.school.project.service.userRegistration.student; package com.school.project.service.userRegistration.student;
import com.school.project.dto.userRegistration.StudentRegistrationDTO; import com.school.project.dto.userRegistration.StudentRegistrationDTO;
import com.school.project.dto.userRegistration.UserDTO; import com.school.project.dto.userRegistration.UserRegistrationDTO;
public interface StudentRegistrationService { public interface StudentRegistrationService {
public UserDTO registerStudent(StudentRegistrationDTO studentRegistrationDTO); public UserRegistrationDTO registerStudent(StudentRegistrationDTO studentRegistrationDTO);
} }
package com.school.project.service.userRegistration.student; package com.school.project.service.userRegistration.student;
import com.school.project.dto.userRegistration.StudentRegistrationDTO; import com.school.project.dto.userRegistration.StudentRegistrationDTO;
import com.school.project.dto.userRegistration.UserDTO; import com.school.project.dto.userRegistration.UserRegistrationDTO;
import com.school.project.model.userRegistration.Role; import com.school.project.model.userRegistration.Role;
import com.school.project.model.Student; import com.school.project.model.Student;
import com.school.project.model.userRegistration.User; import com.school.project.model.userRegistration.User;
...@@ -31,9 +31,8 @@ public class StudentRegistrationServiceImpl implements StudentRegistrationServic ...@@ -31,9 +31,8 @@ public class StudentRegistrationServiceImpl implements StudentRegistrationServic
@Override @Override
@Transactional @Transactional
public UserDTO registerStudent(StudentRegistrationDTO studentRegistrationDTO) { public UserRegistrationDTO registerStudent(StudentRegistrationDTO studentRegistrationDTO) {
//Creating New User
User newUser = new User(); User newUser = new User();
newUser.setEmail(studentRegistrationDTO.getEmail()); newUser.setEmail(studentRegistrationDTO.getEmail());
...@@ -42,7 +41,6 @@ public class StudentRegistrationServiceImpl implements StudentRegistrationServic ...@@ -42,7 +41,6 @@ public class StudentRegistrationServiceImpl implements StudentRegistrationServic
newUser = userRepository.save(newUser); newUser = userRepository.save(newUser);
//Creating New Student
Student newStudent = new Student(); Student newStudent = new Student();
newStudent.setName(studentRegistrationDTO.getName()); newStudent.setName(studentRegistrationDTO.getName());
...@@ -52,7 +50,7 @@ public class StudentRegistrationServiceImpl implements StudentRegistrationServic ...@@ -52,7 +50,7 @@ public class StudentRegistrationServiceImpl implements StudentRegistrationServic
studentRepository.save(newStudent); studentRepository.save(newStudent);
return new UserDTO(newUser.getUserId(), newUser.getEmail()); return new UserRegistrationDTO(newUser.getUserId(), newUser.getEmail());
} }
} }
package com.school.project.service.userRegistration.teacher; package com.school.project.service.userRegistration.teacher;
import com.school.project.dto.userRegistration.TeacherRegistrationDTO; import com.school.project.dto.userRegistration.TeacherRegistrationDTO;
import com.school.project.dto.userRegistration.UserDTO; import com.school.project.dto.userRegistration.UserRegistrationDTO;
public interface TeacherRegistrationService { public interface TeacherRegistrationService {
public UserDTO registerTeacher(TeacherRegistrationDTO teacherRegistrationDTO); public UserRegistrationDTO registerTeacher(TeacherRegistrationDTO teacherRegistrationDTO);
} }
package com.school.project.service.userRegistration.teacher; package com.school.project.service.userRegistration.teacher;
import com.school.project.dto.userRegistration.TeacherRegistrationDTO; import com.school.project.dto.userRegistration.TeacherRegistrationDTO;
import com.school.project.dto.userRegistration.UserDTO; import com.school.project.dto.userRegistration.UserRegistrationDTO;
import com.school.project.model.userRegistration.Role; import com.school.project.model.userRegistration.Role;
import com.school.project.model.Teacher; import com.school.project.model.Teacher;
import com.school.project.model.userRegistration.User; import com.school.project.model.userRegistration.User;
...@@ -31,7 +31,7 @@ public class TeacherRegistrationServiceImpl implements TeacherRegistrationServic ...@@ -31,7 +31,7 @@ public class TeacherRegistrationServiceImpl implements TeacherRegistrationServic
@Override @Override
@Transactional @Transactional
public UserDTO registerTeacher(TeacherRegistrationDTO teacherRegistrationDTO) { public UserRegistrationDTO registerTeacher(TeacherRegistrationDTO teacherRegistrationDTO) {
User newUser = new User(); User newUser = new User();
...@@ -50,7 +50,7 @@ public class TeacherRegistrationServiceImpl implements TeacherRegistrationServic ...@@ -50,7 +50,7 @@ public class TeacherRegistrationServiceImpl implements TeacherRegistrationServic
teacherRepository.save(newTeacher); teacherRepository.save(newTeacher);
return new UserDTO(newTeacher.getTeacherId(), newUser.getEmail()); return new UserRegistrationDTO(newTeacher.getTeacherId(), newUser.getEmail());
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment