1 | var uuid = require('node-uuid');
|
2 |
|
3 |
|
4 |
|
5 | function 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 |
|
19 | module.exports.isQuery = isQuery;
|
20 |
|
21 | module.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 |
|
35 | module.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 |
|