aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/traccar/notification/NotificationFormatter.java
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2021-02-27 13:02:34 -0800
committerAnton Tananaev <anton.tananaev@gmail.com>2021-02-27 13:02:34 -0800
commit1499b12fa782a57dbaef294ddd16ba61d2193cc7 (patch)
tree4717cccc2ac137e824ca8f5838d4c1093e731349 /src/main/java/org/traccar/notification/NotificationFormatter.java
parentb9117b29226dae6cf945c2dd961c91c29fcb5d8b (diff)
downloadtraccar-server-1499b12fa782a57dbaef294ddd16ba61d2193cc7.tar.gz
traccar-server-1499b12fa782a57dbaef294ddd16ba61d2193cc7.tar.bz2
traccar-server-1499b12fa782a57dbaef294ddd16ba61d2193cc7.zip
Implement password reset API
Diffstat (limited to 'src/main/java/org/traccar/notification/NotificationFormatter.java')
-rw-r--r--src/main/java/org/traccar/notification/NotificationFormatter.java61
1 files changed, 7 insertions, 54 deletions
diff --git a/src/main/java/org/traccar/notification/NotificationFormatter.java b/src/main/java/org/traccar/notification/NotificationFormatter.java
index 2f8100226..dabc75b8b 100644
--- a/src/main/java/org/traccar/notification/NotificationFormatter.java
+++ b/src/main/java/org/traccar/notification/NotificationFormatter.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2016 - 2018 Anton Tananaev (anton@traccar.org)
+ * Copyright 2016 - 2021 Anton Tananaev (anton@traccar.org)
* Copyright 2017 - 2018 Andrey Kunitsyn (andrey@traccar.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -16,18 +16,7 @@
*/
package org.traccar.notification;
-import java.io.StringWriter;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Paths;
-import java.util.Locale;
-
-import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
-import org.apache.velocity.exception.ResourceNotFoundException;
-import org.apache.velocity.tools.generic.DateTool;
-import org.apache.velocity.tools.generic.NumberTool;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.traccar.Context;
import org.traccar.model.Device;
import org.traccar.model.Event;
@@ -37,8 +26,6 @@ import org.traccar.reports.ReportUtils;
public final class NotificationFormatter {
- private static final Logger LOGGER = LoggerFactory.getLogger(NotificationFormatter.class);
-
private NotificationFormatter() {
}
@@ -47,8 +34,8 @@ public final class NotificationFormatter {
User user = Context.getPermissionsManager().getUser(userId);
Device device = Context.getIdentityManager().getById(event.getDeviceId());
- VelocityContext velocityContext = new VelocityContext();
- velocityContext.put("user", user);
+ VelocityContext velocityContext = TextTemplateFormatter.prepareContext(user);
+
velocityContext.put("device", device);
velocityContext.put("event", event);
if (position != null) {
@@ -67,52 +54,18 @@ public final class NotificationFormatter {
if (driverUniqueId != null) {
velocityContext.put("driver", Context.getDriversManager().getDriverByUniqueId(driverUniqueId));
}
- velocityContext.put("webUrl", Context.getVelocityEngine().getProperty("web.url"));
- velocityContext.put("dateTool", new DateTool());
- velocityContext.put("numberTool", new NumberTool());
- velocityContext.put("timezone", ReportUtils.getTimezone(userId));
- velocityContext.put("locale", Locale.getDefault());
- return velocityContext;
- }
-
- public static Template getTemplate(Event event, String path) {
- String templateFilePath;
- Template template;
-
- try {
- templateFilePath = Paths.get(path, event.getType() + ".vm").toString();
- template = Context.getVelocityEngine().getTemplate(templateFilePath, StandardCharsets.UTF_8.name());
- } catch (ResourceNotFoundException error) {
- LOGGER.warn("Notification template error", error);
- templateFilePath = Paths.get(path, "unknown.vm").toString();
- template = Context.getVelocityEngine().getTemplate(templateFilePath, StandardCharsets.UTF_8.name());
- }
- return template;
+ return velocityContext;
}
public static FullMessage formatFullMessage(long userId, Event event, Position position) {
VelocityContext velocityContext = prepareContext(userId, event, position);
- String formattedMessage = formatMessage(velocityContext, userId, event, position, "full");
-
- return new FullMessage((String) velocityContext.get("subject"), formattedMessage);
+ return TextTemplateFormatter.formatFullMessage(velocityContext, event.getType());
}
public static String formatShortMessage(long userId, Event event, Position position) {
- return formatMessage(null, userId, event, position, "short");
- }
-
- private static String formatMessage(VelocityContext vc, Long userId, Event event, Position position,
- String templatePath) {
-
- VelocityContext velocityContext = vc;
- if (velocityContext == null) {
- velocityContext = prepareContext(userId, event, position);
- }
- StringWriter writer = new StringWriter();
- getTemplate(event, templatePath).merge(velocityContext, writer);
-
- return writer.toString();
+ VelocityContext velocityContext = prepareContext(userId, event, position);
+ return TextTemplateFormatter.formatShortMessage(velocityContext, event.getType());
}
}