aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2015-04-27 15:24:31 +1200
committerAnton Tananaev <anton.tananaev@gmail.com>2015-04-27 15:24:31 +1200
commitf61e2b5c21c1df4da2c8aa77e4bf33589b4b49a6 (patch)
treea3cd68ec873e9d4e26340a845c73467dfce9e4f0
parentba9551ce3e4a3aade38d5f3b2ac7dee9d022a466 (diff)
downloadtraccar-server-f61e2b5c21c1df4da2c8aa77e4bf33589b4b49a6.tar.gz
traccar-server-f61e2b5c21c1df4da2c8aa77e4bf33589b4b49a6.tar.bz2
traccar-server-f61e2b5c21c1df4da2c8aa77e4bf33589b4b49a6.zip
Separate Servlet for devices
-rw-r--r--src/org/traccar/http/DeviceServlet.java76
-rw-r--r--src/org/traccar/http/MainServlet.java21
-rw-r--r--src/org/traccar/http/WebServer.java1
-rw-r--r--web/DeviceView.js2
4 files changed, 78 insertions, 22 deletions
diff --git a/src/org/traccar/http/DeviceServlet.java b/src/org/traccar/http/DeviceServlet.java
new file mode 100644
index 000000000..4f8f6961d
--- /dev/null
+++ b/src/org/traccar/http/DeviceServlet.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.traccar.http;
+
+import java.io.IOException;
+import java.sql.SQLException;
+import javax.json.Json;
+import javax.json.JsonObjectBuilder;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.traccar.Context;
+
+public class DeviceServlet extends HttpServlet {
+
+ private static final long ASYNC_TIMEOUT = 120000;
+
+ private static final String USER_ID = "userId";
+
+ @Override
+ protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+
+ String command = req.getPathInfo();
+
+ if (command.equals("/get")) {
+ get(req, resp);
+ } else if (command.equals("/add")) {
+ add(req, resp);
+ } else if (command.equals("/update")) {
+ update(req, resp);
+ } else if (command.equals("/remove")) {
+ remove(req, resp);
+ }
+ }
+
+ private void get(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+
+ long userId = (Long) req.getSession().getAttribute(USER_ID);
+
+ JsonObjectBuilder result = Json.createObjectBuilder();
+
+ try {
+ result.add("success", true);
+ result.add("data", Context.getDataManager().getDevices(userId));
+ } catch(SQLException error) {
+ result.add("success", false);
+ result.add("error", error.getMessage());
+ }
+
+ resp.getWriter().println(result.build().toString());
+ }
+
+ private void add(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ }
+
+ private void update(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ }
+
+ private void remove(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ }
+
+}
diff --git a/src/org/traccar/http/MainServlet.java b/src/org/traccar/http/MainServlet.java
index 74a3bb3d5..a3eae4e55 100644
--- a/src/org/traccar/http/MainServlet.java
+++ b/src/org/traccar/http/MainServlet.java
@@ -16,11 +16,9 @@
package org.traccar.http;
import java.io.IOException;
-import java.security.Permission;
import java.sql.SQLException;
import java.util.Collection;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import javax.json.Json;
@@ -53,8 +51,6 @@ public class MainServlet extends HttpServlet {
if (command.equals("/async")) {
async(req.startAsync());
- } else if (command.startsWith("/device")) {
- device(req, resp);
} else if (command.equals("/login")) {
login(req, resp);
} else if (command.equals("/logout")) {
@@ -212,23 +208,6 @@ public class MainServlet extends HttpServlet {
asyncSessions.get(userId).request(context);
}
}
-
- private void device(HttpServletRequest req, HttpServletResponse resp) throws IOException {
-
- long userId = (Long) req.getSession().getAttribute(USER_ID);
-
- JsonObjectBuilder result = Json.createObjectBuilder();
-
- try {
- result.add("success", true);
- result.add("data", Context.getDataManager().getDevices(userId));
- } catch(SQLException error) {
- result.add("success", false);
- result.add("error", error.getMessage());
- }
-
- resp.getWriter().println(result.build().toString());
- }
private void login(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
try {
diff --git a/src/org/traccar/http/WebServer.java b/src/org/traccar/http/WebServer.java
index 64dfdfbed..50ee60d04 100644
--- a/src/org/traccar/http/WebServer.java
+++ b/src/org/traccar/http/WebServer.java
@@ -51,6 +51,7 @@ public class WebServer {
ServletContextHandler servletHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
servletHandler.setContextPath("/api");
+ servletHandler.addServlet(new ServletHolder(new DeviceServlet()), "/device/*");
servletHandler.addServlet(new ServletHolder(new MainServlet()), "/*");
ResourceHandler resourceHandler = new ResourceHandler();
diff --git a/web/DeviceView.js b/web/DeviceView.js
index 0e1312e5d..4414b67ea 100644
--- a/web/DeviceView.js
+++ b/web/DeviceView.js
@@ -45,7 +45,7 @@ Ext.define('DeviceView', {
store: {
proxy: {
type: 'ajax',
- url: '/api/device',
+ url: '/api/device/get',
reader: {
type: 'json',
rootProperty: 'data'