-
Notifications
You must be signed in to change notification settings - Fork 4
/
remonit.js
79 lines (67 loc) · 1.53 KB
/
remonit.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// node.js client for Remonit
//
// exports 4 functions
// connect(callback(err)): connect to Remonit server
// close(): close connection, this terminates events loop
// get(collection, callback(err, result)): query for docs in collection
// put(collection, doc, callback(err))
'use strict'
module.exports = {
connect: connect,
close: close,
get: get,
put: put
}
var DDP = require('ddp')
var config = require('./config.js')
var connected = false
var ddp = new DDP({
host: 'remonit.zef.io',
port: 80,
auto_reconnect: true,
auto_reconnect_timer: 500,
use_ejson: true,
use_ssl: false
})
function connect(callback) {
if (!config.email || ! config.password) {
callback('No valid ~/.remonit.json or ./remonit.json found.\n' +
'Please create one (see https://github.com/zefei/remonit-cli for more info).')
return
}
ddp.connect(function(err) {
if (err) {
callback('Failed to connect.')
return
}
login(callback)
})
}
function login(callback) {
ddp.loginWithEmail(config.email, config.password, function(err) {
if (err) {
ddp.close()
callback('Failed to login.')
} else {
connected = true
callback()
}
})
}
function close() {
if (connected) ddp.close()
}
function get(collection, callback) {
if (!connected) {
callback('Not connected.')
} else {
ddp.call(collection, [], callback)
}
}
function put(collection, doc, callback) {
if (!connected) {
callback('Not connected.')
} else {
ddp.call(collection + 'Save', [doc], callback)
}
}