AccountService.java
package mirante.api.account;
import java.util.Optional;
import java.util.UUID;
import jakarta.inject.Inject;
import org.springframework.stereotype.Service;
@Service("accountService")
public class AccountService {
@Inject
AccountRepository accountRepository;
public Optional<String> login(String registration, String password) {
Account account = accountRepository.getReferenceById(registration);
if (account.checkPassword(password)) {
String token = UUID.randomUUID().toString();
account.setToken(token);
accountRepository.save(account);
return Optional.of(token);
}
return Optional.empty();
}
public Optional<Account> findByToken(String token) {
Optional<Account> accountOpt =
Optional.of(accountRepository.findByToken(token));
return Optional.of(accountOpt.orElseThrow());
}
}