-
Notifications
You must be signed in to change notification settings - Fork 0
/
service.js
65 lines (49 loc) · 1.68 KB
/
service.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
// *Requiring the needed modules:
const dotenv = require('dotenv');
const kunlun_service = require('kunlun');
const server = require('./server');
// *Setting the finish flag:
let finish_signaled = false;
/**
* Starts the server
* @return {Promise} A promise that resolves into a { server, address } object, or rejects if something went wrong
*/
function start(){
// *Trying to start the server:
try{
// *Loading the environment:
dotenv.config({ path: './.env' });
// *Deploying the kunlun service:
return kunlun_service.deploy({
host: process.env.DB_HOST || '127.0.0.1',
port: process.env.DB_PORT || '27017',
user: process.env.DB_USER,
pass: process.env.DB_PASS || '',
database: process.env.DB_SCHEMA
})
// *Starting the API server:
.then(kunlun => server.start({
kunlun,
port: process.env.API_PORT || '80'
}));
} catch(err){
// *Rejecting the promise if something went wrong:
return Promise.reject(err);
}
}
/**
* Finishes all the services
* @return {Promise} A promise that resolves when the services have been finished, or rejects if something went wrong
*/
function finish(){
// *Checking if the finish signal has been set already, returning if it has:
if(finish_signaled) return Promise.resolve();
// *Setting the finish signal:
finish_signaled = true;
// *Disconnecting from the kunlun service:
return kunlun_service.undeploy()
// *Stopping the server:
.then(() => server.stop());
}
// *Exporting this module:
module.exports = { start, finish, getName: () => 'Kunlun REST service' };