@RequestResponse
	/**
	 * Processes a vote, effectively saving it in the persistent storage
	 * if the userId + passwordHash matches, and the ballot is valid
	 * @param valueEncryptedBallot The vote to process, as a value from Jolie
	 * @return true if the vote is registered, otherwise false
	 */
	public Boolean processVote(Value encryptedBallot) {
		if (!electionIsRunning()) {
			throw new ElectionNotStartedException();
		}
		Ballot ballot = new EncryptedBallot(encryptedBallot).getBallot();

		String userId = ballot.getUserId();
		byte[][] encryptedVote = ballot.getVote();

		Model.persistVote(userId, encryptedVote);

		return Boolean.TRUE;
	}