From fce750a3c6c81a26b8337aacee943042eaaf2fd9 Mon Sep 17 00:00:00 2001
From: Daniel Gerhardt <code@dgerhardt.net>
Date: Tue, 20 Dec 2016 14:21:45 +0100
Subject: [PATCH] Add additonal log methods for simplified use

---
 .../java/de/thm/arsnova/dao/CouchDBDao.java     | 17 +++++++++++++++++
 .../java/de/thm/arsnova/dao/IDatabaseDao.java   | 15 +++++++++++++++
 .../de/thm/arsnova/dao/StubDatabaseDao.java     | 10 ++++++++++
 3 files changed, 42 insertions(+)

diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
index 36fb5955..aac410aa 100644
--- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
+++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
@@ -157,6 +157,23 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware
 		log(event, payload, LogEntry.LogLevel.INFO);
 	}
 
+	@Override
+	public void log(String event, LogEntry.LogLevel level, Object... rawPayload) {
+		if (rawPayload.length % 2 != 0) {
+			throw new IllegalArgumentException("");
+		}
+		Map<String, Object> payload = new HashMap<>();
+		for (int i = 0; i < rawPayload.length; i += 2) {
+			payload.put((String) rawPayload[i], rawPayload[i + 1]);
+		}
+		log(event, payload, LogEntry.LogLevel.INFO);
+	}
+
+	@Override
+	public void log(String event, Object... rawPayload) {
+		log(event, LogEntry.LogLevel.INFO, rawPayload);
+	}
+
 	@Override
 	public List<Session> getMySessions(final User user, final int start, final int limit) {
 		return this.getDatabaseDao().getSessionsForUsername(user.getUsername(), start, limit);
diff --git a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
index 9b56e6f8..7b4955bb 100644
--- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
+++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
@@ -44,6 +44,21 @@ public interface IDatabaseDao {
 	 */
 	void log(String event, Map<String, Object> payload);
 
+	/**
+	 *
+	 * @param event type of the event
+	 * @param level severity of the event
+	 * @param rawPayload key/value pairs of arbitrary logging data
+	 */
+	void log(String event, LogEntry.LogLevel level, Object... rawPayload);
+
+	/**
+	 *
+	 * @param event type of the event
+	 * @param rawPayload key/value pairs of arbitrary logging data
+	 */
+	void log(String event, Object... rawPayload);
+
 	Session getSessionFromKeyword(String keyword);
 
 	List<Session> getMySessions(User user, final int start, final int limit);
diff --git a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
index d8d27a62..baa0942e 100644
--- a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
+++ b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
@@ -117,6 +117,16 @@ public class StubDatabaseDao implements IDatabaseDao {
 		// TODO Auto-generated method stub
 	}
 
+	@Override
+	public void log(String event, LogEntry.LogLevel level, Object... rawPayload) {
+		// TODO Auto-generated method stub
+	}
+
+	@Override
+	public void log(String event, Object... rawPayload) {
+		// TODO Auto-generated method stub
+	}
+
 	@Override
 	public Session getSessionFromKeyword(String keyword) {
 		return stubSessions.get(keyword);
-- 
GitLab