UNPKG

776 BJavaScriptView Raw
1var uuid = require('node-uuid');
2
3// query:{id}/<topic>
4// query/<topic>
5function isQuery(topic) {
6 var queryPrefix = 'query/';
7 if (topic.slice(0, queryPrefix.length) === queryPrefix) {
8 return true;
9 }
10
11 var queryPrefix = 'query:';
12 if (topic.slice(0, queryPrefix.length) === queryPrefix) {
13 return true;
14 }
15
16 return false;
17}
18
19module.exports.isQuery = isQuery;
20
21module.exports.parse = function parseDeviceQuery(q) {
22 if (!isQuery(q)) {
23 return null;
24 }
25
26 var split = q.split('/');
27 var ret = {
28 id: (split.splice(0, 1)[0].split(':')[1] || uuid.v4() ),
29 ql: split.join('/')
30 };
31
32 return ret;
33};
34
35module.exports.format = function formatDeviceQuery(obj) {
36 if (!obj.id) {
37 obj.id = uuid.v4();
38 }
39 return 'query:' + obj.id + '/' + obj.ql;
40};
41
42