package org.dicadeveloper.weplantaforest.admin.code;
import org.dicadeveloper.weplantaforest.common.code.CodeHelper;
import org.dicadeveloper.weplantaforest.common.errorHandling.ErrorCodes;
import org.dicadeveloper.weplantaforest.common.errorHandling.IpatException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class CodeService {
@Autowired
CodeRepository _codeRepository;
public Code generateCode() throws IpatException{
Code code = new Code();
// save code or try generate a new one
boolean codeSaved = false;
while (!codeSaved) {
final String codeString = CodeHelper.generateCodeString();
if (null == _codeRepository.findByCode(codeString)) {
code.setCode(codeString);
codeSaved = true;
return _codeRepository.save(code);
}
}
throw new IpatException(ErrorCodes.COULD_NOT_GENERATE_CODE);
}
public boolean isValid(final String code) {
if (CodeHelper.isValid(code)) {
return _codeRepository.findByCode(code) != null;
} else {
return false;
}
}
}