From 9dd22617c1b066195baca5b6e6ae141c54493107 Mon Sep 17 00:00:00 2001 From: Renaud Allard Date: Mon, 17 Oct 2016 09:55:53 +0200 Subject: Add a static filter. This will filter positions with speed = 0.0 --- src/org/traccar/FilterHandler.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/org/traccar/FilterHandler.java b/src/org/traccar/FilterHandler.java index 5315bad9e..b6917cbfb 100644 --- a/src/org/traccar/FilterHandler.java +++ b/src/org/traccar/FilterHandler.java @@ -28,12 +28,13 @@ public class FilterHandler extends BaseDataHandler { private final boolean filterDuplicate; private final boolean filterFuture; private final boolean filterApproximate; + private final boolean filterStatic; private final int filterDistance; private final long filterLimit; public FilterHandler( boolean filterInvalid, boolean filterZero, boolean filterDuplicate, boolean filterFuture, - boolean filterApproximate, int filterDistance, long filterLimit) { + boolean filterApproximate, boolean filterStatic, int filterDistance, long filterLimit) { this.filterInvalid = filterInvalid; this.filterZero = filterZero; @@ -41,6 +42,7 @@ public class FilterHandler extends BaseDataHandler { this.filterDistance = filterDistance; this.filterFuture = filterFuture; this.filterApproximate = filterApproximate; + this.filterStatic = filterStatic; this.filterLimit = filterLimit; } @@ -52,6 +54,7 @@ public class FilterHandler extends BaseDataHandler { filterDuplicate = config.getBoolean("filter.duplicate"); filterFuture = config.getBoolean("filter.future"); filterApproximate = config.getBoolean("filter.approximate"); + filterStatic = config.getBoolean("filter.static"); filterDistance = config.getInteger("filter.distance"); filterLimit = config.getLong("filter.limit") * 1000; } @@ -93,6 +96,10 @@ public class FilterHandler extends BaseDataHandler { return filterApproximate && approximate != null && approximate; } + private boolean filterStatic(Position position) { + return filterStatic && position.getSpeed() == 0.0; + } + private boolean filterDistance(Position position) { if (filterDistance != 0) { Position last = getLastPosition(position.getDeviceId()); @@ -125,7 +132,8 @@ public class FilterHandler extends BaseDataHandler { private boolean filter(Position p) { boolean result = filterInvalid(p) || filterZero(p) || filterDuplicate(p) - || filterFuture(p) || filterApproximate(p) || filterDistance(p); + || filterFuture(p) || filterApproximate(p) || filterStatic(p) + || filterDistance(p); if (filterLimit(p)) { result = false; -- cgit v1.2.3 From 7e2698ea6d1933030cd7e7a2fb33e3c984166f78 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Mon, 17 Oct 2016 22:04:02 +1300 Subject: Fix style problem with filter handler --- src/org/traccar/FilterHandler.java | 65 +++++++++++++++++++++------------ test/org/traccar/FilterHandlerTest.java | 12 +++++- 2 files changed, 52 insertions(+), 25 deletions(-) diff --git a/src/org/traccar/FilterHandler.java b/src/org/traccar/FilterHandler.java index b6917cbfb..1ce9e2460 100644 --- a/src/org/traccar/FilterHandler.java +++ b/src/org/traccar/FilterHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 Anton Tananaev (anton.tananaev@gmail.com) + * Copyright 2014 - 2016 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. @@ -23,40 +23,59 @@ public class FilterHandler extends BaseDataHandler { private static final long FILTER_FUTURE_LIMIT = 5 * 60 * 1000; - private final boolean filterInvalid; - private final boolean filterZero; - private final boolean filterDuplicate; - private final boolean filterFuture; - private final boolean filterApproximate; - private final boolean filterStatic; - private final int filterDistance; - private final long filterLimit; - - public FilterHandler( - boolean filterInvalid, boolean filterZero, boolean filterDuplicate, boolean filterFuture, - boolean filterApproximate, boolean filterStatic, int filterDistance, long filterLimit) { + private boolean filterInvalid; + private boolean filterZero; + private boolean filterDuplicate; + private boolean filterFuture; + private boolean filterApproximate; + private boolean filterStatic; + private int filterDistance; + private long filterLimit; + public void setFilterInvalid(boolean filterInvalid) { this.filterInvalid = filterInvalid; + } + + public void setFilterZero(boolean filterZero) { this.filterZero = filterZero; + } + + public void setFilterDuplicate(boolean filterDuplicate) { this.filterDuplicate = filterDuplicate; - this.filterDistance = filterDistance; + } + + public void setFilterFuture(boolean filterFuture) { this.filterFuture = filterFuture; + } + + public void setFilterApproximate(boolean filterApproximate) { this.filterApproximate = filterApproximate; + } + + public void setFilterStatic(boolean filterStatic) { this.filterStatic = filterStatic; + } + + public void setFilterDistance(int filterDistance) { + this.filterDistance = filterDistance; + } + + public void setFilterLimit(long filterLimit) { this.filterLimit = filterLimit; } public FilterHandler() { Config config = Context.getConfig(); - - filterInvalid = config.getBoolean("filter.invalid"); - filterZero = config.getBoolean("filter.zero"); - filterDuplicate = config.getBoolean("filter.duplicate"); - filterFuture = config.getBoolean("filter.future"); - filterApproximate = config.getBoolean("filter.approximate"); - filterStatic = config.getBoolean("filter.static"); - filterDistance = config.getInteger("filter.distance"); - filterLimit = config.getLong("filter.limit") * 1000; + if (config != null) { + filterInvalid = config.getBoolean("filter.invalid"); + filterZero = config.getBoolean("filter.zero"); + filterDuplicate = config.getBoolean("filter.duplicate"); + filterFuture = config.getBoolean("filter.future"); + filterApproximate = config.getBoolean("filter.approximate"); + filterStatic = config.getBoolean("filter.static"); + filterDistance = config.getInteger("filter.distance"); + filterLimit = config.getLong("filter.limit") * 1000; + } } private Position getLastPosition(long deviceId) { diff --git a/test/org/traccar/FilterHandlerTest.java b/test/org/traccar/FilterHandlerTest.java index b1e4fcb16..bb7e69dc0 100644 --- a/test/org/traccar/FilterHandlerTest.java +++ b/test/org/traccar/FilterHandlerTest.java @@ -15,8 +15,16 @@ public class FilterHandlerTest { @Before public void setUp() { - filtingHandler = new FilterHandler(true, true, true, true, true, 10, 10); - passingHandler = new FilterHandler(false, false, false, false, false, 0, 0); + passingHandler = new FilterHandler(); + filtingHandler = new FilterHandler(); + filtingHandler.setFilterInvalid(true); + filtingHandler.setFilterZero(true); + filtingHandler.setFilterDuplicate(true); + filtingHandler.setFilterFuture(true); + filtingHandler.setFilterApproximate(true); + filtingHandler.setFilterStatic(true); + filtingHandler.setFilterDistance(10); + filtingHandler.setFilterLimit(10); } @After -- cgit v1.2.3 From f12afeb19af4555ac7380e4c6159681e8bf13896 Mon Sep 17 00:00:00 2001 From: Renaud Allard Date: Mon, 17 Oct 2016 18:02:21 +0200 Subject: Log which filters have been used --- src/org/traccar/FilterHandler.java | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/org/traccar/FilterHandler.java b/src/org/traccar/FilterHandler.java index 1ce9e2460..8acc06935 100644 --- a/src/org/traccar/FilterHandler.java +++ b/src/org/traccar/FilterHandler.java @@ -150,16 +150,40 @@ public class FilterHandler extends BaseDataHandler { private boolean filter(Position p) { + String filterType = ""; + boolean result = filterInvalid(p) || filterZero(p) || filterDuplicate(p) || filterFuture(p) || filterApproximate(p) || filterStatic(p) || filterDistance(p); + if (filterInvalid(p)) { + filterType = "Invalid "; + } + if (filterZero(p)) { + filterType = (filterType + "Zero "); + } + if (filterDuplicate(p)) { + filterType = (filterType + "Duplicate "); + } + if (filterFuture(p)) { + filterType = (filterType + "Future "); + } + if (filterApproximate(p)) { + filterType = (filterType + "Approximate "); + } + if (filterStatic(p)) { + filterType = (filterType + "Static "); + } + if (filterDistance(p)) { + filterType = (filterType + "Distance "); + } + if (filterLimit(p)) { result = false; } if (result) { - Log.info("Position filtered from " + p.getDeviceId()); + Log.info("Position filtered by " + filterType + "filters from " + p.getDeviceId()); } return result; -- cgit v1.2.3 From d5c07a40ab27e3e4021f1c8a881b64cc9e43ff00 Mon Sep 17 00:00:00 2001 From: Renaud Allard Date: Mon, 17 Oct 2016 18:14:34 +0200 Subject: Log which filters have been used --- src/org/traccar/FilterHandler.java | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/org/traccar/FilterHandler.java b/src/org/traccar/FilterHandler.java index 1ce9e2460..8acc06935 100644 --- a/src/org/traccar/FilterHandler.java +++ b/src/org/traccar/FilterHandler.java @@ -150,16 +150,40 @@ public class FilterHandler extends BaseDataHandler { private boolean filter(Position p) { + String filterType = ""; + boolean result = filterInvalid(p) || filterZero(p) || filterDuplicate(p) || filterFuture(p) || filterApproximate(p) || filterStatic(p) || filterDistance(p); + if (filterInvalid(p)) { + filterType = "Invalid "; + } + if (filterZero(p)) { + filterType = (filterType + "Zero "); + } + if (filterDuplicate(p)) { + filterType = (filterType + "Duplicate "); + } + if (filterFuture(p)) { + filterType = (filterType + "Future "); + } + if (filterApproximate(p)) { + filterType = (filterType + "Approximate "); + } + if (filterStatic(p)) { + filterType = (filterType + "Static "); + } + if (filterDistance(p)) { + filterType = (filterType + "Distance "); + } + if (filterLimit(p)) { result = false; } if (result) { - Log.info("Position filtered from " + p.getDeviceId()); + Log.info("Position filtered by " + filterType + "filters from " + p.getDeviceId()); } return result; -- cgit v1.2.3 From 4b47a62d2dc0dd7f1b7ced01a7e6c7887e3840ad Mon Sep 17 00:00:00 2001 From: Renaud Allard Date: Mon, 17 Oct 2016 23:30:07 +0200 Subject: Do not double check the filter results Some cleaning in the logic --- src/org/traccar/FilterHandler.java | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/org/traccar/FilterHandler.java b/src/org/traccar/FilterHandler.java index 8acc06935..62df83378 100644 --- a/src/org/traccar/FilterHandler.java +++ b/src/org/traccar/FilterHandler.java @@ -150,36 +150,33 @@ public class FilterHandler extends BaseDataHandler { private boolean filter(Position p) { + boolean result = false; String filterType = ""; - boolean result = filterInvalid(p) || filterZero(p) || filterDuplicate(p) - || filterFuture(p) || filterApproximate(p) || filterStatic(p) - || filterDistance(p); - if (filterInvalid(p)) { - filterType = "Invalid "; + filterType = filterType + "Invalid "; } if (filterZero(p)) { - filterType = (filterType + "Zero "); + filterType = filterType + "Zero "; } if (filterDuplicate(p)) { - filterType = (filterType + "Duplicate "); + filterType = filterType + "Duplicate "; } if (filterFuture(p)) { - filterType = (filterType + "Future "); + filterType = filterType + "Future "; } if (filterApproximate(p)) { - filterType = (filterType + "Approximate "); + filterType = filterType + "Approximate "; } if (filterStatic(p)) { - filterType = (filterType + "Static "); + filterType = filterType + "Static "; } if (filterDistance(p)) { - filterType = (filterType + "Distance "); + filterType = filterType + "Distance "; } - if (filterLimit(p)) { - result = false; + if (!"".equals(filterType) && !filterLimit(p)) { + result = true; } if (result) { -- cgit v1.2.3 From 8756277141ff7549cb0a019e8f67bef58948bd59 Mon Sep 17 00:00:00 2001 From: Renaud Allard Date: Mon, 17 Oct 2016 23:42:17 +0200 Subject: Use StringBuilder for filter logging --- src/org/traccar/FilterHandler.java | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/org/traccar/FilterHandler.java b/src/org/traccar/FilterHandler.java index 62df83378..725f9c429 100644 --- a/src/org/traccar/FilterHandler.java +++ b/src/org/traccar/FilterHandler.java @@ -151,36 +151,36 @@ public class FilterHandler extends BaseDataHandler { private boolean filter(Position p) { boolean result = false; - String filterType = ""; + StringBuilder filterType = new StringBuilder(8 + 5 + 10 + 7 + 12 + 7 + 9); if (filterInvalid(p)) { - filterType = filterType + "Invalid "; + filterType.append("Invalid "); } if (filterZero(p)) { - filterType = filterType + "Zero "; + filterType.append("Zero "); } if (filterDuplicate(p)) { - filterType = filterType + "Duplicate "; + filterType.append("Duplicate "); } if (filterFuture(p)) { - filterType = filterType + "Future "; + filterType.append("Future "); } if (filterApproximate(p)) { - filterType = filterType + "Approximate "; + filterType.append("Approximate "); } if (filterStatic(p)) { - filterType = filterType + "Static "; + filterType.append("Static "); } if (filterDistance(p)) { - filterType = filterType + "Distance "; + filterType.append("Distance "); } - if (!"".equals(filterType) && !filterLimit(p)) { + if (!"".equals(filterType.toString()) && !filterLimit(p)) { result = true; } if (result) { - Log.info("Position filtered by " + filterType + "filters from " + p.getDeviceId()); + Log.info("Position filtered by " + filterType.toString() + "filters from " + p.getDeviceId()); } return result; -- cgit v1.2.3 From 54d48825f34b1a211960b68c98a817eedcdbba9c Mon Sep 17 00:00:00 2001 From: Renaud Allard Date: Mon, 17 Oct 2016 23:54:53 +0200 Subject: Rework the circumvoluted logic in filter logging --- src/org/traccar/FilterHandler.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/org/traccar/FilterHandler.java b/src/org/traccar/FilterHandler.java index 725f9c429..f1df7ce2c 100644 --- a/src/org/traccar/FilterHandler.java +++ b/src/org/traccar/FilterHandler.java @@ -175,10 +175,14 @@ public class FilterHandler extends BaseDataHandler { filterType.append("Distance "); } - if (!"".equals(filterType.toString()) && !filterLimit(p)) { + if (filterType.length() > 0) { result = true; } + if (filterLimit(p)) { + result = false; + } + if (result) { Log.info("Position filtered by " + filterType.toString() + "filters from " + p.getDeviceId()); } -- cgit v1.2.3 From c0acd034c1103cf5d38e94bd42ec183147678135 Mon Sep 17 00:00:00 2001 From: Renaud Allard Date: Tue, 18 Oct 2016 00:07:06 +0200 Subject: Rename variable p into position in filter checking --- src/org/traccar/FilterHandler.java | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/org/traccar/FilterHandler.java b/src/org/traccar/FilterHandler.java index f1df7ce2c..e9e3245a6 100644 --- a/src/org/traccar/FilterHandler.java +++ b/src/org/traccar/FilterHandler.java @@ -148,30 +148,30 @@ public class FilterHandler extends BaseDataHandler { } } - private boolean filter(Position p) { + private boolean filter(Position position) { boolean result = false; StringBuilder filterType = new StringBuilder(8 + 5 + 10 + 7 + 12 + 7 + 9); - if (filterInvalid(p)) { + if (filterInvalid(position)) { filterType.append("Invalid "); } - if (filterZero(p)) { + if (filterZero(position)) { filterType.append("Zero "); } - if (filterDuplicate(p)) { + if (filterDuplicate(position)) { filterType.append("Duplicate "); } - if (filterFuture(p)) { + if (filterFuture(position)) { filterType.append("Future "); } - if (filterApproximate(p)) { + if (filterApproximate(position)) { filterType.append("Approximate "); } - if (filterStatic(p)) { + if (filterStatic(position)) { filterType.append("Static "); } - if (filterDistance(p)) { + if (filterDistance(position)) { filterType.append("Distance "); } @@ -179,12 +179,12 @@ public class FilterHandler extends BaseDataHandler { result = true; } - if (filterLimit(p)) { + if (filterLimit(position)) { result = false; } if (result) { - Log.info("Position filtered by " + filterType.toString() + "filters from " + p.getDeviceId()); + Log.info("Position filtered by " + filterType.toString() + "filters from " + position.getDeviceId()); } return result; -- cgit v1.2.3 From bc40685dca74e5026d529456ee01e6a7627fb85e Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Tue, 18 Oct 2016 20:27:42 +1300 Subject: Small modifications to filter handler --- src/org/traccar/FilterHandler.java | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/org/traccar/FilterHandler.java b/src/org/traccar/FilterHandler.java index e9e3245a6..83d79a3c0 100644 --- a/src/org/traccar/FilterHandler.java +++ b/src/org/traccar/FilterHandler.java @@ -150,8 +150,7 @@ public class FilterHandler extends BaseDataHandler { private boolean filter(Position position) { - boolean result = false; - StringBuilder filterType = new StringBuilder(8 + 5 + 10 + 7 + 12 + 7 + 9); + StringBuilder filterType = new StringBuilder(); if (filterInvalid(position)) { filterType.append("Invalid "); @@ -175,19 +174,12 @@ public class FilterHandler extends BaseDataHandler { filterType.append("Distance "); } - if (filterType.length() > 0) { - result = true; - } - - if (filterLimit(position)) { - result = false; - } - - if (result) { + if (filterType.length() > 0 && !filterLimit(position)) { Log.info("Position filtered by " + filterType.toString() + "filters from " + position.getDeviceId()); + return true; } - return result; + return false; } @Override -- cgit v1.2.3 From 89c2de3435ea720c65c51c1beea3ca4df7d40768 Mon Sep 17 00:00:00 2001 From: Miguel Cabral Date: Wed, 19 Oct 2016 02:46:04 +0800 Subject: Fix current user for alpine in Dockerfile --- setup/docker/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/setup/docker/Dockerfile b/setup/docker/Dockerfile index a39cad79c..40b650be1 100644 --- a/setup/docker/Dockerfile +++ b/setup/docker/Dockerfile @@ -2,6 +2,8 @@ FROM java:8-alpine MAINTAINER Danilo Recchia +USER root + RUN apk upgrade --update && \ apk add --update curl bash && \ rm -rf /var/cache/apk/* && \ -- cgit v1.2.3 From 1937a36997710f117bc742e0e2d9bcab8d9f2d5b Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Wed, 19 Oct 2016 22:17:12 +1300 Subject: Remove semi-colons from SQL queries --- debug.xml | 108 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/debug.xml b/debug.xml index e3ee64221..92577a617 100644 --- a/debug.xml +++ b/debug.xml @@ -97,7 +97,7 @@ 7 - SELECT * FROM server; + SELECT * FROM server @@ -114,21 +114,21 @@ zoom = :zoom, twelveHourFormat = :twelveHourFormat, attributes = :attributes - WHERE id = :id; + WHERE id = :id SELECT * FROM users - WHERE email = :email; + WHERE email = :email - SELECT * FROM users; + SELECT * FROM users INSERT INTO users (name, email, hashedPassword, salt, admin, map, distanceUnit, speedUnit, latitude, longitude, zoom, twelveHourFormat, attributes) - VALUES (:name, :email, :hashedPassword, :salt, :admin, :map, :distanceUnit, :speedUnit, :latitude, :longitude, :zoom, :twelveHourFormat, :attributes); + VALUES (:name, :email, :hashedPassword, :salt, :admin, :map, :distanceUnit, :speedUnit, :latitude, :longitude, :zoom, :twelveHourFormat, :attributes) @@ -144,114 +144,114 @@ zoom = :zoom, twelveHourFormat = :twelveHourFormat, attributes = :attributes - WHERE id = :id; + WHERE id = :id - UPDATE users SET hashedPassword = :hashedPassword, salt = :salt WHERE id = :id; + UPDATE users SET hashedPassword = :hashedPassword, salt = :salt WHERE id = :id - DELETE FROM users WHERE id = :id; + DELETE FROM users WHERE id = :id - SELECT userId, deviceId FROM user_device; + SELECT userId, deviceId FROM user_device - SELECT userId, groupId FROM user_group; + SELECT userId, groupId FROM user_group - SELECT * FROM devices; + SELECT * FROM devices - INSERT INTO devices (name, uniqueId, groupId, attributes) VALUES (:name, :uniqueId, :groupId, :attributes); + INSERT INTO devices (name, uniqueId, groupId, attributes) VALUES (:name, :uniqueId, :groupId, :attributes) - UPDATE devices SET name = :name, uniqueId = :uniqueId, groupId = :groupId, attributes = :attributes WHERE id = :id; + UPDATE devices SET name = :name, uniqueId = :uniqueId, groupId = :groupId, attributes = :attributes WHERE id = :id - UPDATE devices SET lastUpdate = :lastUpdate WHERE id = :id; + UPDATE devices SET lastUpdate = :lastUpdate WHERE id = :id - DELETE FROM devices WHERE id = :id; + DELETE FROM devices WHERE id = :id - INSERT INTO user_device (userId, deviceId) VALUES (:userId, :deviceId); + INSERT INTO user_device (userId, deviceId) VALUES (:userId, :deviceId) - DELETE FROM user_device WHERE userId = :userId AND deviceId = :deviceId; + DELETE FROM user_device WHERE userId = :userId AND deviceId = :deviceId - SELECT * FROM groups; + SELECT * FROM groups - INSERT INTO groups (name, groupId, attributes) VALUES (:name, :groupId, :attributes); + INSERT INTO groups (name, groupId, attributes) VALUES (:name, :groupId, :attributes) - UPDATE groups SET name = :name, groupId = :groupId, attributes = :attributes WHERE id = :id; + UPDATE groups SET name = :name, groupId = :groupId, attributes = :attributes WHERE id = :id - DELETE FROM groups WHERE id = :id; + DELETE FROM groups WHERE id = :id - INSERT INTO user_group (userId, groupId) VALUES (:userId, :groupId); + INSERT INTO user_group (userId, groupId) VALUES (:userId, :groupId) - DELETE FROM user_group WHERE userId = :userId AND groupId = :groupId; + DELETE FROM user_group WHERE userId = :userId AND groupId = :groupId - SELECT * FROM positions WHERE deviceId = :deviceId AND fixTime BETWEEN :from AND :to ORDER BY fixTime; + SELECT * FROM positions WHERE deviceId = :deviceId AND fixTime BETWEEN :from AND :to ORDER BY fixTime INSERT INTO positions (deviceId, protocol, serverTime, deviceTime, fixTime, valid, latitude, longitude, altitude, speed, course, address, attributes) - VALUES (:deviceId, :protocol, :now, :deviceTime, :fixTime, :valid, :latitude, :longitude, :altitude, :speed, :course, :address, :attributes); + VALUES (:deviceId, :protocol, :now, :deviceTime, :fixTime, :valid, :latitude, :longitude, :altitude, :speed, :course, :address, :attributes) - SELECT * FROM positions WHERE id IN (SELECT positionId FROM devices); + SELECT * FROM positions WHERE id IN (SELECT positionId FROM devices) - UPDATE devices SET positionId = :id WHERE id = :deviceId; + UPDATE devices SET positionId = :id WHERE id = :deviceId - SELECT * FROM events WHERE id = :id; + SELECT * FROM events WHERE id = :id INSERT INTO events (type, serverTime, deviceId, positionId, geofenceId, attributes) - VALUES (:type, :serverTime, :deviceId, :positionId, :geofenceId, :attributes); + VALUES (:type, :serverTime, :deviceId, :positionId, :geofenceId, :attributes) - SELECT * FROM events WHERE deviceId = :deviceId AND type LIKE :type AND serverTime BETWEEN :from AND :to ORDER BY serverTime DESC; + SELECT * FROM events WHERE deviceId = :deviceId AND type LIKE :type AND serverTime BETWEEN :from AND :to ORDER BY serverTime DESC - SELECT * FROM geofences; + SELECT * FROM geofences INSERT INTO geofences (name, description, area, attributes) - VALUES (:name, :description, :area, :attributes); + VALUES (:name, :description, :area, :attributes) @@ -260,56 +260,56 @@ description = :description, area = :area, attributes = :attributes - WHERE id = :id; + WHERE id = :id - DELETE FROM geofences WHERE id = :id; + DELETE FROM geofences WHERE id = :id - SELECT userId, geofenceId FROM user_geofence; + SELECT userId, geofenceId FROM user_geofence - INSERT INTO user_geofence (userId, geofenceId) VALUES (:userId, :geofenceId); + INSERT INTO user_geofence (userId, geofenceId) VALUES (:userId, :geofenceId) - DELETE FROM user_geofence WHERE userId = :userId AND geofenceId = :geofenceId; + DELETE FROM user_geofence WHERE userId = :userId AND geofenceId = :geofenceId - SELECT groupId, geofenceId FROM group_geofence; + SELECT groupId, geofenceId FROM group_geofence - INSERT INTO group_geofence (groupId, geofenceId) VALUES (:groupId, :geofenceId); + INSERT INTO group_geofence (groupId, geofenceId) VALUES (:groupId, :geofenceId) - DELETE FROM group_geofence WHERE groupId = :groupId AND geofenceId = :geofenceId; + DELETE FROM group_geofence WHERE groupId = :groupId AND geofenceId = :geofenceId - SELECT deviceId, geofenceId FROM device_geofence; + SELECT deviceId, geofenceId FROM device_geofence - INSERT INTO device_geofence (deviceId, geofenceId) VALUES (:deviceId, :geofenceId); + INSERT INTO device_geofence (deviceId, geofenceId) VALUES (:deviceId, :geofenceId) - DELETE FROM device_geofence WHERE deviceId = :deviceId AND geofenceId = :geofenceId; + DELETE FROM device_geofence WHERE deviceId = :deviceId AND geofenceId = :geofenceId - SELECT * FROM notifications; + SELECT * FROM notifications INSERT INTO notifications (userId, type, attributes) - VALUES (:userId, :type, :attributes); + VALUES (:userId, :type, :attributes) @@ -317,24 +317,24 @@ userId = :userId, type = :type, attributes = :attributes - WHERE id = :id; + WHERE id = :id - DELETE FROM notifications WHERE id = :id; + DELETE FROM notifications WHERE id = :id - DELETE FROM positions WHERE serverTime < :serverTime AND id NOT IN (SELECT positionId FROM devices); + DELETE FROM positions WHERE serverTime < :serverTime AND id NOT IN (SELECT positionId FROM devices) - SELECT * FROM attribute_aliases; + SELECT * FROM attribute_aliases INSERT INTO attribute_aliases (deviceId, attribute, alias) - VALUES (:deviceId, :attribute, :alias); + VALUES (:deviceId, :attribute, :alias) @@ -342,20 +342,20 @@ deviceId = :deviceId, attribute = :attribute, alias = :alias - WHERE id = :id; + WHERE id = :id - DELETE FROM attribute_aliases WHERE id = :id; + DELETE FROM attribute_aliases WHERE id = :id - SELECT * FROM statistics WHERE captureTime BETWEEN :from AND :to ORDER BY captureTime; + SELECT * FROM statistics WHERE captureTime BETWEEN :from AND :to ORDER BY captureTime INSERT INTO statistics (captureTime, activeUsers, activeDevices, requests, messagesReceived, messagesStored, attributes) - VALUES (:captureTime, :activeUsers, :activeDevices, :requests, :messagesReceived, :messagesStored, :attributes); + VALUES (:captureTime, :activeUsers, :activeDevices, :requests, :messagesReceived, :messagesStored, :attributes) -- cgit v1.2.3