protected int addSpToPurposeAssociation(int receiptToSPAssocId, ReceiptPurposeInput receiptPurposeInput) throws
ConsentManagementServerException {
int spToPurposeAssocId;
JdbcTemplate jdbcTemplate = JdbcUtils.getNewTemplate();
try {
spToPurposeAssocId = jdbcTemplate.withTransaction(template -> template.executeInsert(INSERT_SP_TO_PURPOSE_ASSOC_SQL, (preparedStatement -> {
preparedStatement.setInt(1, receiptToSPAssocId);
preparedStatement.setInt(2, receiptPurposeInput.getPurposeId());
preparedStatement.setString(3, receiptPurposeInput.getConsentType());
preparedStatement.setInt(4, receiptPurposeInput.isPrimaryPurpose() ? 1 : 0);
preparedStatement.setString(5, receiptPurposeInput.getTermination());
preparedStatement.setInt(6, receiptPurposeInput.isThirdPartyDisclosure() ? 1 : 0);
preparedStatement.setString(7, receiptPurposeInput.getThirdPartyName());
}), receiptPurposeInput, true));
} catch (TransactionException e) {
throw ConsentUtils.handleServerException(ErrorMessages.ERROR_CODE_ADD_SP_TO_PURPOSE_ASSOC,
String.valueOf(receiptPurposeInput.getPurposeName()), e);
}
return spToPurposeAssocId;
}