add api instansi and user management

This commit is contained in:
dirgantarasiahaan
2023-05-24 12:21:01 +07:00
parent 4c500b18f5
commit 62ccecb214
24 changed files with 683 additions and 71 deletions

View File

@ -0,0 +1,74 @@
package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.model.request.InstansiRequest;
import com.iconplus.smartproc.model.response.GetListInstansiResponse;
import com.iconplus.smartproc.model.response.InstansiResponse;
import com.iconplus.smartproc.service.instansi.*;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.*;
@CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true")
@RestController
@RequestMapping("/api/instansi")
public class InstansiController {
private final GetListInstansiService getListInstansiService;
private final PostCreateInstansiService postCreateInstansiService;
private final PutUpdateInstansiService putUpdateInstansiService;
private final GetInstansiByIdService getInstansiByIdService;
private final DeleteInstansiService deleteInstansiService;
public InstansiController(GetListInstansiService getListInstansiService,
PostCreateInstansiService postCreateInstansiService,
PutUpdateInstansiService putUpdateInstansiService,
GetInstansiByIdService getInstansiByIdService,
DeleteInstansiService deleteInstansiService) {
this.getListInstansiService = getListInstansiService;
this.postCreateInstansiService = postCreateInstansiService;
this.putUpdateInstansiService = putUpdateInstansiService;
this.getInstansiByIdService = getInstansiByIdService;
this.deleteInstansiService = deleteInstansiService;
}
@GetMapping
public GetListInstansiResponse getListInstansi(@RequestParam(name = "search", required = false) String search,
@RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "size", defaultValue = "5") Integer size){
Pageable pageable = PageRequest.of((page - 1), size);
InstansiRequest instansiRequest = InstansiRequest.builder()
.search(search)
.pageable(pageable)
.build();
return getListInstansiService.execute(instansiRequest);
}
@PostMapping
public InstansiResponse createInstansi(@RequestBody InstansiRequest request) {
return postCreateInstansiService.execute(request);
}
@GetMapping("/{id}")
public InstansiResponse getInstansiById(@PathVariable Long id) {
return getInstansiByIdService.execute(InstansiRequest.builder()
.id(id)
.build());
}
@PutMapping("/{id}")
public InstansiResponse updateInstansi(@PathVariable Long id, @RequestBody InstansiRequest request){
request.setId(id);
return putUpdateInstansiService.execute(request);
}
@DeleteMapping("/{id}")
public EmptyResponse deleteInstansi(@PathVariable Long id){
return deleteInstansiService.execute(InstansiRequest.builder()
.id(id)
.build());
}
}

View File

@ -1,33 +1,34 @@
package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.model.entity.Users;
import com.iconplus.smartproc.exception.ResourceNotFoundException;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.model.request.UsersRequest;
import com.iconplus.smartproc.model.response.GetRolesResponse;
import com.iconplus.smartproc.model.response.GetUsersResponse;
import com.iconplus.smartproc.repository.UsersRepository;
import com.iconplus.smartproc.service.manajemenuser.GetListUserService;
import org.springframework.beans.factory.annotation.Autowired;
import com.iconplus.smartproc.model.response.UsersResponse;
import com.iconplus.smartproc.service.manajemenuser.*;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true")
@RestController
@RequestMapping("/api/users")
public class UsersController {
@Autowired
private UsersRepository usersRepository;
private final GetListUserService getListUserService;
public UsersController(GetListUserService getListUserService) {
private final PostCreateUserService postCreateUserService;
private final PutUpdateUserService putUpdateUserService;
private final GetUserByIdService getUserByIdService;
private final DeleteUserService deleteUserService;
public UsersController(GetListUserService getListUserService,
PostCreateUserService postCreateUserService,
PutUpdateUserService putUpdateUserService,
GetUserByIdService getUserByIdService,
DeleteUserService deleteUserService) {
this.getListUserService = getListUserService;
this.postCreateUserService = postCreateUserService;
this.putUpdateUserService = putUpdateUserService;
this.getUserByIdService = getUserByIdService;
this.deleteUserService = deleteUserService;
}
@ -57,48 +58,28 @@ public class UsersController {
return getListUserService.execute(usersRequest);
}
// create
@PostMapping
public Users createUsers(@RequestBody Users users) {
return usersRepository.save(users);
public UsersResponse createUsers(@RequestBody UsersRequest request) {
return postCreateUserService.execute(request);
}
// get users by id rest api
@GetMapping("/{id}")
public ResponseEntity<Users> getUsersById(@PathVariable Long id) {
Users users = usersRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Users not exist with id :" + id));
return ResponseEntity.ok(users);
public UsersResponse getUsersById(@PathVariable Long id) {
return getUserByIdService.execute(UsersRequest.builder()
.id(id)
.build());
}
// update users rest api
@PutMapping("/{id}")
public ResponseEntity<Users> updateUsers(@PathVariable Long id, @RequestBody Users usersDetails){
Users users = usersRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Users not exist with id :" + id));
users.setUsername(usersDetails.getUsername());
users.setNama(usersDetails.getNama());
users.setEmail(usersDetails.getEmail());
users.setPassword(usersDetails.getPassword());
// users.setInstansi(usersDetails.getInstansi());
// users.setBidang(usersDetails.getBidang());
// users.setJabatan(usersDetails.getJabatan());
// users.setRole(usersDetails.getRole());
Users updatedUsers = usersRepository.save(users);
return ResponseEntity.ok(updatedUsers);
public UsersResponse updateUsers(@PathVariable Long id, @RequestBody UsersRequest request){
request.setId(id);
return putUpdateUserService.execute(request);
}
// delete users rest api
@DeleteMapping("/{id}")
public ResponseEntity<Map<String, Boolean>> deleteUsers(@PathVariable Long id){
Users users = usersRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Users not exist with id :" + id));
usersRepository.delete(users);
Map<String, Boolean> response = new HashMap<>();
response.put("deleted", Boolean.TRUE);
return ResponseEntity.ok(response);
public EmptyResponse deleteUsers(@PathVariable Long id){
return deleteUserService.execute(UsersRequest.builder()
.id(id)
.build());
}
}