Skip to content

Commit f765e5c

Browse files
committed
Create Rest APIs
1 parent 8cde4fa commit f765e5c

23 files changed

+584
-3
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.accenture.codingtest.springbootcodingtest.controller;
2+
3+
import java.util.List;
4+
5+
import com.accenture.codingtest.springbootcodingtest.entity.Project;
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.http.ResponseEntity;
8+
import org.springframework.web.bind.annotation.*;
9+
10+
import com.accenture.codingtest.springbootcodingtest.entity.Project;
11+
import com.accenture.codingtest.springbootcodingtest.service.ProjectService;
12+
13+
@RestController
14+
@RequestMapping("/api")
15+
public class ProjectController {
16+
@Autowired
17+
private ProjectService projectService;
18+
19+
@GetMapping("/v1/projects")
20+
public ResponseEntity<List<Project>> getAllProjects() {
21+
return projectService.getAllProjects();
22+
}
23+
24+
@PostMapping("/v1/projects")
25+
public ResponseEntity<Project> saveProject(@RequestBody Project project) {
26+
return projectService.saveProject(project);
27+
}
28+
29+
@GetMapping("/v1/projects/{project_id}")
30+
public ResponseEntity<Project> getProjectById(@PathVariable("project_id") String project_id) {
31+
return projectService.getProjectById(project_id);
32+
}
33+
34+
@PutMapping("/v1/projects")
35+
public ResponseEntity<Project> updateProject(@RequestBody Project project) {
36+
return projectService.updateProject(project);
37+
}
38+
39+
@DeleteMapping("/v1/projects/{project_id}")
40+
public ResponseEntity<Void> deleteProjectById(@PathVariable("project_id") String project_id) {
41+
return projectService.deleteProject(project_id);
42+
}
43+
44+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.accenture.codingtest.springbootcodingtest.controller;
2+
3+
import java.util.List;
4+
5+
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.http.ResponseEntity;
7+
import org.springframework.web.bind.annotation.*;
8+
9+
import com.accenture.codingtest.springbootcodingtest.entity.Task;
10+
import com.accenture.codingtest.springbootcodingtest.service.TaskService;
11+
12+
@RestController
13+
@RequestMapping("/api")
14+
public class TaskController {
15+
@Autowired
16+
private TaskService taskService;
17+
18+
@GetMapping("/v1/tasks")
19+
public ResponseEntity<List<Task>> getAllTasks() {
20+
return taskService.getAllTasks();
21+
}
22+
23+
@PostMapping("/v1/tasks")
24+
public ResponseEntity<Task> saveTask(@RequestBody Task task) {
25+
return taskService.saveTask(task);
26+
}
27+
28+
@GetMapping("/v1/tasks/{task_id}")
29+
public ResponseEntity<Task> getTaskById(@PathVariable("task_id") String task_id) {
30+
return taskService.getTaskById(task_id);
31+
}
32+
33+
@PutMapping("/v1/tasks")
34+
public ResponseEntity<Task> updateTask(@RequestBody Task task) {
35+
return taskService.updateTask(task);
36+
}
37+
38+
@DeleteMapping("/v1/tasks/{task_id}")
39+
public ResponseEntity<Void> deleteTaskById(@PathVariable("task_id") String task_id) {
40+
return taskService.deleteTask(task_id);
41+
}
42+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.accenture.codingtest.springbootcodingtest.controller;
2+
3+
import com.accenture.codingtest.springbootcodingtest.entity.User;
4+
import com.accenture.codingtest.springbootcodingtest.service.UserService;
5+
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.http.ResponseEntity;
7+
import org.springframework.web.bind.annotation.*;
8+
9+
import java.util.List;
10+
11+
@RestController
12+
@RequestMapping("/api")
13+
public class UserController {
14+
15+
@Autowired
16+
private UserService userService;
17+
18+
@GetMapping("/v1/users")
19+
public ResponseEntity<List<User>> getAllUsers() {
20+
return userService.getAllUsers();
21+
}
22+
23+
@GetMapping("/v1/users/{user_id}")
24+
public ResponseEntity<User> getUserById(@PathVariable("user_id") String user_id) {
25+
return userService.getUserById(user_id);
26+
}
27+
28+
@PostMapping("/v1/users")
29+
public ResponseEntity<User> saveUser(@RequestBody User user) {
30+
return userService.saveUser(user);
31+
}
32+
33+
@PutMapping("/v1/users")
34+
public ResponseEntity<User> updateUser(@RequestBody User user) {
35+
return userService.updateUser(user);
36+
}
37+
38+
@DeleteMapping("/v1/users/{user_id}")
39+
public ResponseEntity<Void> deleteUserById(@PathVariable("user_id") String user_id) {
40+
return userService.deleteUser(user_id);
41+
}
42+
}

Diff for: src/main/java/com/accenture/codingtest/springbootcodingtest/controller/package-info.java

Whitespace-only changes.

Diff for: src/main/java/com/accenture/codingtest/springbootcodingtest/entity/package-info.java

-1
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.accenture.codingtest.springbootcodingtest.repository;
2+
3+
import com.accenture.codingtest.springbootcodingtest.entity.Project;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
6+
public interface ProjectRepository extends JpaRepository<Project, String> {
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.accenture.codingtest.springbootcodingtest.repository;
2+
3+
import com.accenture.codingtest.springbootcodingtest.entity.Task;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
6+
public interface TaskRepository extends JpaRepository<Task, String> {
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.accenture.codingtest.springbootcodingtest.repository;
2+
3+
import com.accenture.codingtest.springbootcodingtest.entity.User;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
6+
public interface UserRepository extends JpaRepository<User, String> {
7+
}

Diff for: src/main/java/com/accenture/codingtest/springbootcodingtest/repository/package-info.java

-1
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package com.accenture.codingtest.springbootcodingtest.service;
2+
3+
import java.util.List;
4+
import java.util.Optional;
5+
6+
import com.accenture.codingtest.springbootcodingtest.entity.Project;
7+
import org.springframework.beans.factory.annotation.Autowired;
8+
import org.springframework.http.HttpStatus;
9+
import org.springframework.http.ResponseEntity;
10+
import org.springframework.stereotype.Service;
11+
import com.accenture.codingtest.springbootcodingtest.repository.ProjectRepository;
12+
13+
@Service
14+
public class ProjectService {
15+
@Autowired
16+
private ProjectRepository projectRepository;
17+
18+
public ResponseEntity<Project> saveProject(Project project) {
19+
ResponseEntity<Project> response = null;
20+
if (project != null) {
21+
response = new ResponseEntity<>(projectRepository.save(project), HttpStatus.OK);
22+
} else {
23+
response = new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
24+
}
25+
return response;
26+
}
27+
public ResponseEntity<List<Project>> getAllProjects() {
28+
return new ResponseEntity<>(projectRepository.findAll(), HttpStatus.OK);
29+
}
30+
31+
public ResponseEntity<Project> getProjectById(String id) {
32+
return new ResponseEntity<>(projectRepository.findById(id).get(), HttpStatus.OK);
33+
}
34+
35+
public ResponseEntity<Project> updateProject(Project project) {
36+
ResponseEntity<Project> updatedProject = null;
37+
String id = project.getId();
38+
Optional<Project> oldProjectOp = projectRepository.findById(id);
39+
40+
if(oldProjectOp.isPresent()) {
41+
Project oldProject = oldProjectOp.get();
42+
43+
oldProject.setName(project.getName());
44+
// oldProject.setProject_id(project.getProject_id());
45+
46+
updatedProject = new ResponseEntity<>(projectRepository.save(oldProject), HttpStatus.OK);
47+
} else {
48+
updatedProject = new ResponseEntity<>(HttpStatus.NOT_FOUND);
49+
}
50+
51+
return updatedProject;
52+
}
53+
54+
public ResponseEntity<Void> deleteProject(String id) {
55+
ResponseEntity<Void> response = null;
56+
if (projectRepository.existsById(id)) {
57+
projectRepository.deleteById(id);
58+
response = new ResponseEntity<>(HttpStatus.OK);
59+
} else {
60+
response = new ResponseEntity<>(HttpStatus.NOT_FOUND);
61+
}
62+
return response;
63+
}
64+
65+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package com.accenture.codingtest.springbootcodingtest.service;
2+
3+
import com.accenture.codingtest.springbootcodingtest.entity.Task;
4+
import com.accenture.codingtest.springbootcodingtest.repository.TaskRepository;
5+
6+
import java.util.List;
7+
import java.util.Optional;
8+
9+
import org.springframework.beans.factory.annotation.Autowired;
10+
import org.springframework.http.HttpStatus;
11+
import org.springframework.http.ResponseEntity;
12+
import org.springframework.stereotype.Service;
13+
14+
@Service
15+
public class TaskService {
16+
17+
@Autowired
18+
private TaskRepository taskRepository;
19+
20+
public ResponseEntity<Task> saveTask(Task task) {
21+
ResponseEntity<Task> response = null;
22+
if (task != null) {
23+
response = new ResponseEntity<>(taskRepository.save(task), HttpStatus.OK);
24+
} else {
25+
response = new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
26+
}
27+
return response;
28+
}
29+
public ResponseEntity<List<Task>> getAllTasks() {
30+
return new ResponseEntity<>(taskRepository.findAll(), HttpStatus.OK);
31+
}
32+
33+
public ResponseEntity<Task> getTaskById(String id) {
34+
return new ResponseEntity<>(taskRepository.findById(id).get(), HttpStatus.OK);
35+
}
36+
37+
public ResponseEntity<Task> updateTask(Task task) {
38+
ResponseEntity<Task> updatedTask = null;
39+
String id = task.getId();
40+
Optional<Task> oldTaskOp = taskRepository.findById(id);
41+
42+
if(oldTaskOp.isPresent()) {
43+
Task oldTask = oldTaskOp.get();
44+
45+
oldTask.setDescription(task.getDescription());
46+
oldTask.setTitle(task.getTitle());
47+
oldTask.setStatus(task.getStatus());
48+
oldTask.setUser_id(task.getUser_id());
49+
// oldTask.setProject_id(task.getProject_id());
50+
51+
updatedTask = new ResponseEntity<>(taskRepository.save(oldTask), HttpStatus.OK);
52+
} else {
53+
updatedTask = new ResponseEntity<>(HttpStatus.NOT_FOUND);
54+
}
55+
56+
return updatedTask;
57+
}
58+
59+
public ResponseEntity<Void> deleteTask(String id) {
60+
ResponseEntity<Void> response = null;
61+
if (taskRepository.existsById(id)) {
62+
taskRepository.deleteById(id);
63+
response = new ResponseEntity<>(HttpStatus.OK);
64+
} else {
65+
response = new ResponseEntity<>(HttpStatus.NOT_FOUND);
66+
}
67+
return response;
68+
}
69+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package com.accenture.codingtest.springbootcodingtest.service;
2+
3+
import com.accenture.codingtest.springbootcodingtest.entity.User;
4+
import com.accenture.codingtest.springbootcodingtest.repository.UserRepository;
5+
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.http.HttpStatus;
7+
import org.springframework.http.ResponseEntity;
8+
import org.springframework.stereotype.Service;
9+
10+
import java.util.List;
11+
import java.util.Optional;
12+
13+
@Service
14+
public class UserService {
15+
16+
@Autowired
17+
private UserRepository userRepository;
18+
19+
public ResponseEntity<User> saveUser(User user) {
20+
ResponseEntity<User> response = null;
21+
if (user != null) {
22+
response = new ResponseEntity<>(userRepository.save(user), HttpStatus.OK);
23+
} else {
24+
response = new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
25+
}
26+
return response;
27+
}
28+
29+
30+
public ResponseEntity<List<User>> getAllUsers() {
31+
return new ResponseEntity<>(userRepository.findAll(), HttpStatus.OK);
32+
}
33+
34+
public ResponseEntity<User> getUserById(String id) {
35+
return new ResponseEntity<>(userRepository.findById(id).get(), HttpStatus.OK);
36+
}
37+
38+
public ResponseEntity<User> updateUser(User user) {
39+
ResponseEntity<User> updatedUser = null;
40+
String id = user.getId();
41+
Optional<User> oldUserOp = userRepository.findById(id);
42+
43+
if(oldUserOp.isPresent()) {
44+
User oldUser = oldUserOp.get();
45+
46+
oldUser.setUsername(user.getUsername());
47+
oldUser.setPassword(user.getPassword());
48+
49+
updatedUser = new ResponseEntity<>(userRepository.save(oldUser), HttpStatus.OK);
50+
} else {
51+
updatedUser = new ResponseEntity<>(HttpStatus.NOT_FOUND);
52+
}
53+
54+
return updatedUser;
55+
}
56+
57+
public ResponseEntity<Void> deleteUser(String id) {
58+
ResponseEntity<Void> response = null;
59+
if (userRepository.existsById(id)) {
60+
userRepository.deleteById(id);
61+
response = new ResponseEntity<>(HttpStatus.OK);
62+
} else {
63+
response = new ResponseEntity<>(HttpStatus.NOT_FOUND);
64+
}
65+
return response;
66+
}
67+
}

Diff for: src/main/java/com/accenture/codingtest/springbootcodingtest/service/package-info.java

-1
This file was deleted.

Diff for: src/main/resources/application.properties

+9
Original file line numberDiff line numberDiff line change
@@ -1 +1,10 @@
1+
spring.datasource.url=jdbc:mysql://localhost/accenture
2+
spring.datasource.driverClassName=com.mysql.jdbc.Driver
3+
spring.datasource.username=root
4+
spring.datasource.password=12345Welcome
15

6+
7+
8+
spring.jpa.show-sql=true
9+
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
10+
spring.jpa.hibernate.ddl-auto= update

Diff for: src/main/resources/template/create_project.html

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="ISO-8859-1">
5+
<title>Insert title here</title>
6+
</head>
7+
<body>
8+
9+
</body>
10+
</html>

0 commit comments

Comments
 (0)