Skip to content
Snippets Groups Projects
DepositServiceImpl.java 1 KiB
Newer Older
unknown's avatar
unknown committed
package ufrn.imd.service.impl;

import lombok.RequiredArgsConstructor;
unknown's avatar
unknown committed
import lombok.extern.java.Log;
unknown's avatar
unknown committed
import ufrn.imd.domain.Account;
import ufrn.imd.domain.Client;
import ufrn.imd.repository.Repository;
import ufrn.imd.service.Service;
unknown's avatar
unknown committed

import java.rmi.RemoteException;
import java.util.Optional;

unknown's avatar
unknown committed
@Log
@RequiredArgsConstructor
public class DepositServiceImpl implements Service {
unknown's avatar
unknown committed


    private final Repository<Client> repository;

    public void deposit(Double value, Optional<Client> clientOptional) throws RemoteException, RuntimeException {
        Client user = clientOptional
                .orElseThrow(() -> new RuntimeException("Null User!"));
        Client client = repository.find(user.getId())
                .orElseThrow(() -> new RuntimeException("Invalid user!"));
        Account account = client.getAccount();
        account.setBalance(account.getBalance() + value);
        log.info(String.format("Deposit concluded!"));
        log.info(String.format("Total: %.2f", account.getBalance()));
unknown's avatar
unknown committed
    }

}