Skip to content

Commit f765e5c

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

23 files changed

+584
-3
lines changed
Lines changed: 44 additions & 0 deletions
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+
}
Lines changed: 42 additions & 0 deletions
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+
}
Lines changed: 42 additions & 0 deletions
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+
}

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

Whitespace-only changes.

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

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 7 additions & 0 deletions
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+
}
Lines changed: 7 additions & 0 deletions
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+
}
Lines changed: 7 additions & 0 deletions
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+
}

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

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 65 additions & 0 deletions
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+
}

0 commit comments

Comments
 (0)