104 lines
3.8 KiB
Java
104 lines
3.8 KiB
Java
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.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 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) {
|
|
this.getListUserService = getListUserService;
|
|
}
|
|
|
|
|
|
@GetMapping
|
|
public GetUsersResponse getUsers(@RequestParam(name = "search", required = false) String search,
|
|
@RequestParam(name = "instansi", required = false) String instansi,
|
|
@RequestParam(name = "bidang", required = false) String bidang,
|
|
@RequestParam(name = "nama", required = false) String nama,
|
|
@RequestParam(name = "jabatan", required = false) String jabatan,
|
|
@RequestParam(name = "role", required = false) String role,
|
|
@RequestParam(name = "email", required = false) String email,
|
|
@RequestParam(name = "page", defaultValue = "1") Integer page,
|
|
@RequestParam(name = "size", defaultValue = "5") Integer size){
|
|
|
|
Pageable pageable = PageRequest.of((page - 1), size);
|
|
UsersRequest usersRequest = UsersRequest.builder()
|
|
.search(search)
|
|
.instansi(instansi)
|
|
.bidang(bidang)
|
|
.nama(nama)
|
|
.jabatan(jabatan)
|
|
.role(role)
|
|
.email(email)
|
|
.pageable(pageable)
|
|
.build();
|
|
|
|
return getListUserService.execute(usersRequest);
|
|
}
|
|
|
|
// create
|
|
@PostMapping
|
|
public Users createUsers(@RequestBody Users users) {
|
|
return usersRepository.save(users);
|
|
}
|
|
|
|
// 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);
|
|
}
|
|
|
|
// 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);
|
|
}
|
|
|
|
// 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);
|
|
}
|
|
} |