-
Notifications
You must be signed in to change notification settings - Fork 200
/
messages.js
67 lines (57 loc) · 1.79 KB
/
messages.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
const mongoose = require('mongoose')
const MONGO_USERNAME = process.env.MONGO_USERNAME || 'root'
const MONGO_PASSWORD = process.env.MONGO_PASSWORD || 'password'
const MONGO_HOST = process.env.MONGO_HOST || 'mongo-service'
const MONGO_PORT = process.env.MONGO_PORT || '27017'
const MONGO_URI = `mongodb://${MONGO_USERNAME}:${MONGO_PASSWORD}@${MONGO_HOST}:${MONGO_PORT}/admin`
const db = mongoose.connection;
db.on('error', (err) => {
console.error(`unable to connect to ${MONGO_URI}: ${err}`);
setTimeout(connectToMongoDB, 1000);
});
db.once('open', () => {
console.log(`connected to ${MONGO_URI}`);
});
const connectToMongoDB = () => {
mongoose.connect(MONGO_URI, {
useNewUrlParser: true,
connectTimeoutMS: 2000
});
};
connectToMongoDB();
const messageSchema = mongoose.Schema({
name: { type: String, required: [true, 'Name is required'] },
body: { type: String, required: [true, 'Message Body is required'] },
timestamps: {}
});
const messageModel = mongoose.model('Message', messageSchema);
const construct = (params) => {
const name = params.name
const body = params.body
console.log('name : ' + name)
console.log('body: ' + body)
const message = new messageModel({ name: name, body: body })
return message
};
const save = (message) => {
console.log("saving message...")
message.save(function (err) {
if (err) { throw err }
})
};
const create = (params) => {
try {
console.log("creating...")
const msg = construct(params)
validationError = msg.validateSync()
if (validationError) { throw validationError }
console.log("msg: " + msg)
save(msg)
} catch (exception) {
throw exception
}
}
module.exports = {
create: create,
messageModel: messageModel
}