Teten Nugraha
Backendhabit

Backendhabit

Membuat REST Api sederhana dengan Spring Boot Part. II — User Service

Membuat REST Api sederhana dengan Spring Boot Part. II — User Service

Daftar Isi

Photo by [Magnus Engø](https://cdn.hashnode.com/res/hashnode/image/upload/v1629972837651/WKFPCUZkq.html) on [Unsplash](https://unsplash.com?utm_source=medium&utm_medium=referral)Photo by Magnus Engø on Unsplash

Membuat Service Layer — User Service

Service Layer adalah Layer dimana kita menyimpan Logic dari sebuah aplikasi seperti memanipulasi data, memfilter dan lain-lain dan biasanya menggunakan anotasi @Service dalam UserService ini kita mempunyai dependensi ke UserRepository karena dalam service ini hanya melakukan createUser, updateUser, findAllUsers, findUserById dan deleteUserById.

@Service
**public class **UserService {

    **private final **UserRepository **userRepository**;

    @Autowired
    **public **UserService(UserRepository userRepository) {
        **this**.**userRepository **= userRepository;
    }

    // TODO 
}

buat sebuah method createUser untuk menyimpan data user yang baru.

**public **User createUser(User user) {
    Optional<User> userOptional = **userRepository**.findByEmail(user.getEmail());
    **if**(userOptional.isPresent()) {
        **throw new **UserRegistrationException(**"User with email "**+ user.getEmail()+**" already exists"**);
    }

    **return userRepository**.save(user);
}

dalam method ini, sebelum nya dilakukan pengecekan data inputan, apakah email nya sudah terdaftar atau belum, jika ada maka lemparkan UserRegistrationException (yang akan dibahas di artikel selanjutnya). dan jika tidak ada, maka lakukan proses penyimpanan.

Dan lanjutkan method di bawah ini, karena tidak ada logic disini maka saya tidak menambahkan penjelasan detail nya

**public **User updateUser(User user) {
    **return userRepository**.save(user);
}

**public **List<User> findAllUsers() {
    **return userRepository**.findAll();
}

**public **Optional<User> findUserById(Long id) {
    **return userRepository**.findById(id);
}

**public void **deleteUserById(Long id) {
    **userRepository**.deleteById(id);
}

Untuk code lengkap nya, teman-teman bisa clone dari repo saya di https://github.com/teten777/spring-boot-rest-api

 
Share this