Commit 88ce2805 authored by Muhammad Suleman's avatar Muhammad Suleman

Done With Controller Code

parent 2a33c914
package com.school.project.controller;
import com.school.project.dto.CourseDTO;
import com.school.project.mapper.CourseMapper;
import com.school.project.model.Course;
import com.school.project.service.implementation.CourseServiceImp;
import com.school.project.service.interfaces.CourseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.sql.SQLIntegrityConstraintViolationException;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Optional;
@Controller
@RequestMapping()
public class CourseController {
@Autowired(required = true)
public CourseService courseService;
public CourseServiceImp courseServiceImpl;
@PostMapping("/courses")
public ResponseEntity<CourseDTO> saveCourse(@RequestBody CourseDTO courseDTO) {
try {
CourseDTO course = courseServiceImpl.saveCourse(courseDTO);
return ResponseEntity.status(HttpStatus.OK).body(course);
} catch (Exception e) {
@PostMapping("/course")
public Course saveCourse(@RequestBody Course course){
return courseService.saveCourse(course);
return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
}
}
@GetMapping("/courses")
public List<Course> readAllCourses(){
return courseService.readAllCourse();
public ResponseEntity<List<CourseDTO>> readAllCourses() {
List<CourseDTO> course = courseServiceImpl.readAllCourse();
if (course.size() <= 0) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
} else {
return ResponseEntity.status(HttpStatus.OK).body(course);
}
}
@GetMapping("/course/{id}")
public Optional<Course> readCourseById(@PathVariable(name = "id") Long id)
{
return courseService.readCourseById(id);
@GetMapping("/courses/{id}")
public ResponseEntity<CourseDTO> readCourseById(@PathVariable(name = "id") Long id) {
try {
CourseDTO course = courseServiceImpl.readCourseById(id);
return ResponseEntity.status(HttpStatus.OK).body(course);
} catch (NoSuchElementException e) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
}
}
@PutMapping("/course/{id}")
public Course updateCourseById(@RequestBody Course course,@PathVariable(name = "id") Long id){
return courseService.updateCourseById(course,id);
@PutMapping("/courses/{id}")
public ResponseEntity<CourseDTO> updateCourseById(@RequestBody CourseDTO courseDTO, @PathVariable(name = "id") Long id) {
try {
CourseDTO updateCourse = courseServiceImpl.updateCourseById(courseDTO, id);
return ResponseEntity.status(HttpStatus.OK).body(updateCourse);
} catch (NoSuchElementException e) {
return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).build();
}
}
@DeleteMapping("/course/{id}")
public void deleteCourseById(@PathVariable(name = "id") Long id){
courseService.deleteCourseById(id);
@DeleteMapping("/courses/{id}")
public ResponseEntity deleteCourseById(@PathVariable(name = "id") Long id) {
try {
courseServiceImpl.deleteCourseById(id);
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
} catch (EmptyResultDataAccessException e) {
return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).build();
}
}
}
package com.school.project.controller;
import com.school.project.dto.CourseDTO;
import com.school.project.dto.DepartmentDTO;
import com.school.project.service.implementation.DepartmentServiceImp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.sql.SQLIntegrityConstraintViolationException;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Optional;
@RestController
public class DepartmentController {
@Autowired(required=true)
@Autowired(required = true)
public DepartmentServiceImp departmentServiceImp;
@GetMapping("department")
@GetMapping("departments")
public ResponseEntity<List<DepartmentDTO>> readAllDepartments() {
List<DepartmentDTO> departmentDTO = departmentServiceImp.readDepartment();
if(departmentDTO.isEmpty()){
if (departmentDTO.isEmpty()) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
}
else {
} else {
return ResponseEntity.of(Optional.of(departmentDTO));
}
}
@GetMapping("departmentId/{id}")
public ResponseEntity<DepartmentDTO> readDepartmentById(@PathVariable("id") Long id){
public ResponseEntity<DepartmentDTO> readDepartmentById(@PathVariable("id") Long id) {
try {
DepartmentDTO departmentDTO=departmentServiceImp.readDepartmentById(id);
DepartmentDTO departmentDTO = departmentServiceImp.readDepartmentById(id);
return ResponseEntity.of(Optional.of(departmentDTO));
return ResponseEntity.of(Optional.of(departmentDTO));
}catch (NoSuchElementException e){
} catch (NoSuchElementException e) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
}
......@@ -43,54 +45,49 @@ public class DepartmentController {
}
@GetMapping("departmentName/{name}")
public ResponseEntity<DepartmentDTO> findDepartmentByName(@PathVariable("name") String name){
DepartmentDTO departmentDTO=departmentServiceImp.findDepartmentByName(name);
public ResponseEntity<DepartmentDTO> findDepartmentByName(@PathVariable("name") String name) {
DepartmentDTO departmentDTO = departmentServiceImp.findDepartmentByName(name);
if(departmentDTO == null){
if (departmentDTO == null) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
}else {
} else {
return ResponseEntity.of(Optional.of(departmentDTO));
}
}
@PostMapping("departmentSave")
public ResponseEntity<DepartmentDTO> saveDepartment(@RequestBody DepartmentDTO department){
DepartmentDTO departmentDTO = departmentServiceImp.saveDepartment(department);
if(departmentDTO == null){
return ResponseEntity.status(HttpStatus.NOT_ACCEPTABLE).build();
}
else {
return ResponseEntity.status(HttpStatus.OK).body(departmentDTO);
}
}
@PostMapping("departments")
public ResponseEntity<DepartmentDTO> saveDepartment(@RequestBody DepartmentDTO department) {
@PutMapping("department/{id}")
public ResponseEntity<DepartmentDTO> updateDepartmentById(@RequestBody DepartmentDTO department, @PathVariable("id") Long id){
DepartmentDTO checkDepartment = departmentServiceImp.readDepartmentById(id);
try {
DepartmentDTO departmentDTO = departmentServiceImp.saveDepartment(department);
if(checkDepartment == null){
return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
}
else {
DepartmentDTO departmentDTO = departmentServiceImp.updateDepartment(department,id);
return ResponseEntity.status(HttpStatus.OK).body(departmentDTO);
return ResponseEntity.of(Optional.of(departmentDTO));
}
}
} catch (Exception exception) {
@DeleteMapping("department/{id}")
public ResponseEntity<Object> deleteDepartmentById(@PathVariable("id") Long id){
departmentServiceImp.deleteDepartmentById(id);
return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
DepartmentDTO departmentDTO = departmentServiceImp.readDepartmentById(id);
}
if(departmentDTO == null){
return ResponseEntity.status(HttpStatus.OK).build();
}else {
}
return ResponseEntity.of(Optional.of("Department Already Not Exist"));
@PutMapping("departments/{id}")
public ResponseEntity<DepartmentDTO> updateDepartmentById(@RequestBody DepartmentDTO department, @PathVariable("id") Long id) {
try {
DepartmentDTO updateDepartment = departmentServiceImp.updateDepartment(department, id);
return ResponseEntity.status(HttpStatus.OK).body(updateDepartment);
} catch (NoSuchElementException e) {
return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).build();
}
}
@DeleteMapping("departments/{id}")
public ResponseEntity<Object> deleteDepartmentById(@PathVariable("id") Long id) {
try {
departmentServiceImp.deleteDepartmentById(id);
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
} catch (EmptyResultDataAccessException e) {
return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).build();
}
}
}
package com.school.project.controller;
import com.school.project.dto.DepartmentDTO;
import com.school.project.dto.StudentDTO;
import com.school.project.model.Student;
import com.school.project.service.implementation.StudentServiceImp;
import com.school.project.service.interfaces.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Optional;
@RestController
public class StudentController {
@Autowired(required=true)
public StudentService studentService;
@Autowired(required = true)
public StudentServiceImp studentServiceImp;
@PostMapping("/student")
public Student saveStudent(@RequestBody Student student){
return studentService.saveStudent(student);
@PostMapping("/students")
public ResponseEntity<StudentDTO> saveStudent(@RequestBody StudentDTO studentDTO) {
StudentDTO student = studentServiceImp.saveStudent(studentDTO);
if (student == null) {
return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).build();
} else {
return ResponseEntity.status(HttpStatus.OK).body(student);
}
}
@GetMapping("/students")
public ResponseEntity<List<Student>> readAllStudents(){
List<Student> students=studentService.readAllStudents();
if(students.size()<=0){
public ResponseEntity<List<StudentDTO>> readAllStudents() {
List<StudentDTO> studentsDTO = studentServiceImp.readAllStudents();
if (studentsDTO.size() <= 0) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
} else {
return ResponseEntity.status(HttpStatus.OK).body(studentsDTO);
}
return ResponseEntity.of(Optional.of(students));
}
@GetMapping("student/{id}")
public Optional<Student> readStudentById(@PathVariable("id") Long id){
return studentService.readStudentById(id);
@GetMapping("students/{id}")
public ResponseEntity<StudentDTO> readStudentById(@PathVariable("id") Long id) {
try {
StudentDTO dto = studentServiceImp.readStudentById(id);
return ResponseEntity.status(HttpStatus.OK).body(dto);
} catch (NoSuchElementException e) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
}
}
@PutMapping("student/{id}")
public Student updateStudentById(@RequestBody Student student,@PathVariable("id") Long id){
return studentService.updateStudentById(student,id);
@PutMapping("students/{id}")
public ResponseEntity<StudentDTO> updateStudentById(@RequestBody StudentDTO studentDTO, @PathVariable("id") Long id) {
try {
StudentDTO updateStudent = studentServiceImp.updateStudentById(studentDTO, id);
return ResponseEntity.status(HttpStatus.OK).body(updateStudent);
} catch (NoSuchElementException e) {
return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).build();
}
}
@DeleteMapping("student/{id}")
public void deleteStudentById(@PathVariable("id") Long id){
studentService.deleteStudentById(id);
@DeleteMapping("students/{id}")
public ResponseEntity deleteStudentById(@PathVariable("id") Long id) {
try {
studentServiceImp.deleteStudentById(id);
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
} catch (EmptyResultDataAccessException e) {
return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).build();
}
}
}
}
\ No newline at end of file
package com.school.project.controller;
import com.school.project.dto.DepartmentDTO;
import com.school.project.dto.TeacherDTO;
import com.school.project.model.Teacher;
import com.school.project.service.implementation.TeacherServiceImp;
import com.school.project.service.interfaces.TeacherService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.http.HttpRange;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Optional;
@RestController
......@@ -15,31 +22,60 @@ import java.util.Optional;
public class TeacherController {
@Autowired(required = true)
public TeacherServiceImp teacherService;
public TeacherServiceImp teacherServiceImp;
@PostMapping("/teacher")
public Teacher saveTeacher(@RequestBody Teacher teacher){
return teacherService.saveTeacher(teacher);
@PostMapping("/saveTeachers")
public ResponseEntity<TeacherDTO> saveTeacher(@RequestBody TeacherDTO teacherDTO) {
TeacherDTO dto = teacherServiceImp.saveTeacher(teacherDTO);
if (dto == null) {
return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).build();
} else {
return ResponseEntity.status(HttpStatus.OK).body(dto);
}
}
@GetMapping("/teachers")
public List<Teacher> readAllTeachers(){
return (List<Teacher>) teacherService.readAllTeachers();
public ResponseEntity<List<TeacherDTO>> readAllTeachers() {
List<TeacherDTO> teacherDTOS = teacherServiceImp.readAllTeachers();
if (teacherDTOS.size() <= 0) {
return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).build();
} else {
return ResponseEntity.status(HttpStatus.OK).body(teacherDTOS);
}
}
@GetMapping("teacher/{id}")
public Optional<Teacher> readTeacherById(@PathVariable("id") Long id){
return teacherService.readTeacherById(id);
@GetMapping("teachers/{id}")
public ResponseEntity<TeacherDTO> readTeacherById(@PathVariable("id") Long id) {
try {
TeacherDTO teacherDTO = teacherServiceImp.readTeacherById(id);
return ResponseEntity.status(HttpStatus.OK).body(teacherDTO);
} catch (NoSuchElementException e) {
return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).build();
}
}
@PutMapping("teacher/{id}")
public Teacher updateTeacherById(@RequestBody Teacher teacher,@PathVariable("id") Long id){
return teacherService.updateTeacher(teacher,id);
@PutMapping("teachers/{id}")
public ResponseEntity<TeacherDTO> updateTeacherById(@RequestBody TeacherDTO teacherDTO, @PathVariable("id") Long id) {
try {
TeacherDTO updateTeacher = teacherServiceImp.updateTeacher(teacherDTO, id);
return ResponseEntity.status(HttpStatus.OK).body(updateTeacher);
} catch (NoSuchElementException e) {
return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).build();
}
}
@DeleteMapping("teacher/{id}")
public void deleteTeacherById(@PathVariable("id") Long id){
teacherService.deleteTeacherById(id);
@DeleteMapping("teachers/{id}")
public ResponseEntity deleteTeacherById(@PathVariable("id") Long id) {
try {
teacherServiceImp.deleteTeacherById(id);
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
} catch (EmptyResultDataAccessException e) {
return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).build();
}
}
}
......@@ -19,11 +19,11 @@ public class UserController {
UserMapper userMapper;
@PostMapping("/saveuser")
public String saveUser(@ModelAttribute UserDTO userDTO){
public String saveUser(@ModelAttribute UserDTO userDTO) {
Integer id = userService.saveUser(userMapper.userDtoToUser(userDTO));
String message = "User '"+id+"' saved successfully !";
String message = "User '" + id + "' saved successfully !";
return message;
}
......
......@@ -9,12 +9,12 @@ import java.util.List;
@Data
public class CourseDTO {
private Long id;
private Long id;
private String title;
private String title;
List<Student> studentList;
List<Student> studentList;
private Teacher teacher;
private List<Teacher> teacherList;
}
package com.school.project.dto;
import com.school.project.model.Teacher;
import lombok.Data;
import java.util.List;
@Data
public class DepartmentDTO {
private Long id;
private String name;
}
......@@ -15,7 +15,7 @@ public class TeacherDTO {
private String degree;
private Course course;
private List<Course> courseList;
private Department department;
}
......@@ -6,11 +6,16 @@ import com.school.project.model.Course;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
@Mapper(componentModel = "spring")
public interface CourseMapper {
CourseMapper INSTANCE = Mappers.getMapper(CourseMapper.class);
CourseDTO courseModelToDTO(Course course);
Course courseDTOToModel(CourseDTO courseDTO);
List<CourseDTO> courseModelToDTO(List<Course> all);
}
......@@ -14,7 +14,9 @@ public interface DepartmentMapper {
DepartmentMapper INSTANCE = Mappers.getMapper(DepartmentMapper.class);
DepartmentDTO departmentModelToDTO(Department department);
Department departmentDTOToModel(DepartmentDTO saveDepartment);
List<DepartmentDTO> departmentListModelToDTO(List<Department> all);
/*@Mappings({
......
......@@ -5,10 +5,17 @@ import com.school.project.model.Student;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
import java.util.Optional;
@Mapper(componentModel = "spring")
public interface StudentMapper {
StudentMapper INSTANCE = Mappers.getMapper(StudentMapper.class);
StudentDTO studentModelToDTO(Student student);
Student studentDTOToModel(StudentDTO studentDTO);
List<StudentDTO> studentModelToDTO(List<Student> all);
}
......@@ -5,6 +5,8 @@ import com.school.project.model.Teacher;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
@Mapper(componentModel = "spring")
public interface TeacherMapper {
......@@ -13,4 +15,6 @@ public interface TeacherMapper {
TeacherDTO teacherModelToDTo(Teacher teacher);
Teacher teacherDTOToModel(TeacherDTO teacherDTO);
List<TeacherDTO> teacherModelToDTo(List<Teacher> all);
}
package com.school.project.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import javax.persistence.*;
import java.util.List;
......@@ -12,14 +14,16 @@ public class Course {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "title")
@Column(name = "title", unique = true)
private String title;
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "courseLists")
List<Student> studentList;
@OneToOne(mappedBy = "course",orphanRemoval = true )
private Teacher teacher;
@JsonIgnore
private List<Student> studentList;
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "courseList")
@JsonIgnore
private List<Teacher> teacherList;
}
......@@ -3,6 +3,7 @@ package com.school.project.model;
import lombok.Data;
import javax.persistence.*;
import java.util.List;
@Data
@Entity()
......@@ -13,7 +14,7 @@ public class Department {
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
@Column(name = "name",unique = true)
@Column(name = "name", unique = true)
private String name;
}
package com.school.project.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import javax.persistence.*;
import java.util.List;
......@@ -14,17 +16,19 @@ public class Student {
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
@Column(name="name")
@Column(name = "name")
private String name;
@Column(name = "age")
private Long age;
@ManyToMany(fetch = FetchType.LAZY,cascade = { CascadeType.MERGE })
@ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE})
@JoinTable(
name = "studentsCourses",
joinColumns = { @JoinColumn(name = "student_id") },
inverseJoinColumns = { @JoinColumn(name = "course_id") }
joinColumns = {@JoinColumn(name = "student_id")},
inverseJoinColumns = {@JoinColumn(name = "course_id")}
)
@JsonIgnore
private List<Course> courseLists;
}
package com.school.project.model;
import lombok.Data;
import org.codehaus.jackson.annotate.JsonIgnore;
import javax.persistence.*;
import java.util.List;
@Data
@Entity
@Table(name="Teacher")
@Table(name = "Teacher")
public class Teacher {
@Id
......@@ -19,12 +21,18 @@ public class Teacher {
@Column(name = "degree")
private String degree;
@OneToOne
@JoinColumn(name = "course_id")
private Course course;
@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.MERGE)
@JoinColumn(name = "department_id",unique = true)
@ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.MERGE})
@JoinTable(
name = "teachersCourses",
joinColumns = {@JoinColumn(name = "teacher_id")},
inverseJoinColumns = {@JoinColumn(name = "course_id")}
)
@JsonIgnore
private List<Course> courseList;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "department_id")
@JsonIgnore
private Department department;
}
......@@ -26,7 +26,7 @@ public class User {
@Column(name = "user_email")
private String email;
@ElementCollection(fetch= FetchType.EAGER)
@ElementCollection(fetch = FetchType.EAGER)
@CollectionTable(
name = "roles",
joinColumns = @JoinColumn(name = "user_id")
......
......@@ -5,5 +5,5 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface CourseRepository extends JpaRepository<Course,Long> {
public interface CourseRepository extends JpaRepository<Course, Long> {
}
......@@ -5,6 +5,6 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface DepartmentRepository extends JpaRepository<Department,Long>{
public interface DepartmentRepository extends JpaRepository<Department, Long> {
public Department findByName(String departmentName);
}
......@@ -5,6 +5,6 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface StudentRepository extends JpaRepository<Student,Long> {
public interface StudentRepository extends JpaRepository<Student, Long> {
}
......@@ -5,5 +5,5 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface TeacherRepository extends JpaRepository<Teacher,Long> {
public interface TeacherRepository extends JpaRepository<Teacher, Long> {
}
......@@ -7,7 +7,7 @@ import org.springframework.stereotype.Repository;
import java.util.Optional;
@Repository
public interface UserRepository extends JpaRepository<User,Long> {
public interface UserRepository extends JpaRepository<User, Long> {
Optional<User> findUserByEmail(String email);
}
package com.school.project.security.basic;
package com.school.project.security;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -26,8 +26,8 @@ public class OAuth2ServerConfiguration {
private static InMemoryTokenStore tokenStore = new InMemoryTokenStore();
@Bean
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Configuration
......@@ -49,6 +49,7 @@ public class OAuth2ServerConfiguration {
.and()
.authorizeRequests()
.antMatchers("/department").fullyAuthenticated()
.antMatchers("/saveuser").permitAll()
.antMatchers("/home").authenticated();
}
}
......
package com.school.project.security.basic;
package com.school.project.security;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
......@@ -31,6 +31,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
http
.requestMatcher(new BasicRequestMatcher())
.authorizeRequests()
.antMatchers("/saveuser").permitAll()
.antMatchers("/oauth/token").authenticated()
.and()
.httpBasic()
......
package com.school.project.service.implementation;
import com.school.project.dto.CourseDTO;
import com.school.project.mapper.CourseMapper;
import com.school.project.model.Course;
import com.school.project.repository.CourseRepository;
import com.school.project.service.interfaces.CourseService;
......@@ -16,25 +18,44 @@ public class CourseServiceImp implements CourseService {
@Autowired(required = true)
public CourseRepository courseRepository;
@Autowired
public CourseMapper courseMapper;
@Override
public Course saveCourse(Course course) {
return courseRepository.save(course);
public CourseDTO saveCourse(CourseDTO courseDTO) {
return courseMapper.courseModelToDTO(
courseRepository.save(
courseMapper.courseDTOToModel(courseDTO)));
}
@Transactional
@Override
public List<Course> readAllCourse() {
return courseRepository.findAll();
public List<CourseDTO> readAllCourse() {
return courseMapper.courseModelToDTO(courseRepository.findAll());
}
@Override
public Optional<Course> readCourseById(Long id) {
return courseRepository.findById(id);
public CourseDTO readCourseById(Long id) {
return courseMapper.courseModelToDTO(courseRepository.findById(id).get());
}
@Override
public Course updateCourseById(Course course, Long id) {
return course;
public CourseDTO updateCourseById(CourseDTO courseDTO, Long id) {
CourseDTO dto = readCourseById(id);
if (courseDTO.getTitle() != null) {
dto.setTitle(courseDTO.getTitle());
}
if (courseDTO.getTeacherList() != null) {
dto.setTeacherList(courseDTO.getTeacherList());
}
if (courseDTO.getStudentList() != null) {
dto.setStudentList(courseDTO.getStudentList());
}
return courseMapper.courseModelToDTO(
courseRepository.save(
courseMapper.courseDTOToModel(dto)));
}
@Override
......
......@@ -11,7 +11,7 @@ import java.util.List;
@Service
public class DepartmentServiceImp implements DepartmentService {
@Autowired(required=true)
@Autowired(required = true)
private DepartmentRepository departmentRepository;
@Autowired(required = true)
private DepartmentMapper departmentMapper;
......@@ -28,9 +28,10 @@ public class DepartmentServiceImp implements DepartmentService {
return departmentMapper.departmentListModelToDTO(departmentRepository.findAll());
}
@Override
public DepartmentDTO readDepartmentById(Long departmentId) {
return departmentMapper.departmentModelToDTO(departmentRepository.findById(departmentId).get());
return departmentMapper.departmentModelToDTO(departmentRepository.findById(departmentId).get());
}
@Override
......@@ -43,10 +44,12 @@ public class DepartmentServiceImp implements DepartmentService {
return departmentMapper.departmentModelToDTO(departmentRepository.findById(departmentId).get());
}
@Override
public void deleteDepartmentById(Long departmentId) {
departmentRepository.deleteById(departmentId);
departmentRepository.deleteById(departmentId);
}
@Override
public DepartmentDTO findDepartmentByName(String departmentName) {
......
package com.school.project.service.implementation;
import com.school.project.model.Student;
import com.school.project.dto.StudentDTO;
import com.school.project.mapper.StudentMapper;
import com.school.project.repository.StudentRepository;
import com.school.project.service.interfaces.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@Service
public class StudentServiceImp implements StudentService {
@Autowired(required=true)
@Autowired(required = true)
public StudentRepository studentRepository;
@Autowired
public StudentMapper studentMapper;
@Override
public Student saveStudent(Student student) {
return studentRepository.save(student);
public StudentDTO saveStudent(StudentDTO studentDTO) {
return studentMapper.studentModelToDTO(
studentRepository.save(
studentMapper.studentDTOToModel(studentDTO)));
}
@Override
public List<Student> readAllStudents() {
return studentRepository.findAll();
public List<StudentDTO> readAllStudents() {
return studentMapper.studentModelToDTO(studentRepository.findAll());
}
@Override
public Optional<Student> readStudentById(Long id) {
return studentRepository.findById(id);
public StudentDTO readStudentById(Long id) {
return (studentMapper.studentModelToDTO(studentRepository.findById(id).get()));
}
@Override
public Student updateStudentById(Student student, Long id) {
return student;
public StudentDTO updateStudentById(StudentDTO studentDTO, Long id) {
StudentDTO dto = studentMapper.studentModelToDTO(studentRepository.findById(id).get());
if (studentDTO.getName() != null) {
dto.setName(studentDTO.getName());
}
if (studentDTO.getAge() != null) {
dto.setAge(studentDTO.getAge());
}
if (studentDTO.getCourseLists() != null) {
dto.setCourseLists(studentDTO.getCourseLists());
}
return studentMapper.studentModelToDTO(
studentRepository.save(
studentMapper.studentDTOToModel(dto)));
}
@Override
......
package com.school.project.service.implementation;
import com.school.project.dto.TeacherDTO;
import com.school.project.mapper.TeacherMapper;
import com.school.project.model.Teacher;
import com.school.project.repository.TeacherRepository;
import com.school.project.service.interfaces.TeacherService;
......@@ -13,26 +15,46 @@ import java.util.Optional;
public class TeacherServiceImp implements TeacherService {
@Autowired(required = true)
public TeacherRepository teacherRepository;
private TeacherRepository teacherRepository;
@Autowired
private TeacherMapper teacherMapper;
@Override
public Teacher saveTeacher(Teacher teacher) {
return teacherRepository.save(teacher);
public TeacherDTO saveTeacher(TeacherDTO teacherDTO) {
return teacherMapper.teacherModelToDTo(
teacherRepository.save(
teacherMapper.teacherDTOToModel(teacherDTO)));
}
@Override
public List<Teacher> readAllTeachers() {
return teacherRepository.findAll();
public List<TeacherDTO> readAllTeachers() {
return teacherMapper.teacherModelToDTo(teacherRepository.findAll());
}
@Override
public Optional<Teacher> readTeacherById(Long id) {
return teacherRepository.findById(id);
public TeacherDTO readTeacherById(Long id) {
return teacherMapper.teacherModelToDTo(teacherRepository.findById(id).get());
}
@Override
public Teacher updateTeacher(Teacher teacher, Long id) {
return null;
public TeacherDTO updateTeacher(TeacherDTO teacherDTO, Long id) {
TeacherDTO dto = readTeacherById(id);
if (teacherDTO.getName() != null) {
dto.setName(teacherDTO.getName());
}
if (teacherDTO.getDegree() != null) {
dto.setDegree(teacherDTO.getDegree());
}
if (teacherDTO.getCourseList() != null) {
dto.setCourseList(teacherDTO.getCourseList());
}
if (teacherDTO.getDepartment() != null) {
dto.setDepartment(teacherDTO.getDepartment());
}
return saveTeacher(dto);
}
@Override
......
......@@ -45,11 +45,11 @@ public class UserServiceImpl implements UserService, UserDetailsService {
Optional<User> userEmail = userRepository.findUserByEmail(email);
org.springframework.security.core.userdetails.User springUser=null;
org.springframework.security.core.userdetails.User springUser = null;
if(userEmail.isEmpty()){
throw new UsernameNotFoundException("User With Email=" + email + "Not Founnd");
}else{
if (userEmail.isEmpty()) {
throw new UsernameNotFoundException("User With Email=" + email + "Not Founnd");
} else {
User user = userEmail.get();
......@@ -57,14 +57,14 @@ public class UserServiceImpl implements UserService, UserDetailsService {
Set<GrantedAuthority> userAuthorities = new HashSet<>();
for (String userRole:userRoles){
for (String userRole : userRoles) {
userAuthorities.add(new SimpleGrantedAuthority(userRole));
}
springUser = new org.springframework.security.core.userdetails.User(
email,
user.getPassword(),
userAuthorities );
userAuthorities);
}
return springUser;
......
package com.school.project.service.interfaces;
import com.school.project.dto.CourseDTO;
import com.school.project.model.Course;
import java.util.List;
......@@ -7,13 +8,13 @@ import java.util.Optional;
public interface CourseService {
public Course saveCourse(Course course);
public CourseDTO saveCourse(CourseDTO courseDTO);
public List<Course> readAllCourse();
public List<CourseDTO> readAllCourse();
public Optional<Course> readCourseById(Long id);
public CourseDTO readCourseById(Long id);
public Course updateCourseById(Course course,Long id);
public CourseDTO updateCourseById(CourseDTO courseDTO, Long id);
public void deleteCourseById(Long id);
}
......@@ -6,10 +6,15 @@ import java.util.List;
public interface DepartmentService {
public DepartmentDTO saveDepartment(DepartmentDTO departmentDTO);
public List<DepartmentDTO> readDepartment();
public DepartmentDTO readDepartmentById(Long id);
public DepartmentDTO updateDepartment(DepartmentDTO departmentDTO,Long id);
public DepartmentDTO updateDepartment(DepartmentDTO departmentDTO, Long id);
public void deleteDepartmentById(Long id);
public DepartmentDTO findDepartmentByName(String departmentName);
}
package com.school.project.service.interfaces;
import com.school.project.dto.StudentDTO;
import com.school.project.model.Student;
import java.util.List;
import java.util.Optional;
public interface StudentService {
public Student saveStudent(Student student);
public StudentDTO saveStudent(StudentDTO studentDTO);
public List<Student> readAllStudents();
public List<StudentDTO> readAllStudents();
public Optional<Student> readStudentById(Long id);
public StudentDTO readStudentById(Long id);
public Student updateStudentById(Student student,Long id);
public StudentDTO updateStudentById(StudentDTO studentDTO, Long id);
public void deleteStudentById(Long id);
......
package com.school.project.service.interfaces;
import com.school.project.dto.TeacherDTO;
import com.school.project.model.Teacher;
import org.springframework.stereotype.Service;
......@@ -9,13 +10,13 @@ import java.util.Optional;
@Service
public interface TeacherService {
public Teacher saveTeacher(Teacher teacher);
public TeacherDTO saveTeacher(TeacherDTO teacherDTO);
public List<Teacher> readAllTeachers();
public List<TeacherDTO> readAllTeachers();
public Optional<Teacher> readTeacherById(Long id);
public TeacherDTO readTeacherById(Long id);
public Teacher updateTeacher(Teacher teacher,Long id);
public TeacherDTO updateTeacher(TeacherDTO teacherDTO, Long id);
public void deleteTeacherById(Long id);
......
#
#spring.jpa.hibernate.ddl-auto=update
#spring.datasource.url=jdbc:mysql://localhost:3306/schoolDataBase
#spring.datasource.username=root
#spring.datasource.password=charlie123
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://localhost:3306/schoolDataBase
spring.datasource.url=jdbc:mysql://localhost:3306/schooldataBase
spring.datasource.username=root
spring.datasource.password=charlie123
spring.datasource.password=root
spring.security.user.name= sulemantalpur6@gmail.com
spring.security.user.password=charlie
......
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