107 lines
2.7 KiB
JavaScript
107 lines
2.7 KiB
JavaScript
const config = require ('../config');
|
|
var ObjectID = require ('mongodb').ObjectID;
|
|
|
|
var db = null;
|
|
|
|
module.exports = {
|
|
initModule: function (databaseObject) {
|
|
db = databaseObject;
|
|
db.collection ('intent_list');
|
|
},
|
|
|
|
loadTokens: function () {
|
|
db
|
|
.collection ('token_list')
|
|
.findOne ()
|
|
.then (tokens => {
|
|
if (tokens !== null) {
|
|
config.TOKEN = tokens.access_token;
|
|
config.REFRESH_TOKEN = tokens.refresh_token;
|
|
config.TOKEN_EXPIRES_IN = tokens.expires_in;
|
|
} else {
|
|
//Cannot continue without tokens
|
|
console.log ('Cannot continue without tokens in database');
|
|
process.exit (-1);
|
|
}
|
|
})
|
|
.catch (e => {
|
|
console.log (
|
|
'Error loading tokens ! Cannot continue without tokens in database'
|
|
);
|
|
process.exit (-1);
|
|
});
|
|
},
|
|
|
|
updateTokens: function (refresh_token, access_token, expires_in) {
|
|
return new Promise ((resolve, reject) => {
|
|
let newTokenDocument = {
|
|
id: 1,
|
|
refresh_token: refresh_token,
|
|
access_token: access_token,
|
|
expires_in: new Date () / 1000 + expires_in,
|
|
};
|
|
db
|
|
.collection ('token_list')
|
|
.update ({id: 1}, newTokenDocument, {upsert: true}, (err, result) => {
|
|
if (err) reject (err);
|
|
config.REFRESH_TOKEN = refresh_token;
|
|
config.TOKEN = access_token;
|
|
config.TOKEN_EXPIRES_IN = newTokenDocument.expires_in;
|
|
resolve ();
|
|
});
|
|
});
|
|
},
|
|
|
|
loadSkill: function (skillDbID) {
|
|
return new Promise ((resolve, reject) => {
|
|
db
|
|
.collection ('skill_list')
|
|
.findOne ({_id: ObjectID (skillDbID)}, (err, skill) => {
|
|
if (skill) {
|
|
resolve (skill);
|
|
} else {
|
|
reject (err);
|
|
}
|
|
});
|
|
});
|
|
},
|
|
|
|
updateSkill: function (id, skill) {
|
|
return new Promise ((resolve, reject) => {
|
|
db
|
|
.collection ('skill_list')
|
|
.update ({_id: ObjectID (id)}, skill, {upsert: true}, (err, result) => {
|
|
if (JSON.parse (result).nModified === 1) {
|
|
//database update ok
|
|
resolve ();
|
|
} else {
|
|
reject ();
|
|
}
|
|
});
|
|
});
|
|
},
|
|
|
|
deleteSkill: function (id) {
|
|
return new Promise ((resolve, reject) => {
|
|
db
|
|
.collection ('skill_list')
|
|
.remove ({_id: ObjectID (id)}, (err, result) => {
|
|
if (err) reject (err);
|
|
resolve (result);
|
|
});
|
|
});
|
|
},
|
|
|
|
getSkill: function (id) {
|
|
return new Promise ((resolve, reject) => {
|
|
db
|
|
.collection ('skill_list')
|
|
.find ({_id: ObjectID (id)})
|
|
.toArray ((err, result) => {
|
|
if (err) reject (err);
|
|
resolve (result);
|
|
});
|
|
});
|
|
},
|
|
};
|